DALStorage Class Reference

A storage class that relies on DAL. More...

#include <dalstorage.hpp>

List of all members.

Public Member Functions

 DALStorage ()
 Constructor.
 ~DALStorage ()
 Destructor.
void open ()
 Connect to the database and initialize it if necessary.
void close ()
 Disconnect from the database.
AccountgetAccount (const std::string &userName)
 Get an account by user name.
AccountgetAccount (int accountID)
 Get an account by ID.
CharactergetCharacter (int id, Account *owner)
 Gets a character by database ID.
CharactergetCharacter (const std::string &name)
 Gets a character by character name.
void addAccount (Account *account)
 Add a new account.
void delAccount (Account *account)
 Delete an account.
void updateLastLogin (const Account *account)
 Update the date and time of the last login.
void updateCharacterPoints (const int CharId, const int CharPoints, const int CorrPoints, const int AttribId, const int AttribValue)
 Write a modification message about Character points to the database.
void updateExperience (const int CharId, const int SkillId, const int SkillValue)
 Write a modification message about character skills to the database.
void banCharacter (int id, int duration)
 Sets a ban on an account (hence on all its characters).
void delCharacter (int charId, bool startTransaction) const
 Delete a character in the database.
void delCharacter (Character *character, bool startTransaction) const
 Delete a character in the database.
void checkBannedAccounts ()
 Removes expired bans from accounts.
bool doesUserNameExist (const std::string &name)
 Tells if the user name already exists.
bool doesEmailAddressExist (const std::string &email)
 Tells if the email address already exists.
bool doesCharacterNameExist (const std::string &name)
 Tells if the character name already exists.
bool updateCharacter (Character *ptr, bool startTransaction=true)
 Updates the data for a single character, does not update the owning account or the characters name.
void flushSkill (const Character *const character, const int skill_id)
 Save changes of a skill to the database permanently.
void addGuild (Guild *guild)
 Add a new guild.
void removeGuild (Guild *guild)
 Delete a guild.
void addGuildMember (int guild_id, int memberId)
 Add member to guild.
void removeGuildMember (int guildId, int memberId)
 Remove member from guild.
void setMemberRights (int guildId, int memberId, int rights)
 Save guild member rights.
std::list< Guild * > getGuildList ()
 Get guild list.
void flushAll ()
 Save changes to the database permanently.
void flush (Account *)
 Update an account from the database.
std::string getQuestVar (int id, const std::string &)
 Gets the value of a quest variable.
void setQuestVar (int id, const std::string &, const std::string &)
 Sets the value of a quest variable.
std::string getWorldStateVar (const std::string &name, int map_id=-1)
 Gets the string value of a map specific world state variable.
void setWorldStateVar (const std::string &name, const std::string &value)
 Sets the value of a world state variable.
void setWorldStateVar (const std::string &name, int map_id, const std::string &value)
 Sets the value of a world state variable of a specific map.
void setAccountLevel (int id, int level)
 Set the level on an account.
void setPlayerLevel (int id, int level)
 Set the level on a character.
void storeLetter (Letter *letter)
 Store letter.
Post * getStoredPost (int playerId)
 Retrieve post.
void deletePost (Letter *letter)
 Delete a letter from the database.
void addAuctionItem (unsigned int itemId, int playerId, unsigned int gold)
 Add item to auction.
unsigned int getItemDatabaseVersion (void) const
 Gets the version of the local item database.
void setOnlineStatus (int charId, bool online)
 Sets the status of a character to online (true) or offline (false).
void addTransaction (const Transaction &trans)
 Store a transaction.
std::vector< Transaction > getTransactions (unsigned int num)
 Retrieve a series of transactions Either based on number of transactions last saved or by all transactions since a date.
std::vector< Transaction > getTransactions (time_t date)


Detailed Description

A storage class that relies on DAL.

Definition at line 42 of file dalstorage.hpp.


Member Function Documentation

Account * DALStorage::getAccount ( const std::string &  userName  ) 

Get an account by user name.

Parameters:
userName the owner of the account.
Returns:
the account associated to the user name.

Definition at line 204 of file dalstorage.cpp.

Account * DALStorage::getAccount ( int  accountID  ) 

Get an account by ID.

Parameters:
accountID the ID of the account.
Returns:
the account associated with the ID.

Definition at line 214 of file dalstorage.cpp.

Character * DALStorage::getCharacter ( int  id,
Account owner 
)

Gets a character by database ID.

Parameters:
id the ID of the character.
owner the account the character is in.
Returns:
the character associated to the ID.

Definition at line 366 of file dalstorage.cpp.

Referenced by getGuildList(), getStoredPost(), ServerHandler::processMessage(), ChatHandler::sendGuildListUpdate(), and ChatHandler::tokenMatched().

Character * DALStorage::getCharacter ( const std::string &  name  ) 

Gets a character by character name.

Parameters:
name of the character
Returns:
the character associated to the name

Definition at line 373 of file dalstorage.cpp.

void DALStorage::addAccount ( Account account  ) 

void DALStorage::delAccount ( Account account  ) 

Delete an account.

Delete an account and its associated data from the database.

Parameters:
account the account to delete.

Definition at line 825 of file dalstorage.cpp.

References dal::DataProvider::execSql(), flush(), Account::getID(), and Account::setCharacters().

void DALStorage::updateLastLogin ( const Account account  ) 

Update the date and time of the last login.

Parameters:
account the account that recently logged in.

Definition at line 840 of file dalstorage.cpp.

References dal::DataProvider::execSql(), Account::getID(), and Account::getLastLogin().

void DALStorage::updateCharacterPoints ( const int  CharId,
const int  CharPoints,
const int  CorrPoints,
const int  AttribId,
const int  AttribValue 
)

Write a modification message about Character points to the database.

Parameters:
CharId ID of the character
CharPoints Number of character points left for the character
CorrPoints Number of correction points left for the character
AttribId ID of the modified attribute
AttribValue New value of the modified attribute

Definition at line 849 of file dalstorage.cpp.

References dal::DataProvider::execSql().

void DALStorage::updateExperience ( const int  CharId,
const int  SkillId,
const int  SkillValue 
)

Write a modification message about character skills to the database.

Parameters:
CharId ID of the character
SkillId ID of the skill
SkillValue new skill points

Definition at line 872 of file dalstorage.cpp.

References dal::DataProvider::execSql(), dal::DataProvider::getModifiedRows(), and dal::DbException::what().

Referenced by flush(), flushSkill(), and updateCharacter().

void DALStorage::banCharacter ( int  id,
int  duration 
)

Sets a ban on an account (hence on all its characters).

Parameters:
id character identifier.
duration duration in minutes.

Definition at line 1232 of file dalstorage.cpp.

References dal::DataProvider::execSql(), dal::RecordSet::isEmpty(), and dal::DbException::what().

Referenced by ServerHandler::processMessage().

void DALStorage::delCharacter ( int  charId,
bool  startTransaction = true 
) const

Delete a character in the database.

Parameters:
charId character identifier.
startTransaction indicates wheter the function should run in its own transaction or is called inline of another transaction

Definition at line 1259 of file dalstorage.cpp.

References dal::DataProvider::beginTransaction(), dal::DataProvider::commitTransaction(), dal::DataProvider::execSql(), dal::DataProvider::rollbackTransaction(), and dal::DbException::what().

Referenced by delCharacter(), and flush().

void DALStorage::delCharacter ( Character character,
bool  startTransaction = true 
) const

Delete a character in the database.

The object itself i not touched by this function!

Parameters:
character character object.
startTransaction indicates wheter the function should run in its own transaction or is called inline of another transaction

Definition at line 1325 of file dalstorage.cpp.

References delCharacter(), and Character::getDatabaseID().

bool DALStorage::doesUserNameExist ( const std::string &  name  ) 

Tells if the user name already exists.

Returns:
true if the user name exists.

Definition at line 415 of file dalstorage.cpp.

References dal::DataProvider::execSql().

bool DALStorage::doesEmailAddressExist ( const std::string &  email  ) 

Tells if the email address already exists.

Returns:
true if the email address exists.

true if the email address exists.

Definition at line 439 of file dalstorage.cpp.

References dal::DataProvider::execSql().

bool DALStorage::doesCharacterNameExist ( const std::string &  name  ) 

Tells if the character name already exists.

Tells if the character's name already exists.

Returns:
true if the character name exists.

true if character's name exists.

Definition at line 463 of file dalstorage.cpp.

References dal::DataProvider::execSql().

bool DALStorage::updateCharacter ( Character ptr,
bool  startTransaction = true 
)

Updates the data for a single character, does not update the owning account or the characters name.

Primary usage should be storing characterdata received from a game server. returns true if succefull, false otherwise.

Parameters:
ptr Character to store values in the database.
startTransaction set to false if this method is called as nested transaction.
Returns:
true on success

Character's skills

Character's inventory

Definition at line 484 of file dalstorage.cpp.

References dal::DataProvider::beginTransaction(), dal::DataProvider::commitTransaction(), Possessions::equipment, dal::DataProvider::execSql(), Character::getAttribute(), Character::getCharacterPoints(), Character::getCorrectionPoints(), Character::getDatabaseID(), Character::getExperience(), Character::getGender(), Character::getHairColor(), Character::getHairStyle(), Character::getLevel(), Character::getMapId(), Character::getPosition(), Character::getPossessions(), Possessions::inventory, Possessions::money, dal::DataProvider::rollbackTransaction(), updateExperience(), dal::DbException::what(), Point::x, and Point::y.

Referenced by flush(), and ServerHandler::processMessage().

void DALStorage::flushSkill ( const Character *const   character,
const int  skill_id 
)

Save changes of a skill to the database permanently.

Parameters:
character Character thats skill has changed.
skill_id Identifier of the changed skill.
Exceptions:
dbl::DbSqlQueryExecFailure. 
Deprecated:
Use DALStorage::updateExperience instead!!!

Definition at line 641 of file dalstorage.cpp.

References Character::getDatabaseID(), Character::getExperience(), and updateExperience().

void DALStorage::addGuild ( Guild guild  ) 

Add a new guild.

Add a guild.

Definition at line 924 of file dalstorage.cpp.

References dal::DataProvider::execSql(), Guild::getName(), and Guild::setId().

Referenced by GuildManager::createGuild().

void DALStorage::removeGuild ( Guild guild  ) 

Delete a guild.

Remove guild.

Definition at line 945 of file dalstorage.cpp.

References dal::DataProvider::execSql(), and Guild::getId().

Referenced by GuildManager::removeGuild().

void DALStorage::addGuildMember ( int  guild_id,
int  memberId 
)

Add member to guild.

add a member to a guild

Definition at line 957 of file dalstorage.cpp.

References dal::DataProvider::execSql(), and dal::DbException::what().

Referenced by GuildManager::addGuildMember().

void DALStorage::removeGuildMember ( int  guildId,
int  memberId 
)

Remove member from guild.

remove a member from a guild

Definition at line 980 of file dalstorage.cpp.

References dal::DataProvider::execSql(), and dal::DbException::what().

Referenced by GuildManager::removeGuildMember().

std::list< Guild * > DALStorage::getGuildList (  ) 

Get guild list.

get a list of guilds

Returns:
a list of guilds

Get the guilds stored in the db.

Add the members to the guilds.

Definition at line 1021 of file dalstorage.cpp.

References Character::addGuild(), dal::DataProvider::execSql(), getCharacter(), Character::getDatabaseID(), dal::RecordSet::isEmpty(), dal::RecordSet::rows(), Guild::setId(), and dal::DbException::what().

Referenced by GuildManager::GuildManager().

void DALStorage::flushAll (  ) 

Save changes to the database permanently.

Exceptions:
dal::DbSqlQueryExecFailure. 

std::string DALStorage::getWorldStateVar ( const std::string &  name,
int  map_id = -1 
)

Gets the string value of a map specific world state variable.

Parameters:
name Name of the requested world-state variable.
map_id Id of the specific map.

Definition at line 1110 of file dalstorage.cpp.

References dal::DataProvider::execSql(), dal::RecordSet::isEmpty(), and dal::DbException::what().

Referenced by open().

void DALStorage::setWorldStateVar ( const std::string &  name,
const std::string &  value 
)

Sets the value of a world state variable.

Parameters:
name Name of the world-state vairable.
value New value of the world-state variable.

Definition at line 1138 of file dalstorage.cpp.

void DALStorage::setWorldStateVar ( const std::string &  name,
int  map_id,
const std::string &  value 
)

Sets the value of a world state variable of a specific map.

Parameters:
name Name of the world-state vairable.
map_id ID of the specific map
value New value of the world-state variable.

Definition at line 1143 of file dalstorage.cpp.

References dal::DataProvider::execSql(), dal::DataProvider::getModifiedRows(), and dal::DbException::what().

void DALStorage::setAccountLevel ( int  id,
int  level 
)

Set the level on an account.

Parameters:
id The id of the account
level The level to set for the account

Definition at line 1349 of file dalstorage.cpp.

References dal::DataProvider::execSql(), and dal::DbException::what().

Referenced by ServerHandler::processMessage().

void DALStorage::setPlayerLevel ( int  id,
int  level 
)

Set the level on a character.

Parameters:
id The id of the character
level The level to set for the character

Definition at line 1365 of file dalstorage.cpp.

References dal::DataProvider::execSql(), and dal::DbException::what().

Referenced by ServerHandler::processMessage().

void DALStorage::storeLetter ( Letter *  letter  ) 

Store letter.

Parameters:
letter The letter to store

Definition at line 1381 of file dalstorage.cpp.

References dal::DataProvider::execSql(), dal::DataProvider::getLastId(), and dal::DataProvider::getModifiedRows().

Post * DALStorage::getStoredPost ( int  playerId  ) 

Retrieve post.

Parameters:
playerId The id of the character requesting his post

Definition at line 1427 of file dalstorage.cpp.

References dal::DataProvider::execSql(), getCharacter(), dal::RecordSet::isEmpty(), and dal::RecordSet::rows().

void DALStorage::deletePost ( Letter *  letter  ) 

Delete a letter from the database.

Parameters:
letter The letter to delete.

Definition at line 1467 of file dalstorage.cpp.

References dal::DataProvider::beginTransaction(), dal::DataProvider::commitTransaction(), dal::DataProvider::execSql(), dal::DataProvider::rollbackTransaction(), and dal::DbException::what().

void DALStorage::addAuctionItem ( unsigned int  itemId,
int  playerId,
unsigned int  gold 
)

Add item to auction.

Parameters:
itemId The id of the item for auction
player The player who put the item up for auction
gold The amount of money to buy it

unsigned int DALStorage::getItemDatabaseVersion ( void   )  const [inline]

Gets the version of the local item database.

Returns:
Version of the item database.

Definition at line 360 of file dalstorage.hpp.

Referenced by ServerHandler::processMessage().

void DALStorage::setOnlineStatus ( int  charId,
bool  online 
)

Sets the status of a character to online (true) or offline (false).

Parameters:
charId Id of the character.
online True to mark the character as being online.

Definition at line 1595 of file dalstorage.cpp.

References dal::DataProvider::execSql(), and dal::DbException::what().


The documentation for this class was generated from the following files:

Generated on Sun Apr 26 17:30:46 2009 for TMW Server Collection by  doxygen 1.5.5