Allow the pool vector to expand. Will have to replace/refactor IdAllocator for index generation. Will need new event type to update views when pools are resized. Create new PersistantHandle and PersistantHandleSet classes to allow for long-term handles to be safely held.
One consideration: How to make resizing threadsafe? It's possible a thread with a pointer to a component could have that pointer invalidated by another thread triggering a resize. Possible solution: Only allow interaction through locked visitor methods. Would probably want to add methods to cover single entities as well, in addition to the methods for iterating over entire pools/views.
Allow the pool vector to expand. Will have to replace/refactor
IdAllocator
for index generation. Will need new event type to update views when pools are resized. Create newPersistantHandle
andPersistantHandleSet
classes to allow for long-term handles to be safely held.One consideration: How to make resizing threadsafe? It's possible a thread with a pointer to a component could have that pointer invalidated by another thread triggering a resize. Possible solution: Only allow interaction through locked visitor methods. Would probably want to add methods to cover single entities as well, in addition to the methods for iterating over entire pools/views.