hashConduitGroup.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 #ifndef HASHCONDUIT_GROUP_H
00009 #define HASHCONDUIT_GROUP_H
00010 
00011 #include "conduitGroup.h"
00012 
00013 // boost include
00014 #include <boost/multi_index_container.hpp>
00015 #include <boost/multi_index/hashed_index.hpp>
00016 #include <boost/multi_index/member.hpp>
00017 #include <boost/multi_index/ordered_index.hpp>
00018 #include <boost/tokenizer.hpp>
00019 
00020 using boost::multi_index_container;
00021 // namespace multi-indexing of reference handles to CAFEConduit objects
00022 using namespace boost::multi_index;
00023 
00024 struct by_groupHandle{};
00025 struct by_groupID{};
00026 struct by_groupName{};
00027 
00028 typedef multi_index_container<
00029         ConduitGroup,
00030                 indexed_by<
00031                 ordered_unique<
00032                 tag<by_groupHandle>, BOOST_MULTI_INDEX_MEMBER(ConduitGroup, unsigned int, groupHandle)>,
00033                 ordered_non_unique<
00034                 tag<by_groupID>,     BOOST_MULTI_INDEX_MEMBER(ConduitGroup, CA_SYNC_GID, groupID)>,
00035                 ordered_non_unique<
00036                 tag<by_groupName>,   BOOST_MULTI_INDEX_MEMBER(ConduitGroup, std::string, groupName)>,
00037                 hashed_unique<member<ConduitGroup, unsigned int,  &ConduitGroup::groupHandle> >
00038                 >
00039 > cafeGroup_set;
00040 
00041 typedef cafeGroup_set::index<by_groupID>::type        cafeGroup_set_by_groupID;
00042 typedef cafeGroup_set::index<by_groupHandle>::type    cafeGroup_set_by_groupHandle;
00043 typedef cafeGroup_set::index<by_groupName>::type      cafeGroup_set_by_groupName;
00044 
00045 #endif

Generated on 3 May 2017 for CAFE by  doxygen 1.6.1