]>
jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/libgameservgldl/include/GameServ/DataLayer/IPlayerDAO.h
1 #ifndef __GS__IPlayerDAO_H__
2 #define __GS__IPlayerDAO_H__
4 #include <GameServ/GameLayer/GameObjects/PlayerGO.h>
5 using GameServ::GameLayer::GameObjects::PlayerGO
;
7 #include <boost/smart_ptr/shared_ptr.hpp>
8 using boost::shared_ptr
;
15 namespace GameServ
{ namespace DataLayer
{ namespace DataAccessObjects
17 //! Interface for Player Data Access Objects
19 This is the interface for all Player DAOs. Each specific datasource
20 will need to inherit this common interface.
25 // Ctors, Dtors ///////////////////////////////////////////////////////
27 virtual ~IPlayerDAO(void); // Needs to be virtual
29 //! Get the Player using a unique data/object Id
31 \param Id Unique identifier
32 \return A boost shared pointer to a Player game object if found
33 otherwise the list is empty.
35 virtual shared_ptr
<PlayerGO
> GetById(const string
&Id
) const = 0;
37 /*! Get a list of Player Ids by Name
38 \param Name The partial name of the Player to match against the beginning of a Player name
39 \return A collection of Player Ids matching the name
41 virtual list
<string
> GetIdsByName(const string
&Name
) const = 0;
43 //! Function to quickly search to see if an Id exists or not
45 \param Id The Id of the game object to search for
46 \return true if the Id is valid and exists in the data, false otherwise
48 virtual bool IdExists(const string
&Id
) const = 0;
50 virtual void Insert(shared_ptr
<PlayerGO
> spPlayer
) = 0;
51 virtual void Update(shared_ptr
<PlayerGO
> spPlayer
) = 0;
57 #endif // __GS__IPlayerDAO_H__