00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "DataStore.h"
00019
00020
00021
00022
00023 DataStore::DataStore()
00024 {
00025 init();
00026 }
00027
00028
00029 DataStore::~DataStore()
00030 {
00031 clear();
00032 }
00033
00034
00035 void DataStore::init()
00036 {
00037 }
00038
00039
00040 void DataStore::clear()
00041 {
00042 removeDataStacks();
00043 }
00044
00045
00046 void DataStore::grab()
00047 {
00048
00049 }
00050
00051
00052 void DataStore::drop()
00053 {
00054
00055 }
00056
00057
00058 bool DataStore::addDataStack(DataStack *stack)
00059 {
00060
00061 if(stack == NULL)
00062 return false;
00063
00064
00065 if(getDataStack(stack->getName()))
00066 return false;
00067
00068
00069 mStacks.push_back(stack);
00070 stack->grab();
00071
00072 return true;
00073 }
00074
00075
00076 DataStack* DataStore::createDataStack(const std::string &name, bool grab)
00077 {
00078
00079 if(grab && getDataStack(name))
00080 return NULL;
00081
00082
00083 DataStack *stack = new DataStack(name);
00084
00085 if(grab)
00086 {
00087 mStacks.push_back(stack);
00088 stack->grab();
00089 }
00090
00091 return stack;
00092 }
00093
00094
00095 DataStack* DataStore::getDataStack(const u32 id)
00096 {
00097 for(u32 i = 0; i < mStacks.size(); i++)
00098 {
00099 if(mStacks[i]->getID() == id)
00100 return mStacks[i];
00101 }
00102
00103 return NULL;
00104 }
00105
00106
00107 DataStack* DataStore::getDataStack(const std::string &name)
00108 {
00109 for(u32 i = 0; i < mStacks.size(); i++)
00110 {
00111 if(mStacks[i]->getName() == name)
00112 return mStacks[i];
00113 }
00114
00115 return NULL;
00116 }
00117
00118
00119 void DataStore::removeDataStacks()
00120 {
00121
00122 for(u32 i = 0; i < mStacks.size(); i++)
00123 mStacks[i]->drop();
00124
00125 mStacks.clear();
00126 }
00127
00128
00129 bool DataStore::removeDataStack(DataStack *stack)
00130 {
00131
00132 if(stack == NULL)
00133 return false;
00134
00135
00136 vector<DataStack*>::iterator it;
00137
00138 for(it = mStacks.begin(); it < mStacks.end(); it++)
00139 {
00140 DataStack *dstack = *it;
00141
00142 if(dstack == stack)
00143 {
00144 dstack->drop();
00145 mStacks.erase(it);
00146 return true;
00147 }
00148 }
00149
00150
00151 return false;
00152 }
00153
00154
00155 bool DataStore::removeDataStack(const u32 id)
00156 {
00157
00158 vector<DataStack*>::iterator it;
00159
00160 for(it = mStacks.begin(); it < mStacks.end(); it++)
00161 {
00162 DataStack *dstack = *it;
00163
00164 if(dstack->getID() == id)
00165 {
00166 dstack->drop();
00167 mStacks.erase(it);
00168 return true;
00169 }
00170 }
00171
00172
00173 return false;
00174 }
00175
00176
00177 bool DataStore::removeDataStack(const std::string &name)
00178 {
00179
00180 vector<DataStack*>::iterator it;
00181
00182 for(it = mStacks.begin(); it < mStacks.end(); it++)
00183 {
00184 DataStack *dstack = *it;
00185
00186 if(dstack->getName() == name)
00187 {
00188 dstack->drop();
00189 mStacks.erase(it);
00190 return true;
00191 }
00192 }
00193
00194
00195 return false;
00196 }
00197
00198