aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Addons
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Addons')
-rwxr-xr-xsrc/server/game/Addons/AddonMgr.cpp36
-rwxr-xr-xsrc/server/game/Addons/AddonMgr.h35
2 files changed, 26 insertions, 45 deletions
diff --git a/src/server/game/Addons/AddonMgr.cpp b/src/server/game/Addons/AddonMgr.cpp
index d892e64b316..70c72fba7e6 100755
--- a/src/server/game/Addons/AddonMgr.cpp
+++ b/src/server/game/Addons/AddonMgr.cpp
@@ -16,27 +16,31 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "DatabaseEnv.h"
#include "AddonMgr.h"
-#include "ObjectAccessor.h"
-#include "Player.h"
-#include "Util.h"
-#include "SHA1.h"
+#include "DatabaseEnv.h"
+#include "Log.h"
+#include "Timer.h"
-AddonMgr::AddonMgr()
+#include <list>
+
+namespace AddonMgr
{
-}
-AddonMgr::~AddonMgr()
+// Anonymous namespace ensures file scope of all the stuff inside it, even
+// if you add something more to this namespace somewhere else.
+namespace
{
+ // List of saved addons (in DB).
+ typedef std::list<SavedAddon> SavedAddonsList;
+
+ SavedAddonsList m_knownAddons;
}
-void AddonMgr::LoadFromDB()
+void LoadFromDB()
{
uint32 oldMSTime = getMSTime();
QueryResult result = CharacterDatabase.Query("SELECT name, crc FROM addons");
-
if (!result)
{
sLog->outString(">> Loaded 0 known addons. DB table `addons` is empty!");
@@ -53,8 +57,7 @@ void AddonMgr::LoadFromDB()
std::string name = fields[0].GetString();
uint32 crc = fields[1].GetUInt32();
- SavedAddon addon(name, crc);
- m_knownAddons.push_back(addon);
+ m_knownAddons.push_back(SavedAddon(name, crc));
++count;
}
@@ -64,17 +67,16 @@ void AddonMgr::LoadFromDB()
sLog->outString();
}
-void AddonMgr::SaveAddon(AddonInfo const& addon)
+void SaveAddon(AddonInfo const& addon)
{
std::string name = addon.Name;
CharacterDatabase.EscapeString(name);
CharacterDatabase.PExecute("INSERT INTO addons (name, crc) VALUES ('%s', %u)", name.c_str(), addon.CRC);
- SavedAddon newAddon(addon.Name, addon.CRC);
- m_knownAddons.push_back(newAddon);
+ m_knownAddons.push_back(SavedAddon(addon.Name, addon.CRC));
}
-SavedAddon const* AddonMgr::GetAddonInfo(const std::string& name) const
+SavedAddon const* GetAddonInfo(const std::string& name)
{
for (SavedAddonsList::const_iterator it = m_knownAddons.begin(); it != m_knownAddons.end(); ++it)
{
@@ -85,3 +87,5 @@ SavedAddon const* AddonMgr::GetAddonInfo(const std::string& name) const
return NULL;
}
+
+} // Namespace
diff --git a/src/server/game/Addons/AddonMgr.h b/src/server/game/Addons/AddonMgr.h
index 9d68d2277fb..72edc3d1f6f 100755
--- a/src/server/game/Addons/AddonMgr.h
+++ b/src/server/game/Addons/AddonMgr.h
@@ -19,13 +19,9 @@
#ifndef _ADDONMGR_H
#define _ADDONMGR_H
-#include "Common.h"
-#include <ace/Singleton.h>
-
+#include "Define.h"
#include <string>
-class WorldSession;
-
struct AddonInfo
{
AddonInfo(const std::string& name, uint8 enabled, uint32 crc, uint8 state, bool crcOrPubKey)
@@ -56,33 +52,14 @@ struct SavedAddon
uint32 CRC;
};
-// List of client addons (for WorldSession).
-typedef std::list<AddonInfo> AddonsList;
-
-// List of saved addons (in DB).
-typedef std::list<SavedAddon> SavedAddonsList;
-
#define STANDARD_ADDON_CRC 0x4c1c776d
-class AddonMgr
+namespace AddonMgr
{
- friend class ACE_Singleton<AddonMgr, ACE_Null_Mutex>;
- AddonMgr();
- ~AddonMgr();
-
- public:
-
- void LoadFromDB();
- void SaveAddon(AddonInfo const& addon);
-
- SavedAddon const* GetAddonInfo(const std::string& name) const;
-
- private:
-
- SavedAddonsList m_knownAddons; // Known addons.
-};
-
-#define sAddonMgr ACE_Singleton<AddonMgr, ACE_Null_Mutex>::instance()
+ void LoadFromDB();
+ void SaveAddon(AddonInfo const& addon);
+ SavedAddon const* GetAddonInfo(const std::string& name);
+}
#endif