32 const char Pool::MESSAGEFORUNXSTNGID[]=
"The id specified not exists. Unable to handle with. Either internal error, or invalid use of Pool from Optimizer Algorithm";
50 if(_out!=USED_BUT_NOT_COMPUTED_YET && _out!=NOT_USED_NOR_COMPUTED)
59 if(_out!=USED_BUT_NOT_COMPUTED_YET && _out!=NOT_USED_NOR_COMPUTED)
70 _out=USED_BUT_NOT_COMPUTED_YET;
75 return _out==NOT_USED_NOR_COMPUTED;
90 return (*_currentCase).second.inValue();
98 return (*_currentCase).second.outValue();
106 std::list< std::pair<int, ExpData> >::iterator iter;
108 if((*iter).first==
id)
109 return (*iter).second.outValue();
117 std::pair<int, ExpData> eltToAdd(
id,
Pool::ExpData(inSample,priority));
143 std::list< std::pair<int, ExpData> >::iterator iter;
146 std::pair< std::set<int>::iterator,
bool > verdict=ids.insert((*iter).first);
149 std::ostringstream what;
150 what <<
"Id with value : " << (*iter).first <<
" appears several times.";
161 std::list< std::pair<int, ExpData> >::iterator iter;
163 if((*iter).first==
id)
182 std::list< std::pair<int, ExpData> >::iterator iter;
184 if((*iter).first==
id)
187 (*iter).second.setOutValue(outValue);
206 unsigned char myPriority=0;
207 std::list< std::pair<int, ExpData> >::const_iterator iter,ptToSelected;
211 if((*iter).second.isLaunchable())
212 if((*iter).second.getPriority()>myPriority || ptToSelected==
_container.end())
215 myPriority=(*iter).second.getPriority();
222 id=(*ptToSelected).first;
223 return (*ptToSelected).second.inValue();
234 std::list< std::pair<int, ExpData> >::iterator iter;
236 if((*iter).first==
id)
238 (*iter).second.markItAsInUse();
: Interface for management of storage of data formated dynamically in its TypeCode....
bool isLaunchable() const
static Any * NOT_USED_NOR_COMPUTED
static Any * USED_BUT_NOT_COMPUTED_YET
void setOutValue(Any *outValue)
ExpData(Any *inValue, unsigned char priority)
std::list< std::pair< int, ExpData > > _container
Any * getCurrentOutSample() const
void destroyCurrentCase()
Any * getOutSample(int id)
void pushInSample(int id, Any *inSample, unsigned char priority=0)
Push a sample. WARNING inSample ownership is released to current Pool instance (this) !
std::list< std::pair< int, ExpData > >::iterator _currentCase
static const char MESSAGEFORUNXSTNGID[]
Any * getCurrentInSample() const
void setCurrentId(int id)
void putOutSampleAt(int id, Any *outValue)
void markIdAsInUse(int id)
Any * getNextSampleWithHighestPriority(int &id, unsigned char &priority) const