]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/base.h
These two numerics are supposed to use SentText() as they can go to remote users...
[user/henk/code/inspircd.git] / include / base.h
index 230ed1db4f81f02a35816c849aa07ac19015bd3d..86aa2769fc3112956b3666a24708637c1720e8dc 100644 (file)
  */
 
 
-#ifndef BASE_H
-#define BASE_H
+#pragma once
 
 #include <map>
 #include <deque>
 #include <string>
+#include <list>
 
 /** Dummy class to help enforce culls being parent-called up to classbase */
 class CullResult
@@ -121,7 +121,7 @@ class CoreExport usecountbase
 };
 
 template <typename T>
-class CoreExport reference
+class reference
 {
        T* value;
  public:
@@ -157,7 +157,7 @@ class CoreExport reference
                return *this;
        }
 
-       inline operator bool() const { return value; }
+       inline operator bool() const { return (value != NULL); }
        inline operator T*() const { return value; }
        inline T* operator->() const { return value; }
        inline T& operator*() const { return *value; }
@@ -165,7 +165,7 @@ class CoreExport reference
        inline bool operator>(const reference<T>& other) const { return value > other.value; }
        static inline void* operator new(size_t, void* m) { return m; }
  private:
-#ifndef WIN32
+#ifndef _WIN32
        static void* operator new(size_t);
        static void operator delete(void*);
 #endif
@@ -249,10 +249,11 @@ class CoreExport ServiceProvider : public classbase
        const std::string name;
        /** Type of service (must match object type) */
        const ServiceType service;
-       ServiceProvider(Module* Creator, const std::string& Name, ServiceType Type)
-               : creator(Creator), name(Name), service(Type) {}
+       ServiceProvider(Module* Creator, const std::string& Name, ServiceType Type);
        virtual ~ServiceProvider();
-};
 
+       /** If called, this ServiceProvider won't be registered automatically
+        */
+       void DisableAutoRegister();
+};
 
-#endif