Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef IDENTIFICATION_JAMES
- #define IDENTIFICATION_JAMES
- #include <queue>
- #include <string>
- #include <sstream>
- #include <iostream>
- //This class Needs to be FAST
- //ID class that works with different classes
- class Identification {
- public:
- //Constructors
- Identification( const std::string typeName_, const bool active_);//
- //Destructor
- ~Identification();//
- //Const Access
- const bool& active() const;//
- const void* const reference() const;//
- const std::string& typeName() const;//
- const unsigned int& instanceID() const;//
- const unsigned int& typeNameID() const;//
- //Debug and Metrics
- static std::string display();//
- static unsigned int typeNamesCount();//
- static std::vector<unsigned int> freeIDsCount();//
- static std::vector<unsigned int> instancesCount();//
- static int findTypeNameID(const std::string& typeName_);//
- //Use
- void* const reference();//
- protected:
- //Activation
- void activate();//
- void deactivate();//
- //Mod Stat Access
- static std::vector<std::string>& typeNames();//
- static std::vector<unsigned int>& nextInstanceIDs();//
- static std::vector<std::queue<unsigned int> >& freeInstanceIDs();//
- private:
- //Internal Management
- void pushInstanceID();//
- const unsigned int pullInstanceID();//
- const unsigned int pullTypeNameID(const std::string& typeName_);//
- //class-level keys
- const unsigned int _typeNameID;
- static std::vector<std::string> _typeNames;
- //instance-level keys
- unsigned int _instanceID;
- static std::vector<unsigned int> _nextInstanceIDs;
- static std::vector<std::queue<unsigned int> > _freeInstanceIDs;
- //data
- bool _active;
- void* const _reference;
- };
- std::vector<std::string> Identification::_typeNames = std::vector<std::string>();
- std::vector<unsigned int> Identification::_nextInstanceIDs = std::vector<unsigned int>();
- std::vector<std::queue<unsigned int> > Identification::_freeInstanceIDs = std::vector<std::queue<unsigned int> >();
- #include "identification.cxx"
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement