/TGame/TServerMS/Database/DBMessageHandler.h

http://awoe.googlecode.com/ · C Header · 69 lines · 48 code · 14 blank · 7 comment · 1 complexity · 80148f403d804a39f2d092df3f4b0aa1 MD5 · raw file

  1. /////////////////////////////////////////////////////////////////////
  2. // DBMessageHandler.h
  3. //
  4. //
  5. // 11/16/2010
  6. //
  7. /////////////////////////////////////////////////////////////////////
  8. #ifndef __PERSISTMSGHANDLER_H__
  9. #define __PERSISTMSGHANDLER_H__
  10. #include <map>
  11. #include "Message/MsgHandlerIf.h"
  12. #include "Database/DBMysql.h"
  13. #include "Service/Service.h"
  14. class MsgHandlerInitDataDB : public IMsgHandlerInitData
  15. {
  16. public:
  17. MsgHandlerInitDataDB(Service* pSvcLgc):wpSvcLgc(pSvcLgc){}
  18. Service* wpSvcLgc;
  19. string db_server;
  20. string db_name;
  21. string db_user;
  22. string db_password;
  23. short db_port;
  24. };
  25. class DBMessage;
  26. class PersistService;
  27. class DBMessageHandler : public IMsgHandler
  28. {
  29. friend PersistService;
  30. public:
  31. DBMessageHandler( );
  32. virtual ~DBMessageHandler( );
  33. virtual bool initialize(IMsgHandlerInitData* data) ;
  34. virtual bool handleMsg( IMsg * message );
  35. private:
  36. virtual void addSubHandler(int nMsgCate, int nMsgID, IMsgHandler* pHandler);
  37. virtual void rmvSubHandler(int nMsgCate, int nMsgID);
  38. private:
  39. typedef std::map< int, IMsgHandler* > MessageMap;
  40. typedef std::map< int, IMsgHandler* >::iterator MessageMapIter;
  41. typedef std::map< int, IMsgHandler* >::const_iterator MessageMapConstIter;
  42. static MessageMap ms_MessageMap;
  43. protected:
  44. static DBMysql m_DBMysql;
  45. static Service* m_wpSvcLgc;
  46. };
  47. extern INT64 sqlResult;
  48. #define SQL_QUERY( sql, ... ) \
  49. do \
  50. { \
  51. char strSQL[ 1024 ]; \
  52. sprintf_s( strSQL, 1024, sql, __VA_ARGS__ ); \
  53. sqlResult = m_DBMysql.Query( strSQL ); \
  54. } while ( 0 );
  55. #endif // __PERSISTMSGHANDLER_H__