]>
jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/libgameservgldl/include/GameServ/DataLayer/IDAOFactory.h
1 #ifndef __GS__IDAOFACTORY_H__
2 #define __GS__IDAOFACTORY_H__
4 #include <GameServ/DataLayer/IPlayerDAO.h>
5 using GameServ::DataLayer::DataAccessObjects::IPlayerDAO
;
6 #include <GameServ/DataLayer/IItemDAO.h>
7 using GameServ::DataLayer::DataAccessObjects::IItemDAO
;
8 #include <GameServ/DataLayer/IMonsterDAO.h>
9 using GameServ::DataLayer::DataAccessObjects::IMonsterDAO
;
10 #include <GameServ/DataLayer/IMasterDAO.h>
11 using GameServ::DataLayer::DataAccessObjects::IMasterDAO
;
12 #include <GameServ/DataLayer/ILevelDAO.h>
13 using GameServ::DataLayer::DataAccessObjects::ILevelDAO
;
16 #include <boost/smart_ptr/shared_ptr.hpp>
19 namespace GameServ
{ namespace DataLayer
21 //! Base interface (abstract) for DataAccessObject interfaces for data providers
23 This interface defines the neccessary functionality of every specific data
24 provider in order to build each requested DataAccessObject. It allows us to deal
25 with DataAccessObjects in a very generic way.
30 // Ctors, Dtors ///////////////////////////////////////////////////////
31 //! Base abstract class, we need virtual dtor
32 virtual ~IDAOFactory(void) { }
34 //! Player DataAccessObject for all Player related operations
35 virtual boost::shared_ptr
<IPlayerDAO
> GetPlayerDAO(void) const = 0;
37 //! Item DataAccessObject for all item related operations
38 virtual boost::shared_ptr
<IItemDAO
> GetItemDAO(void) const = 0;
40 //! Monster DataAccessObject for all monster related operations
41 virtual boost::shared_ptr
<IMonsterDAO
> GetMonsterDAO(void) const = 0;
43 //! Master DataAccessObject for all master related operations
44 virtual boost::shared_ptr
<IMasterDAO
> GetMasterDAO(void) const = 0;
46 //! Level DataAccessObject for all level related operations
47 virtual boost::shared_ptr
<ILevelDAO
> GetLevelDAO(void) const = 0;
54 }} // GameServ::DataLayer
56 #endif // __GS__IDAOFACTORY_H__