00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 #ifndef SST_CORE_POLLINGLINKQUEUE_H
00013 #define SST_CORE_POLLINGLINKQUEUE_H
00014 
00015 #include <sst/core/serialization.h>
00016 
00017 #include <cstdio> 
00018 #include <set>
00019 
00020 #include <sst/core/activityQueue.h>
00021 
00022 namespace SST {
00023 
00024 
00025 
00026 
00027 class PollingLinkQueue : public ActivityQueue {
00028 public:
00029     PollingLinkQueue();
00030     ~PollingLinkQueue();
00031 
00032     bool empty();
00033     int size();
00034     void insert(Activity* activity);
00035     Activity* pop();
00036     Activity* front();
00037     
00038     
00039 private:
00040     std::multiset<Activity*,Activity::less_time> data;
00041     
00042     friend class boost::serialization::access;
00043     template<class Archive>
00044     void
00045     serialize(Archive & ar, const unsigned int version )
00046     {
00047         printf("begin PollingLinkQueue::serialize\n");
00048         ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(ActivityQueue);
00049         printf("  - PollingLinkQueue::data\n");
00050         ar & BOOST_SERIALIZATION_NVP(data);
00051         printf("end PollingLinkQueue::serialize\n");
00052     }
00053 };
00054 
00055 } 
00056 
00057 BOOST_CLASS_EXPORT_KEY(SST::PollingLinkQueue)
00058 
00059 #endif // SST_CORE_POLLINGLINKQUEUE_H