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
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
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