#ifndef __INC_MESSENGER_MANAGER_H #define __INC_MESSENGER_MANAGER_H #include "db.h" class MessengerManager : public singleton { public: typedef std::string keyT; typedef const std::string & keyA; MessengerManager(); virtual ~MessengerManager(); public: void P2PLogin(keyA account); void P2PLogout(keyA account); void Login(keyA account); void Logout(keyA account); void RequestToAdd(LPCHARACTER ch, LPCHARACTER target); void AuthToAdd(keyA account, keyA companion, bool bDeny); void __AddToList(keyA account, keyA companion); // ½ÇÁ¦ m_Relation, m_InverseRelation ¼öÁ¤ÇÏ´Â ¸Þ¼Òµå void AddToList(keyA account, keyA companion); void __RemoveFromList(keyA account, keyA companion); // ½ÇÁ¦ m_Relation, m_InverseRelation ¼öÁ¤ÇÏ´Â ¸Þ¼Òµå void RemoveFromList(keyA account, keyA companion); void RemoveAllList(keyA account); void Initialize(); private: void SendList(keyA account); void SendLogin(keyA account, keyA companion); void SendLogout(keyA account, keyA companion); void LoadList(SQLMsg * pmsg); void Destroy(); std::set m_set_loginAccount; std::map > m_Relation; std::map > m_InverseRelation; std::set m_set_requestToAdd; }; #endif