* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * InspIRCd: (C) 2002-2010 InspIRCd Development Team
* See: http://wiki.inspircd.org/Credits
*
* This program is free but copyrighted software; see
{
public:
interfacebase() {}
+ static inline void* operator new(size_t, void* m) { return m; }
private:
interfacebase(const interfacebase&);
void operator=(const interfacebase&);
- void* operator new(size_t);
- void operator delete(void*);
+ static void* operator new(size_t);
+ static void operator delete(void*);
};
/** The base class for inspircd classes that support reference counting.
refcountbase();
virtual ~refcountbase();
inline unsigned int GetReferenceCount() const { return refcount; }
- void* operator new(size_t);
- void operator delete(void*);
+ static inline void* operator new(size_t, void* m) { return m; }
+ static void* operator new(size_t);
+ static void operator delete(void*);
inline void refcount_inc() const { refcount++; }
inline bool refcount_dec() const { refcount--; return !refcount; }
private:
inline T& operator*() const { return *value; }
inline bool operator<(const reference<T>& other) const { return value < other.value; }
inline bool operator>(const reference<T>& other) const { return value > other.value; }
+ static inline void* operator new(size_t, void* m) { return m; }
private:
- void* operator new(size_t);
- void operator delete(void*);
+ static void* operator new(size_t);
+ static void operator delete(void*);
};
/** This class can be used on its own to represent an exception, or derived to represent a module-specific exception.
*/
class CoreExport CoreException : public std::exception
{
- protected:
+ public:
/** Holds the error message to be displayed
*/
const std::string err;
/** Source of the exception
*/
const std::string source;
- public:
/** Default constructor, just uses the error mesage 'Core threw an exception'.
*/
CoreException() : err("Core threw an exception"), source("The core") {}
enum ServiceType {
/** is a Command */
SERVICE_COMMAND,
- /** is a channel ModeHandler */
- SERVICE_CMODE,
- /** is a user ModeHandler */
- SERVICE_UMODE,
+ /** is a ModeHandler */
+ SERVICE_MODE,
/** is a metadata descriptor */
SERVICE_METADATA,
/** is a data processing provider (MD5, SQL) */
};
/** A structure defining something that a module can provide */
-class CoreExport providerbase : public classbase
+class CoreExport ServiceProvider : public classbase
{
public:
/** Module that is providing this service */
const std::string name;
/** Type of service (must match object type) */
const ServiceType service;
- providerbase(Module* Creator, const std::string& Name, ServiceType Type)
+ ServiceProvider(Module* Creator, const std::string& Name, ServiceType Type)
: creator(Creator), name(Name), service(Type) {}
- virtual ~providerbase();
+ virtual ~ServiceProvider();
};