diff options
Diffstat (limited to 'indra/llui/llfunctorregistry.h')
-rw-r--r-- | indra/llui/llfunctorregistry.h | 138 |
1 files changed, 69 insertions, 69 deletions
diff --git a/indra/llui/llfunctorregistry.h b/indra/llui/llfunctorregistry.h index e43974bc52..da5570d922 100644 --- a/indra/llui/llfunctorregistry.h +++ b/indra/llui/llfunctorregistry.h @@ -6,21 +6,21 @@ * $LicenseInfo:firstyear=2008&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -47,93 +47,93 @@ * across restarts of the viewer; we couldn't store functors that way. * Using this registry, systems that require a functor to be maintained * long term can register it at system startup, and then pass in the - * functor by name. + * functor by name. */ template <typename FUNCTOR_TYPE> class LLFunctorRegistry : public LLSingleton<LLFunctorRegistry<FUNCTOR_TYPE> > { - LLSINGLETON(LLFunctorRegistry); - LOG_CLASS(LLFunctorRegistry); + LLSINGLETON(LLFunctorRegistry); + LOG_CLASS(LLFunctorRegistry); public: - typedef FUNCTOR_TYPE ResponseFunctor; - typedef typename std::map<std::string, FUNCTOR_TYPE> FunctorMap; - - bool registerFunctor(const std::string& name, ResponseFunctor f) - { - bool retval = true; - if (mMap.count(name) == 0) - { - mMap[name] = f; - } - else - { - LL_ERRS() << "attempt to store duplicate name '" << name << "' in LLFunctorRegistry. NOT ADDED." << LL_ENDL; - retval = false; - } - - return retval; - } - - bool unregisterFunctor(const std::string& name) - { - if (mMap.count(name) == 0) - { - LL_WARNS() << "trying to remove '" << name << "' from LLFunctorRegistry but it's not there." << LL_ENDL; - return false; - } - mMap.erase(name); - return true; - } - - FUNCTOR_TYPE getFunctor(const std::string& name) - { - if (mMap.count(name) != 0) - { - return mMap[name]; - } - else - { - LL_DEBUGS() << "tried to find '" << name << "' in LLFunctorRegistry, but it wasn't there." << LL_ENDL; - return mMap[LOGFUNCTOR]; - } - } - - const std::string LOGFUNCTOR; - const std::string DONOTHING; - + typedef FUNCTOR_TYPE ResponseFunctor; + typedef typename std::map<std::string, FUNCTOR_TYPE> FunctorMap; + + bool registerFunctor(const std::string& name, ResponseFunctor f) + { + bool retval = true; + if (mMap.count(name) == 0) + { + mMap[name] = f; + } + else + { + LL_ERRS() << "attempt to store duplicate name '" << name << "' in LLFunctorRegistry. NOT ADDED." << LL_ENDL; + retval = false; + } + + return retval; + } + + bool unregisterFunctor(const std::string& name) + { + if (mMap.count(name) == 0) + { + LL_WARNS() << "trying to remove '" << name << "' from LLFunctorRegistry but it's not there." << LL_ENDL; + return false; + } + mMap.erase(name); + return true; + } + + FUNCTOR_TYPE getFunctor(const std::string& name) + { + if (mMap.count(name) != 0) + { + return mMap[name]; + } + else + { + LL_DEBUGS() << "tried to find '" << name << "' in LLFunctorRegistry, but it wasn't there." << LL_ENDL; + return mMap[LOGFUNCTOR]; + } + } + + const std::string LOGFUNCTOR; + const std::string DONOTHING; + private: - static void log_functor(const LLSD& notification, const LLSD& payload) - { - LL_DEBUGS() << "log_functor called with payload: " << payload << LL_ENDL; - } + static void log_functor(const LLSD& notification, const LLSD& payload) + { + LL_DEBUGS() << "log_functor called with payload: " << payload << LL_ENDL; + } - static void do_nothing(const LLSD& notification, const LLSD& payload) - { - // what the sign sez - } + static void do_nothing(const LLSD& notification, const LLSD& payload) + { + // what the sign sez + } - FunctorMap mMap; + FunctorMap mMap; }; template <typename FUNCTOR_TYPE> LLFunctorRegistry<FUNCTOR_TYPE>::LLFunctorRegistry() : - LOGFUNCTOR("LogFunctor"), DONOTHING("DoNothing") + LOGFUNCTOR("LogFunctor"), DONOTHING("DoNothing") { - mMap[LOGFUNCTOR] = log_functor; - mMap[DONOTHING] = do_nothing; + mMap[LOGFUNCTOR] = log_functor; + mMap[DONOTHING] = do_nothing; } template <typename FUNCTOR_TYPE> class LLFunctorRegistration { public: - LLFunctorRegistration(const std::string& name, FUNCTOR_TYPE functor) - { - LLFunctorRegistry<FUNCTOR_TYPE>::instance().registerFunctor(name, functor); - } + LLFunctorRegistration(const std::string& name, FUNCTOR_TYPE functor) + { + LLFunctorRegistry<FUNCTOR_TYPE>::instance().registerFunctor(name, functor); + } }; #endif//LL_LLFUNCTORREGISTRY_H |