* server/StorageManager.cpp: Only do property inserts if there are
some to be inserted. Limit the number of queries per tick. Improve
database debug output.
* server/StorageManager.cpp, server/StorageManager.h: Add a queue
of deleted entity IDs, and implement deleting entries from
this queue from the database.
* server/StorageManager.cpp: Add checks so that ephemeral
entities are not written to the database, and ephemeral properties
are not inserted or updated. Postpone connecting the updated
signal until after the initial insert.
* server/EntityFactory.cpp, server/PersistantThingFactory.cpp,
server/PersistantThingFactory.h,
server/PersistantThingFactory_impl.h:
Add a count to each factory of the number of entities
it has created, and add a monitor watch to each one.
* server/StorageManager.cpp, server/StorageManager.h: Add counters
for the various types of database query, and add monitor watches
for them.
* common/Database.cpp: Add the location data to the database
insert query.
* server/Persistance.cpp: Modify the entity database table so it
has the right columns.
* server/StorageManager.cpp: Correctly check the orientation
valid flag before using it.
* common/Database.cpp, common/Database.h: Modify the Entity database
functions to include a chunk of text for location data.
* server/StorageManager.cpp: Implement naive storage of location
data to the database.
* common/Database.cpp: Implement updating modified properties.
* server/StorageManager.cpp: Tweak test properties values
so we can tell if one has been updated.
* common/Property.h: Add helper functions to make it easy and clear
to manipulate flags.
* common/Database.cpp, common/Database.h: Expand the entity database
table to include LOC and update sequence number. Implement new
functions that insert test entity data into entity and property
tables.
* rulesets/LocatedEntity.h: Add an accessor providing direct access to
the properties dictionary for persistence.
* server/Persistance.cpp: Remove the bounding box chunk from the
entity table schema.
* server/StorageManager.cpp: Implement inserting and updating rows
into the Entity and Propertiy tables.
* server/IdleConnector.cpp, server/IdleConnector.h: A generic sigc++
based class for functions which need to be called regularly.
* server/StorageManager.cpp, server/StorageManager.h: Add a method
to be called once a second from the idler.
* server/server.cpp: Hook the idler up to storage manager.
* rulesets/Entity.h: Make flags protected, and add convenient methods
to set and clear flags. Add a flag for indicating that the entity
is queued for a storage update.
* rulesets/Entity.cpp: Reset the clean flag correcly when the entity
is made dirty.
* server/StorageManager.cpp: Hook up Entity::updated, and implement
queueing things for update and making sure they only get added once.