|
|||||||||
Atavism Version 2018.1 | AGIS API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectatavism.server.engine.Database
public class Database
Access to Entities in database - default is MySQL All Entity access requires both an object oid and a Namespace.
Nested Class Summary | |
---|---|
static class |
Database.OidChunk
A class to represent a range of allocated oids. |
static class |
Database.StringEscaper
|
static class |
Database.XMLExceptionListener
Logs the error encountered during de-serialization. |
Constructor Summary | |
---|---|
Database()
Constructor starts the keepalive thread |
|
Database(java.lang.String sDriver)
General database connection. |
Method Summary | |
---|---|
boolean |
characterNameTaken(java.lang.String name)
Get user name. |
void |
close()
Close the database connection. |
void |
connect(java.lang.String url,
java.lang.String username,
java.lang.String password)
Connect to the database at the host given by the url, using the given username and password |
void |
createCharacter(java.lang.String worldName,
OID aoid,
AOObject user,
Namespace namespace)
Creates this character as an entry in the database. |
Namespace |
createNamespace(java.lang.String nsString)
Store the mapping between the given namespace string and integer in the namespaces table. |
boolean |
databaseContainsTable(java.lang.String dbName,
java.lang.String tableName)
Tests to see if the table of the given name is present in a database. |
boolean |
databaseTableContainsColumn(java.lang.String dbName,
java.lang.String tableName,
java.lang.String columnName)
Tests to see if the table of the given name contain the given row in the current database. |
void |
deleteObjectData(OID oid)
Delete object and all its sub-objects from the objstore table |
void |
deleteObjectData(OID oid,
Namespace namespace)
Delete a sub-object from the objstore table |
void |
deletePlayerCharacter(OID oid)
Delete the user with the given oid from the player_character table. |
void |
encacheNamespaceMapping()
Encache the mapping between namespace strings and namespace integers. |
protected void |
encodeEntity(java.io.ByteArrayOutputStream ba,
Entity entity)
Write the representation of the entity into the ByteArrayOutputStream. |
void |
executeBatch(java.util.List<java.lang.String> statements)
Run the series of SQL statements in the list argument. |
int |
executeUpdate(java.lang.String update)
Run the update statement in the string arg. |
Namespace |
findExistingNamespace(java.lang.Integer nsInt)
Find an existing namespace int in the database. |
Namespace |
findExistingNamespace(java.lang.String nsString)
Find an existing namespace string in the database. |
int |
getAccountCount(java.lang.String worldName)
|
java.sql.Connection |
getConnection()
returns the connection object -- you must lock around this. |
java.util.List<OID> |
getGameIDs(java.lang.String worldName,
OID atavismID)
Each Atavism account may have more than 1 character for a given world. |
java.util.List<OID> |
getInstanceContent(OID instanceOid,
ObjectType exclusion)
|
OID |
getLocation(OID oid,
Namespace ns,
Point location)
Get object location. |
java.util.concurrent.locks.Lock |
getLock()
|
java.lang.String |
getObjectName(OID oid,
Namespace namespace)
Get object name. |
java.util.List<java.lang.String> |
getObjectNames(java.util.List<OID> inputOids,
Namespace namespace,
java.lang.String unknownName)
Get object names for the given oids. |
java.util.List<Namespace> |
getObjectNamespaces(OID oid)
|
OID |
getOidByName(java.lang.String name,
Namespace namespace)
|
OID |
getOidByName(java.lang.String name,
Namespace namespace,
OID instanceOid)
|
Database.OidChunk |
getOidChunk(int chunkSize)
Returns a block of oids, and record the fact that they have been allocated in the database. |
java.util.List<java.lang.Object> |
getOidsAndNamesMatchingName(java.lang.String playerName,
boolean exactMatch)
Get the oids and names matching the name supplied, base on the name string to match, and whether to return based on a starting match of an exact match. |
java.util.Set<OID> |
getPersistedObjects(Namespace namespace,
Geometry g)
Returns the set of oid's for objects managed by the namespace that are persisted in the geometry passed in, and all objects that have no geometry. |
java.util.List<PluginStatus> |
getPluginStatus(java.lang.String pluginType)
Get the contents of the database row into a PluginStatus instance. |
java.lang.String |
getUserName(OID uid)
Get user name. |
Entity |
loadEntity(OID oid,
Namespace namespace)
Retrieves the user - returns null if user with OID does not exist. |
Entity |
loadEntity(java.lang.String persistenceKey)
Load the entity with the given key. |
static java.lang.String |
makeNameCollectionString(java.util.Collection<java.lang.String> names)
|
static java.lang.String |
makeOidCollectionString(java.util.List<OID> oids)
|
void |
mapAtavismID(java.lang.String worldName,
OID atavismID,
OID objID)
Adds a atavism ID -> player OID mapping to the player_character table. |
void |
ping()
Runs a select statement to make sure we can still talk to the database. |
boolean |
registerStatusReportingPlugin(EnginePlugin plugin,
long runId)
Register a plugin |
java.io.InputStream |
retrieveEntityDataByOidAndNamespace(OID oid,
Namespace namespace)
Loads an object's serialization data from the database. |
java.io.InputStream |
retrieveEntityDataByPersistenceKey(java.lang.String persistenceKey)
Loads the object with the given persistence key from the database. |
void |
saveObject(Entity entity,
Namespace namespace)
Save the entity in the given namespace |
void |
saveObject(java.lang.String persistenceKey,
byte[] data,
Namespace namespace)
Helper method. |
void |
saveObject(java.lang.String persistenceKey,
Entity entity,
Namespace namespace)
FIXME: This happens on the object manager- we dont need to lock the quad tree anymore saves object and all objects owned by this object into the database. if the object already exists, it will overwrite with a newer version. if the object is new, will create a new row and also set the dbid into the obj itself (obj.getDBid() will return the new id). |
void |
saveObjectHelper(java.lang.String persistenceKey,
Entity entity,
Namespace namespace,
byte[] data)
A helper method that saves the byte array in the namespace with the oid supplied by the entity. |
boolean |
unregisterStatusReportingPlugin(EnginePlugin plugin)
Unregister the plugin for status reporting |
boolean |
updatePluginStatus(EnginePlugin plugin,
long nextUpdateTime)
Update the status of a plugin |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Database()
public Database(java.lang.String sDriver)
Method Detail |
---|
public java.sql.Connection getConnection()
public java.util.concurrent.locks.Lock getLock()
public void connect(java.lang.String url, java.lang.String username, java.lang.String password)
url
- Specifies the host to connect to.username
- The account name used to log into the database.password
- The password to use to log in.public int executeUpdate(java.lang.String update)
update
- An SQL update statement, or any other statement
that does not return values.public void executeBatch(java.util.List<java.lang.String> statements)
statements
- A list of SQL statements to be executed.public boolean databaseTableContainsColumn(java.lang.String dbName, java.lang.String tableName, java.lang.String columnName)
tableName
- The name of the table.columnName
- The name of the column.
public boolean databaseContainsTable(java.lang.String dbName, java.lang.String tableName)
dbName
- The name of the database.tableName
- The name of the table.
public void close()
public void encacheNamespaceMapping()
public Namespace findExistingNamespace(java.lang.String nsString)
nsString
- The string name of the namespace.
public Namespace findExistingNamespace(java.lang.Integer nsInt)
nsInt
- The int associated with the namespace.
public Namespace createNamespace(java.lang.String nsString)
nsString
- The namespace string for the new namespace.
public void createCharacter(java.lang.String worldName, OID aoid, AOObject user, Namespace namespace)
worldName
- The string name of the world in which to create the character.aoid
- The Atavism account id for the user.user
- The Entity representing the user characternamespace
- The namespace into which to save the created
character object.public void mapAtavismID(java.lang.String worldName, OID atavismID, OID objID)
worldName
- The string name of the world in which to create the character.atavismID
- The Atavism account id for the user.objID
- The oid of the Entity representing the user characterpublic java.util.Set<OID> getPersistedObjects(Namespace namespace, Geometry g)
namespace
- The namespace containing the object to be
returned.g
- The geometry containing the locations of objects to be
returned.public Entity loadEntity(OID oid, Namespace namespace)
oid
- The oid of the of user character.namespace
- The namespace containing entity to be
returned.
public Entity loadEntity(java.lang.String persistenceKey)
persistenceKey
- The string key, which provides a "handle"
by which the object to be loaded is named.
public java.io.InputStream retrieveEntityDataByOidAndNamespace(OID oid, Namespace namespace)
oid
- The object oid of the object to be loaded.namespace
- The namespace containing the object.
public java.io.InputStream retrieveEntityDataByPersistenceKey(java.lang.String persistenceKey)
persistenceKey
- The string key used to locate the object
in the objstore table.
public OID getOidByName(java.lang.String name, Namespace namespace)
public OID getOidByName(java.lang.String name, Namespace namespace, OID instanceOid)
public java.lang.String getObjectName(OID oid, Namespace namespace)
public java.util.List<java.lang.Object> getOidsAndNamesMatchingName(java.lang.String playerName, boolean exactMatch)
playerName
- The name string to match.exactMatch
- If true, the names returned must be an exact
match. If false, the names returned must start with the
playerName.
public java.util.List<java.lang.String> getObjectNames(java.util.List<OID> inputOids, Namespace namespace, java.lang.String unknownName)
inputOids
. The value of
unknownName
is returned for non-existent objects.
inputOids
- The oids for which to get names.namespace
- The sub-object namespace.unknownName
- Value returned for non-existent objects.
inputOids
.public boolean characterNameTaken(java.lang.String name)
uid
- The user oid.
public static java.lang.String makeOidCollectionString(java.util.List<OID> oids)
public static java.lang.String makeNameCollectionString(java.util.Collection<java.lang.String> names)
public java.util.List<Namespace> getObjectNamespaces(OID oid)
public java.util.List<OID> getInstanceContent(OID instanceOid, ObjectType exclusion)
public void deleteObjectData(OID oid)
oid
- The object oid to be deleted.public void deleteObjectData(OID oid, Namespace namespace)
oid
- The object oid to delete.namespace
- The sub-object namespace to delete.public void deletePlayerCharacter(OID oid)
oid
- The oid of the player to be deleted.public void saveObject(Entity entity, Namespace namespace)
entity
- The Entity object to be saved.namespace
- The namespace in which to save the entity.public void saveObject(java.lang.String persistenceKey, byte[] data, Namespace namespace)
persistenceKey
- The key under which to save the object.data
- The bytes of data to be saved. They represent an
Entity, and the Entity contains its own oid.namespace
- The namespace into which to save the
reconstructed entity.public void saveObject(java.lang.String persistenceKey, Entity entity, Namespace namespace)
protected void encodeEntity(java.io.ByteArrayOutputStream ba, Entity entity)
ba
- The ByteArrayOutputStream to which the entity will be
serialized.entity
- The entity to be serialized.public void saveObjectHelper(java.lang.String persistenceKey, Entity entity, Namespace namespace, byte[] data)
persistenceKey
- The string key to associate with the
object. For most objects, this is null.entity
- The entity whose state is represented by the data.namespace
- The namespace into which to save the object state.data
- The serialized state of the entity.public java.util.List<OID> getGameIDs(java.lang.String worldName, OID atavismID)
worldName
- The name of the world containing the
characters.atavismID
- The Atavism account id of the user.
public int getAccountCount(java.lang.String worldName)
public java.lang.String getUserName(OID uid)
uid
- The user oid.
public OID getLocation(OID oid, Namespace ns, Point location)
oid
- Object oid.ns
- Namespace from which to get location.location
- Returns the object location.
public Database.OidChunk getOidChunk(int chunkSize)
chunkSize
- The number oids to return.
public boolean registerStatusReportingPlugin(EnginePlugin plugin, long runId)
public boolean unregisterStatusReportingPlugin(EnginePlugin plugin)
public boolean updatePluginStatus(EnginePlugin plugin, long nextUpdateTime)
public java.util.List<PluginStatus> getPluginStatus(java.lang.String pluginType)
public void ping()
|
Copyright © 2018 Dragonsan Studios Sp. z o.o. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |