00001 /* 00002 * File: McHandler.h 00003 * Author: cwioro 00004 * 00005 * Created on May 21, 2014, 12:11 PM 00006 */ 00007 00008 #ifndef MCHANDLER_H 00009 #define MCHANDLER_H 00010 00011 #include "McTree.h" 00012 #include "McTree.cpp" 00013 00014 00015 //#define MC_HANDLER_OUPUT 00016 00017 class McHandler { 00018 public: 00019 McHandler(std::list<McTree*>* groups); 00020 McHandler(const McHandler& orig); 00021 virtual ~McHandler(); 00022 00023 McTree* getMcGroup(std::string* group_name); 00024 McTree* getMcGroup(std::string* hostname_source, uint32_t* route_id); 00025 std::vector<McTree*> lostConnectionDownlinks(unsigned char* mac); 00026 std::vector<McTree*> lostConnectionUplinks(unsigned char* mac); 00027 void createGroupAsRoot(std::string* group_name); 00028 void addGroup(std::string* group_name); 00029 bool addUplinkRoute(routing_entry* route); 00030 bool removeGroup(std::string* group_name); 00031 00032 00033 void addDownlinkRoute(routing_entry* route); 00034 void setMembership(std::string* group_name, bool membership); 00035 #ifdef DEBUG 00036 void printMcGroups(); 00037 #endif 00038 00039 private: 00040 void createGroup(std::string* group_name, bool root, bool member, bool connected, bool activated, uint16_t root_distance); 00041 std::list<McTree*> *groups_; 00042 00043 }; 00044 00045 #endif /* MCHANDLER_H */ 00046