diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-12-05 20:43:41 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-12-05 20:43:41 +0000 |
commit | c3a7fb47d62c2f701782809a987747edd7bc7818 (patch) | |
tree | 41847bd18f2d6f45f6377be4ba720fd702d68b01 /src/modules.cpp | |
parent | 743b5409f88ce65c69c44ebde7ef19c4cf7f0bcf (diff) |
Untested, undocumented PublishInterface, UnpublishInterface, FindInterface.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5867 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules.cpp')
-rw-r--r-- | src/modules.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/modules.cpp b/src/modules.cpp index 68859b627..2b5a07296 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -249,6 +249,39 @@ Module* InspIRCd::FindFeature(const std::string &FeatureName) return iter->second; } +bool InspIRCd::PublishInterface(const std::string &InterfaceName, Module* Mod) +{ + Interfaces[InterfaceName].push_back(Mod); + return true; +} + +bool InspIRCd::UnpublishInterface(const std::string &InterfaceName, Module* Mod) +{ + interfacelist::iterator iter = Interfaces.find(InterfaceName); + + if (iter == Interfaces.end()) + return false; + + for (modulelist::iterator x = iter->second.begin(); x != iter->second.end(); x++) + { + if (*x == Mod) + { + iter->second.erase(x); + return true; + } + } + return false; +} + +modulelist* InspIRCd::FindInterface(const std::string &InterfaceName) +{ + interfacelist::iterator iter = Interfaces.find(InterfaceName); + if (iter == Interfaces.end()) + return NULL; + else + return &(iter->second); +} + const std::string& InspIRCd::GetModuleName(Module* m) { static std::string nothing = ""; /* Prevent compiler warning */ |