IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BasePlanIndexedAttribute.h
1 // BasePlanIndexedAttribute.h:
3 // ---------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEPLANINDEXEDATTRIBUTE_H__
16 #define __IPSDKIMAGEPROCESSING_BASEPLANINDEXEDATTRIBUTE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BasePlanIndexedAttribute::_pPlanIndexedColl' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BasePlanIndexedAttribute'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImageProcessing/Attribute/BaseImageProcessingAttribute.h>
26 
27 namespace ipsdk {
28 namespace imaproc {
29 
32 
34 {
35  // declare serial class
37 
38 // predefined public types
39 public:
41  static const eImageProcessingAttributeType::domain g_imageProcessingAttributeType = eImageProcessingAttributeType::eIPAT_PlanIndexed;
42 
43 protected:
46 
47 public:
49  virtual ~BasePlanIndexedAttribute() = 0;
50 
51 // methods
52 public:
54  eImageProcessingAttributeType getImageProcessingAttributeType() const;
55 
59  const BasePlanIndexedColl& getBaseColl() const;
60 
64  ipUInt64 getNbPlans() const;
65 
70  ipUInt64 getMaxSizeZ() const;
71  ipUInt64 getMaxSizeC() const;
72  ipUInt64 getMaxSizeT() const;
74 
79  bool exists(const PlanIndex& planIndex) const;
80  bool exists(const ipUInt64 zPlanIdx,
81  const ipUInt64 cPlanIdx,
82  const ipUInt64 tPlanIdx) const;
84 
89  bool isComplete() const;
90 
94  bool isComplete(const ipUInt64 sizeZ,
95  const ipUInt64 sizeC,
96  const ipUInt64 sizeT) const;
97 
98 protected:
102  void initBase(const PlanIndexedCollPtr& pPlanIndexedColl);
103 
108  PlanIndexedCollConstPtr accessStorage() const;
109  const PlanIndexedCollPtr& accessStorage();
111 
113  void clearDerived();
114 
115 // attributes
116 protected:
119 };
120 
123 
126 {
128 }
129 
132 
133 } // end of namespace imaproc
134 } // end of namespace ipsdk
135 
136 #pragma warning (pop)
137 
138 #endif // __IPSDKIMAGEPROCESSING_BASEPLANINDEXEDATTRIBUTE_H__
Predefined types for plan indexed attributes management.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< BasePlanIndexedColl > PlanIndexedCollPtr
shared pointer to plan indexed collection
Definition: PlanIndexedCollTypes.h:25
Base class for image processing attributes.
Definition: BaseImageProcessingAttribute.h:28
eImageProcessingAttributeType getImageProcessingAttributeType() const
retrieve image attribute type
Definition: BasePlanIndexedAttribute.h:125
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Attribute associated to plan indexed elements.
Definition: ImageProcessingAttributeTypes.h:57
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
static const eImageProcessingAttributeType::domain g_imageProcessingAttributeType
image processing attribute type
Definition: BasePlanIndexedAttribute.h:41
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Base class for plan indexed attributes.
Definition: BasePlanIndexedAttribute.h:33
eImageProcessingAttributeType
Enumerate describing image attributes type.
Definition: ImageProcessingAttributeTypes.h:33
Predefined types for plan indexed collection management.
Class used to store image plan index.
Definition: PlanIndex.h:26
Collection of serializable objects indexed by plan.
Definition: BasePlanIndexedColl.h:34
PlanIndexedCollPtr _pPlanIndexedColl
collection of plan indexed elements associated to attribute
Definition: BasePlanIndexedAttribute.h:118
boost::shared_ptr< const BasePlanIndexedColl > PlanIndexedCollConstPtr
shared pointer to const plan indexed collection
Definition: PlanIndexedCollTypes.h:34
IPSDKIMAGEPROCESSING_API processor::RulePtr isComplete(const ImageAttributeConstWeakPtr &pAttribute)
functions allowing to check where an image is a complete image (not a sub image)