]> jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/libgameservgldl/include/GameServ/DataLayer/IDAOFactory.h
Revisited GameServ 2.0 and got it compiling in VS 2010!
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / include / GameServ / DataLayer / IDAOFactory.h
1 #ifndef __GS__IDAOFACTORY_H__
2 #define __GS__IDAOFACTORY_H__
3
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;
14
15
16 #include <boost/smart_ptr/shared_ptr.hpp>
17
18
19 namespace GameServ { namespace DataLayer
20 {
21 //! Base interface (abstract) for DataAccessObject interfaces for data providers
22 /*!
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.
26 */
27 class IDAOFactory
28 {
29 public:
30 // Ctors, Dtors ///////////////////////////////////////////////////////
31 //! Base abstract class, we need virtual dtor
32 virtual ~IDAOFactory(void) { }
33
34 //! Player DataAccessObject for all Player related operations
35 virtual boost::shared_ptr<IPlayerDAO> GetPlayerDAO(void) const = 0;
36
37 //! Item DataAccessObject for all item related operations
38 virtual boost::shared_ptr<IItemDAO> GetItemDAO(void) const = 0;
39
40 //! Monster DataAccessObject for all monster related operations
41 virtual boost::shared_ptr<IMonsterDAO> GetMonsterDAO(void) const = 0;
42
43 //! Master DataAccessObject for all master related operations
44 virtual boost::shared_ptr<IMasterDAO> GetMasterDAO(void) const = 0;
45
46 //! Level DataAccessObject for all level related operations
47 virtual boost::shared_ptr<ILevelDAO> GetLevelDAO(void) const = 0;
48
49
50
51 private:
52
53 };
54 }} // GameServ::DataLayer
55
56 #endif // __GS__IDAOFACTORY_H__