tagging release
[dasher.git] / Src / DasherCore / DasherModule.h
blobc65e7f4669c88d7b318334bff039ea4c393d9170
1 #ifndef __DASHER_MODULE_H__
2 #define __DASHER_MODULE_H__
4 #include "../Common/ModuleSettings.h"
5 #include "DasherComponent.h"
7 #ifdef WIN32
8 typedef __int64 ModuleID_t;
9 #else
10 typedef long long int ModuleID_t;
11 #endif
13 /// \ingroup Core
14 /// @{
15 class CDasherModule : public Dasher::CDasherComponent {
16 public:
17 CDasherModule(Dasher::CEventHandler * pEventHandler, CSettingsStore * pSettingsStore, ModuleID_t iID, int iType, const char *szName);
19 virtual ModuleID_t GetID();
20 virtual int GetType();
21 virtual const char *GetName();
23 virtual bool GetSettings(SModuleSettings **pSettings, int *iCount) {
24 return false;
27 // Basic Reference counting
29 ///
30 /// Add a reference to the module
31 ///
33 virtual void Ref();
35 ///
36 /// Remove a reference to the module
37 ///
39 virtual void Unref();
41 private:
42 ModuleID_t m_iID;
43 int m_iType;
44 int m_iRefCount;
45 const char *m_szName;
47 /// @}
49 #endif