00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef SST_CORE_LINKPAIR_H
00013 #define SST_CORE_LINKPAIR_H
00014
00015 #include <sst/core/sst_types.h>
00016 #include <sst/core/serialization.h>
00017
00018 #include <sst/core/link.h>
00019
00020 namespace SST {
00021
00022
00023
00024
00025 class LinkPair {
00026 public:
00027
00028 LinkPair(LinkId_t id) :
00029 left(new Link(id)),
00030 right(new Link(id))
00031 {
00032 my_id = id;
00033
00034 left->pair_link = right;
00035 right->pair_link = left;
00036
00037 }
00038 virtual ~LinkPair() {}
00039
00040
00041 LinkId_t getId() {
00042 return my_id;
00043 }
00044
00045
00046 inline Link* getLeft() {return left;}
00047
00048 inline Link* getRight() {return right;}
00049
00050 private:
00051
00052 Link* left;
00053 Link* right;
00054
00055 LinkId_t my_id;
00056
00057 friend class boost::serialization::access;
00058 template<class Archive>
00059 void
00060 serialize(Archive & ar, const unsigned int version )
00061 {
00062 }
00063 };
00064
00065 }
00066
00067 BOOST_CLASS_EXPORT_KEY(SST::LinkPair)
00068
00069 #endif // SST_CORE_LINKPAIR_H