]>
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/shared_ptr.hpp>
8 using boost::shared_ptr
;
17 namespace GameServ
{ namespace DataLayer
{ namespace DataAccessObjects
19 //! Interface for Player Data Access Objects
21 This is the interface for all Player DAOs. Each specific datasource
22 will need to inherit this common interface.
27 // Ctors, Dtors ///////////////////////////////////////////////////////
29 virtual ~IPlayerDAO(void); // Needs to be virtual
31 //! Get the Player using a unique data/object Id
33 \param Id Unique identifier
34 \return A boost shared pointer to a Player game object if found
35 otherwise the list is empty.
37 virtual shared_ptr
<PlayerGO
> GetById(const string
&Id
) const = 0;
39 /*! Get a list of Player Ids by Name
40 \param Name The partial name of the Player to match against the beginning of a Player name
41 \return A collection of Player Ids matching the name
43 virtual list
<string
> GetIdsByName(const string
&Name
) const = 0;
45 //! Function to quickly search to see if an Id exists or not
47 \param Id The Id of the game object to search for
48 \return true if the Id is valid and exists in the data, false otherwise
50 virtual bool IdExists(const string
&Id
) const = 0;
52 virtual void Insert(shared_ptr
<PlayerGO
> spPlayer
) = 0;
53 virtual void Update(shared_ptr
<PlayerGO
> spPlayer
) = 0;
59 #endif // __GS__IPlayerDAO_H__