EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
SovereigntyDataMgr.h
Go to the documentation of this file.
1 
11 #ifndef _EVE_SERVER_SOVEREIGNTY_DATAMANAGER_H__
12 #define _EVE_SERVER_SOVEREIGNTY_DATAMANAGER_H__
13 
14 #include "../../eve-server.h"
15 
17 
18 //Shiny multi-index containers
19 #include <boost/multi_index_container.hpp>
20 #include <boost/multi_index/hashed_index.hpp>
21 #include <boost/multi_index/member.hpp>
22 
24  : public Singleton<SovereigntyDataMgr>
25 {
26 public:
29 
30  int Initialize();
31 
32  void Clear();
33  void Close();
34  void GetInfo();
35 
38  PyRep *GetCurrentSovData(uint32 locationID);
39  PyRep *GetAllianceBeacons(uint32 allianceID);
41  void AddSovClaim(SovereigntyData data);
42  void RemoveSovClaim(uint32 systemID);
43  void MarkContested(uint32 systemID, bool contested);
45  void UpdateSystemHubID(uint32 systemID, uint32 hubID);
46  void UpdateSystemJammerID(uint32 systemID, uint32 jammerID);
47  void UpdateSystemBeaconID(uint32 systemID, uint32 beaconID);
48  void UpdateClaim(uint32 systemID);
49 
50 protected:
51  void Populate();
52 
53 private:
54  //Multi-index container for sov data
55  typedef boost::multi_index_container<
57  boost::multi_index::indexed_by<
58  boost::multi_index::hashed_non_unique<
59  boost::multi_index::tag<SovDataBySolarSystem>,
60  boost::multi_index::member<SovereigntyData, uint32, &SovereigntyData::solarSystemID>
61  >,
62  boost::multi_index::hashed_non_unique<
63  boost::multi_index::tag<SovDataByConstellation>,
64  boost::multi_index::member<SovereigntyData, uint32, &SovereigntyData::constellationID>
65  >,
66  boost::multi_index::hashed_non_unique<
67  boost::multi_index::tag<SovDataByRegion>,
68  boost::multi_index::member<SovereigntyData, uint32, &SovereigntyData::regionID>
69  >,
70  boost::multi_index::hashed_unique<
71  boost::multi_index::tag<SovDataByClaim>,
72  boost::multi_index::member<SovereigntyData, uint32, &SovereigntyData::claimID>
73  >,
74  boost::multi_index::hashed_non_unique<
75  boost::multi_index::tag<SovDataByAlliance>,
76  boost::multi_index::member<SovereigntyData, uint32, &SovereigntyData::allianceID>
78 
80 };
81 
82 //Singleton
83 #define svDataMgr \
84  (SovereigntyDataMgr::get())
85 
86 #endif // _EVE_SERVER_SOVEREIGNTY_DATAMANAGER_H__
Base Python wire object.
Definition: PyRep.h:66
void UpdateClaim(uint32 systemID)
void UpdateSystemJammerID(uint32 systemID, uint32 jammerID)
SovereigntyData GetSovereigntyData(uint32 systemID)
void RemoveSovClaim(uint32 systemID)
PyRep * GetAllianceBeacons(uint32 allianceID)
PyRep * GetSystemSovereignty(uint32 systemID)
void AddSovClaim(SovereigntyData data)
void UpdateSystemHubID(uint32 systemID, uint32 hubID)
uint32 GetSystemAllianceID(uint32 systemID)
unsigned __int32 uint32
Definition: eve-compat.h:50
boost::multi_index_container< SovereigntyData, boost::multi_index::indexed_by< boost::multi_index::hashed_non_unique< boost::multi_index::tag< SovDataBySolarSystem >, boost::multi_index::member< SovereigntyData, uint32,&SovereigntyData::solarSystemID > >, boost::multi_index::hashed_non_unique< boost::multi_index::tag< SovDataByConstellation >, boost::multi_index::member< SovereigntyData, uint32,&SovereigntyData::constellationID > >, boost::multi_index::hashed_non_unique< boost::multi_index::tag< SovDataByRegion >, boost::multi_index::member< SovereigntyData, uint32,&SovereigntyData::regionID > >, boost::multi_index::hashed_unique< boost::multi_index::tag< SovDataByClaim >, boost::multi_index::member< SovereigntyData, uint32,&SovereigntyData::claimID > >, boost::multi_index::hashed_non_unique< boost::multi_index::tag< SovDataByAlliance >, boost::multi_index::member< SovereigntyData, uint32,&SovereigntyData::allianceID > > > > SovDataContainer
PyRep * GetCurrentSovData(uint32 locationID)
Template used for singleton classes.
Definition: Singleton.h:43
void MarkContested(uint32 systemID, bool contested)
void UpdateSystemBeaconID(uint32 systemID, uint32 beaconID)
SovDataContainer m_sovData