15 #ifndef __IPSDKBASEDATA_PLANINDEXEDCOLL_H__ 16 #define __IPSDKBASEDATA_PLANINDEXEDCOLL_H__ 18 #include <IPSDKBaseData/PlanIndex/BasePlanIndexedColl.h> 19 #include <IPSDKSerialization/Engine/BaseObjectWithSkeleton.h> 20 #include <boost/type_traits/is_base_of.hpp> 36 typedef boost::shared_ptr<T> StorageType;
39 typedef boost::shared_ptr<const T> ConstStorageType;
63 const StorageType& pObject);
73 const StorageType& pObject);
77 void assign(
const T&
object,
148 template <
typename T>
149 inline const std::string&
152 return ValueType::getTypeName();
155 template <
typename T>
159 return boost::is_base_of<ipsdk::BaseObjectWithSkeleton, ValueType>::value;
162 template <
typename T>
165 const StorageType& pObject)
170 template <
typename T>
175 const StorageType& pObject)
177 insert(
PlanIndex(zPlanIdx, cPlanIdx, tPlanIdx), pObject);
180 template <
typename T>
190 template <
typename T>
191 inline typename PlanIndexedColl<T>::ConstStorageType
197 template <
typename T>
198 inline typename PlanIndexedColl<T>::ConstStorageType
203 return getStorage(
PlanIndex(zPlanIdx, cPlanIdx, tPlanIdx));
206 template <
typename T>
207 inline typename PlanIndexedColl<T>::StorageType
213 template <
typename T>
214 inline typename PlanIndexedColl<T>::StorageType
219 return getStorage(
PlanIndex(zPlanIdx, cPlanIdx, tPlanIdx));
222 template <
typename T>
223 inline const typename PlanIndexedColl<T>::ValueType&
226 return static_cast<const ValueType&
>(*getStorage(planIndex));
229 template <
typename T>
230 inline const typename PlanIndexedColl<T>::ValueType&
235 return getValue(
PlanIndex(zPlanIdx, cPlanIdx, tPlanIdx));
238 template <
typename T>
239 inline const typename PlanIndexedColl<T>::ValueType&
245 template <
typename T>
246 inline typename PlanIndexedColl<T>::ValueType&
249 return static_cast<ValueType&
>(*getStorage(planIndex));
252 template <
typename T>
253 inline typename PlanIndexedColl<T>::ValueType&
258 return getValue(
PlanIndex(zPlanIdx, cPlanIdx, tPlanIdx));
261 template <
typename T>
262 inline typename PlanIndexedColl<T>::ValueType&
273 #endif // __IPSDKBASEDATA_PLANINDEXEDCOLL_H__ std::map< PlanIndex, SerializationObjectPtr > PlanIndexedColl
collection of plan indexed serializable object shared pointers
Definition: BasePlanIndexedColl.h:42
SerializationObjectConstPtr getStorage(const PlanIndex &planIndex) const
retrieve an element associated to a given plan index
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
const ValueType & getValue(const ipsdk::PlanIndex &planIndex) const
retrieve an element associated to a given plan index
Definition: PlanIndexedColl.h:224
bool haveSkeleton() const
Definition: PlanIndexedColl.h:157
ConstStorageType getStorage(const ipsdk::PlanIndex &planIndex) const
retrieve an element associated to a given plan index
Definition: PlanIndexedColl.h:192
void assign(const T &object, const ipUInt64 sizeZ, const ipUInt64 sizeC, const ipUInt64 sizeT)
assign a given value to all data of collection
Definition: PlanIndexedColl.h:182
Class used to store image plan index.
Definition: PlanIndex.h:26
void insert(const ipsdk::PlanIndex &planIndex, const StorageType &pObject)
Definition: PlanIndexedColl.h:164
const PlanIndex & getPlanIndex(const ipUInt64 planOffset) const
retrieve plan index associated to a given plan offset
const std::string & getElementsClassName() const
retrieve class name associated to concrete elements into collection
Definition: PlanIndexedColl.h:150
Collection of serializable objects indexed by plan.
Definition: BasePlanIndexedColl.h:34
void insert(const PlanIndex &planIndex, const SerializationObjectPtr &pObject)
insert a new element for a given plan index
void assign(const BaseSerializationObject &object, const ipUInt64 sizeZ, const ipUInt64 sizeC, const ipUInt64 sizeT)
assign a given value to all data of collection