ffead.server.doc
CibernateConnPools.cpp
1 /*
2  Copyright 2009-2012, Sumeet Chhetri
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 */
16 /*
17  * CibernateConnPools.cpp
18  *
19  * Created on: Mar 16, 2010
20  * Author: sumeet
21  */
22 
23 #include "CibernateConnPools.h"
24 static CibernateConnPools *instance = NULL;
25 
26 CibernateConnPools* CibernateConnPools::get()
27 {
28  if(instance==NULL)
29  instance = new CibernateConnPools;
30  return instance;
31 }
32 
33 void CibernateConnPools::destroy()
34 {
35  if(instance!=NULL)
36  instance->~CibernateConnPools();
37 }
38 
39 CibernateConnPools::CibernateConnPools()
40 {
41  logger = Logger::getLogger("CibernateConnPools");
42 }
43 
44 CibernateConnPools::~CibernateConnPools() {
45  map<string,CibernateConnectionPool*>::iterator it1;
46  for (it1=cpools.begin();it1!=cpools.end();it1++) {
47  delete it1->second;
48  }
49  map<string,Mapping*>::iterator it2;
50  for (it2=mappings.begin();it2!=mappings.end();it2++) {
51  delete it2->second;
52  }
53  instance=NULL;
54  logger << "\nDestructed CibernateConnPools" << flush;
55 }
56 
57 void CibernateConnPools::addPool(int size,string uid,string pwd,string dsn,string appName)
58 {
59  get()->cpools[appName] = new CibernateConnectionPool(size,dsn,uid,pwd);
60  instance->initialized = get()->cpools[appName]->initialized;
61 }
62 
63 bool CibernateConnPools::isInitialized()
64 {
65  return instance->initialized;
66 }
67 CibernateConnectionPool* CibernateConnPools::getPool(string appName)
68 {
69  if(instance->cpools.find(appName)!=instance->cpools.end())
70  return instance->cpools[appName];
71  return NULL;
72 }
73 
74 Mapping* CibernateConnPools::getMapping(string appName)
75 {
76  if(instance->mappings.find(appName)!=instance->mappings.end())
77  return instance->mappings[appName];
78  return NULL;
79 }
80 
81 void CibernateConnPools::addMapping(string appName,Mapping* mapping)
82 {
83  get()->mappings[appName] = mapping;
84 }