Hi, is it ok to push this now?/BR HansN On 04/11/14 13:06, Hans Feldt wrote: > Can you please push this today together with the app change? > Thanks, > HansF > > On 11 April 2014 12:55, Hans Nordebäck <[email protected]> wrote: >> I'll add that before pushing. /Rgds HansN >> >> >> On 04/11/14 09:39, Hans Feldt wrote: >>> Ack with comment: include/Makefile.am needs to be updated for this file >>> Thanks, >>> Hans >>> >>> On 7 April 2014 10:11, Hans Nordeback <[email protected]> wrote: >>>> osaf/services/saf/amf/amfd/include/db_template.h | 71 >>>> ++++++++++++++++++++++++ >>>> 1 files changed, 71 insertions(+), 0 deletions(-) >>>> >>>> >>>> diff --git a/osaf/services/saf/amf/amfd/include/db_template.h >>>> b/osaf/services/saf/amf/amfd/include/db_template.h >>>> new file mode 100644 >>>> --- /dev/null >>>> +++ b/osaf/services/saf/amf/amfd/include/db_template.h >>>> @@ -0,0 +1,71 @@ >>>> +/* -*- OpenSAF -*- >>>> + * >>>> + * (C) Copyright 2014 The OpenSAF Foundation >>>> + * >>>> + * This program 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. This file and program are >>>> licensed >>>> + * under the GNU Lesser General Public License Version 2.1, February >>>> 1999. >>>> + * The complete license can be accessed from the following location: >>>> + * http://opensource.org/licenses/lgpl-license.php >>>> + * See the Copying file included with the OpenSAF distribution for full >>>> + * licensing terms. >>>> + * >>>> + * Author(s): Ericsson AB >>>> + * >>>> + */ >>>> +#ifndef DB_TEMPLATE_H >>>> +#define DB_TEMPLATE_H >>>> + >>>> +#include <map> >>>> +#include <string> >>>> +#include "ncsgl_defs.h" >>>> + >>>> +template <typename T> >>>> +class AmfDb { >>>> + public: >>>> + unsigned int insert(T *obj); >>>> + void erase(T *obj); >>>> + T *find(const SaNameT *name); >>>> + >>>> + typedef std::map<std::string, T*> AmfDbMap; >>>> + typedef typename AmfDbMap::const_iterator const_iterator; >>>> + >>>> + const_iterator begin() const {return db.begin();} >>>> + const_iterator end() const {return db.end();} >>>> + >>>> + private: >>>> + AmfDbMap db; >>>> +}; >>>> + >>>> +template <typename T> >>>> +unsigned int AmfDb<T>::insert(T *obj) { >>>> + osafassert(obj); >>>> + std::string name((const char*)obj->name.value, obj->name.length); >>>> + if (db.insert(std::make_pair(name, obj)).second) { >>>> + return NCSCC_RC_SUCCESS; >>>> + } >>>> + else { >>>> + return NCSCC_RC_FAILURE; // Duplicate >>>> + } >>>> + } >>>> + >>>> +template <typename T> >>>> +void AmfDb<T>::erase(T *obj) { >>>> + osafassert(obj); >>>> + std::string name((const char*)obj->name.value, obj->name.length); >>>> + db.erase(name); >>>> +} >>>> + >>>> +template <typename T> >>>> +T *AmfDb<T>::find(const SaNameT *dn) { >>>> + osafassert(dn); >>>> + std::string name((const char*)dn->value, dn->length); >>>> + typename AmfDbMap::iterator it = db.find(name); >>>> + if (it == db.end()) >>>> + return NULL; >>>> + else >>>> + return it->second; >>>> +} >>>> + >>>> +#endif /* DB_TEMPLATE_H */ >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Put Bad Developers to Shame >>>> Dominate Development with Jenkins Continuous Integration >>>> Continuously Automate Build, Test & Deployment >>>> Start a new project now. Try Jenkins in the cloud. >>>> http://p.sf.net/sfu/13600_Cloudbees_APR >>>> _______________________________________________ >>>> Opensaf-devel mailing list >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel >>
------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
