EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
PlanetDataMgr.h
Go to the documentation of this file.
1 
10 #ifndef EVEMU_PLANET_PLANETDATAMGR_H_
11 #define EVEMU_PLANET_PLANETDATAMGR_H_
12 
13 #include <unordered_map>
14 #include "planet/PlanetDB.h"
15 
16 
17 // this class is a singleton object to have a common place for all (cached) planet data
19 : public Singleton< PlanetDataMgr >
20 {
21 public:
22  PlanetDataMgr();
23  ~PlanetDataMgr() { /* nothing do to yet */ }
24 
25  // Initializes the Table:
26  int Initialize();
27 
28  void GetPlanetData(uint32 planetID, std::vector<uint16> &typeIDs);
29 
30  const char* GetCommandName(int8 commandID);
31 
32 protected:
33  void _Populate();
34 
35 private:
37 
38  std::unordered_multimap<uint32, uint32> m_planetData;
39 };
40 
41 #define sPlanetDataMgr \
42 ( PlanetDataMgr::get() )
43 
44 
45 class Colony;
46 
47 // this class is a singleton object to have a common place for all (cached) PI schematic and program data
48 class PIDataMgr
49 : public Singleton< PIDataMgr >
50 {
51 public:
52  PIDataMgr();
53  ~PIDataMgr() { /* nothing do to yet */ }
54 
55  // Initializes the Table:
56  int Initialize();
57 
58  PyRep* GetProgramResultInfo(Colony* pColony, uint32 pinID, uint16 typeID, PyList* heads, float headRadius);
59 
60  void GetSchematicData(uint8 schematicID, PI_Schematic& data);
61 
63  const char* GetProductName(uint16 typeID);
64  uint16 GetHeadType(uint16 ecuTypeID, uint16 programType);
65 
66  uint32 GetMaxOutput(InventoryItemRef iRef, uint32 qtyPerCycle = 0, int64 cycleTime = 0);
67  uint32 GetProgramOutput(InventoryItemRef iRef, int64 cycleTime, int64 startTime=0, int64 currentTime=0);
68  uint32 GetProgramOutputPrediction(InventoryItemRef iRef, int64 cycleTime, uint32 numCycles = 0);
69 
70 protected:
71  void _Populate();
72 
73 private:
75 
76  std::map<uint8, PI_Schematic> m_schematicData;
77 };
78 
79 #define sPIDataMgr \
80 ( PIDataMgr::get() )
81 
82 
83 #endif // EVEMU_PLANET_PLANETDATAMGR_H_
PlanetDB m_db
Definition: PlanetDataMgr.h:74
Base Python wire object.
Definition: PyRep.h:66
unsigned __int8 uint8
Definition: eve-compat.h:46
PlanetDB m_db
Definition: PlanetDataMgr.h:36
const char * GetProductName(uint16 typeID)
std::unordered_multimap< uint32, uint32 > m_planetData
Definition: PlanetDataMgr.h:38
uint32 GetMaxOutput(InventoryItemRef iRef, uint32 qtyPerCycle=0, int64 cycleTime=0)
uint8 GetProductLevel(uint16 typeID)
void _Populate()
std::map< uint8, PI_Schematic > m_schematicData
Definition: PlanetDataMgr.h:76
signed __int8 int8
Definition: eve-compat.h:45
Definition: Colony.h:38
uint16 GetHeadType(uint16 ecuTypeID, uint16 programType)
const char * GetCommandName(int8 commandID)
uint32 GetProgramOutputPrediction(InventoryItemRef iRef, int64 cycleTime, uint32 numCycles=0)
void GetPlanetData(uint32 planetID, std::vector< uint16 > &typeIDs)
PyRep * GetProgramResultInfo(Colony *pColony, uint32 pinID, uint16 typeID, PyList *heads, float headRadius)
int Initialize()
unsigned __int32 uint32
Definition: eve-compat.h:50
uint32 GetProgramOutput(InventoryItemRef iRef, int64 cycleTime, int64 startTime=0, int64 currentTime=0)
signed __int64 int64
Definition: eve-compat.h:51
Template used for singleton classes.
Definition: Singleton.h:43
void GetSchematicData(uint8 schematicID, PI_Schematic &data)
unsigned __int16 uint16
Definition: eve-compat.h:48
Python list.
Definition: PyRep.h:639
static uint32 currentTime
Definition: timer.cpp:33