IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AllocateInitializer.h
1 // AllocateInitializer.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKBASEPROCESSING_ALLOCATEINITIALIZER_H__
16 #define __IPSDKBASEPROCESSING_ALLOCATEINITIALIZER_H__
17 
18 #include <IPSDKBaseProcessing/OutputInitializer/BaseOutputInitializer.h>
21 #include <boost/make_shared.hpp>
22 
23 namespace ipsdk {
24 namespace processor {
25 
28 
29 template <typename OutputAttributeType>
31 {
32 // predefined public type
33 public:
35  static const eOutputInitializerType::domain g_outputInitializerType = eOutputInitializerType::eOIT_Allocate;
36 
37 public:
43 
44 // methods
45 public:
48  {
50  }
51 
57  void init(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute)
58  {
59  // call of base class initialization method
60  this->initBase(pOutputAttribute);
61  }
62 
63 protected:
67  {
68  // retrieve attribute informations
69  typedef typename OutputAttributeType::ValueType ValueType;
70  typedef typename OutputAttributeType::StorageType StorageType;
71 
72  // create a new value
73  StorageType pValue = boost::make_shared<ValueType>();
74 
75  // initialize associated attribute
76  OutputAttributeType& attributeOut = static_cast<OutputAttributeType&>(this->getOutputAttribute());
77  attributeOut.init(pValue);
78 
79  return true;
80  }
81 
83  std::string createInitializerFormalString() const
84  {
85  // retrieve associated attribute
86  const OutputAttributeType& attributeOut = static_cast<const OutputAttributeType&>(this->getOutputAttribute());
87 
88  // format output message
91  attributeOut.getObjectName();
92 
93  return logMsgFormater.string();
94  }
95 
98  {
99  // retrieve associated attribute
100  const OutputAttributeType& attributeOut = static_cast<const OutputAttributeType&>(this->getOutputAttribute());
101 
102  // format output message
105  attributeOut.getObjectName();
106 
107  return logMsgFormater.string();
108  }
109 
110 // attributes
111 protected:
112 
113 };
114 
117 
118 } // end of namespace processor
119 } // end of namespace ipsdk
120 
121 #endif // __IPSDKBASEPROCESSING_ALLOCATEINITIALIZER_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Output initializer allocating an un initialized data.
Definition: AllocateInitializer.h:30
BoolResult initAttribute()
initialize ouput attribute
Definition: AllocateInitializer.h:66
void init(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute)
initialize object
Definition: AllocateInitializer.h:57
std::string string()
recovery of final string
Output initializer allocating an un initialized data.
Definition: OutputInitializerTypes.h:39
Initialize output attribute s[s] by a simple allocation (un initialized data)
Definition: OutputInitializerLogMessages.h:43
Log messages description.
Logger api for library IPSDKBaseProcessing.
IPSDKBASEPROCESSING_API const LogMessageManager & getIPSDKBaseProcessingLogMessageManager()
Recovery of message manager associated to library.
processor::eOutputInitializerType getOutputInitializerType() const
retrieve initializer type
Definition: AllocateInitializer.h:47
Class alowing to easily format log message and handle id conversions.
Definition: LogMessageFormater.h:37
eOutputInitializerType
Enumerate describing output initializer type.
Definition: OutputInitializerTypes.h:37
void initBase(const AttributeWeakPtr &pOutputAttribute)
base class initialization method
Base class for output initializer.
Definition: BaseOutputInitializer.h:36
std::string createInitializerEvaluatedString() const
retrieve initializer evaluation string
Definition: AllocateInitializer.h:97
std::string createInitializerFormalString() const
retrieve string expliciting initializer content
Definition: AllocateInitializer.h:83
const BaseAttribute & getOutputAttribute() const
retrieve output attribute to be initialized
Initialize output attribute s by a simple allocation (un initialized data)
Definition: OutputInitializerLogMessages.h:41
static const eOutputInitializerType::domain g_outputInitializerType
output initializer type
Definition: AllocateInitializer.h:35