@@ -19,6 +19,7 @@ namespace sd
19
19
class MemoryManager : public IMemoryManager
20
20
{
21
21
private:
22
+ #pragma region HelperClasses
22
23
class Object
23
24
{
24
25
public:
@@ -101,13 +102,13 @@ namespace sd
101
102
std::unordered_map<void *, Object> _objectsMap;
102
103
103
104
public:
104
- void registerNew (const Object &object);
105
- bool contains (void *objectPtr) const ;
106
- void clear ();
107
- Object &getObject (void *objectPtr);
105
+ void registerNew (const Object &object) { _objectsMap. insert ({object. getRawPtr (), object}); }
106
+ bool contains (void *objectPtr) const { return _objectsMap. contains (objectPtr); }
107
+ void clear () { _objectsMap. clear (); }
108
+ Object &getObject (void *objectPtr) { return _objectsMap. at (objectPtr); }
108
109
109
- size_t numberOfRegisteredObjects () const ;
110
- bool anyObjectRegistered () const ;
110
+ size_t numberOfRegisteredObjects () const { return _objectsMap. size (); }
111
+ bool anyObjectRegistered () const { return _objectsMap. empty (); }
111
112
112
113
template <class Fn > void unregisterIf (Fn predicate)
113
114
{
@@ -118,7 +119,10 @@ namespace sd
118
119
std::for_each (_objectsMap.begin (), _objectsMap.end (),
119
120
[&](auto &pair) { return predicate (pair.second ); });
120
121
}
121
- } _register;
122
+ };
123
+ #pragma endregion
124
+
125
+ ObjectsRegister _register;
122
126
123
127
size_t _allocatedMemory = 0 ;
124
128
size_t _memoryLimit = 1 * 1024 * 1024 ; // ~1MB
0 commit comments