Safir SDK Core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FullResponse.h
Go to the documentation of this file.
1 #ifndef SAFIR_UTILITIES_FOREACH_FULLRESPONSE_H_INCLUDED
2 #define SAFIR_UTILITIES_FOREACH_FULLRESPONSE_H_INCLUDED
3 
8 
9 #include <Safir/Dob/Response.h>
12 
13 #ifdef _MSC_VER
14 #ifdef DOTS_GENERATED_CPP_EXPORTS
15 #define GENERATED_API __declspec(dllexport)
16 #else
17 #define GENERATED_API __declspec(dllimport)
18 #ifdef _DEBUG
19 #pragma comment( lib, "dots_generated-Safir-cppd.lib" )
20 #else
21 #pragma comment( lib, "dots_generated-Safir-cpp.lib" )
22 #endif
23 #endif
24 #endif
25 #ifdef __GNUC__
26 #define GENERATED_API
27 #endif
28 
32 namespace Safir
33 {
37 namespace Utilities
38 {
42 namespace ForEach
43 {
44 
45  class FullResponse; //forward declaration
46  typedef boost::shared_ptr<FullResponse> FullResponsePtr;
47  typedef boost::shared_ptr<const FullResponse> FullResponseConstPtr;
48 
51 
57  {
58  public:
59  //Constructors and Create routines
60  FullResponse();
61  virtual Safir::Dob::Typesystem::ObjectPtr Clone() const;
62  static FullResponsePtr Create();
63 
64  //Response
65  static Safir::Dob::Typesystem::MemberIndex ResponseMemberIndex();
66  static Safir::Dob::Typesystem::ArrayIndex ResponseArraySize();
70  const Safir::Dob::ResponseContainerArray & Response() const;
72 
73 
75  static const Safir::Dob::Typesystem::TypeId ClassTypeId = 8333726638173011465LL;
76 
77  //Type id for FullResponse
78  virtual Safir::Dob::Typesystem::TypeId GetTypeId() const {return ClassTypeId;}
79 
80  //Check if anything in the object has change flags set
81  virtual bool IsChanged();
82 
83  //Recursively set all change flags in the object
84  virtual void SetChanged(const bool changed);
85 
86 
87  //Reflection part (Don't use unless you really know what you're doing!!)
91  const Safir::Dob::Typesystem::ArrayIndex index) const;
92 
93  virtual Safir::Dob::Typesystem::Int32 CalculateBlobSize() const;
94  virtual void WriteToBlob(char * blob, char * & beginningOfUnused) const;
95  explicit FullResponse(char const * const blob);
96 
97  private:
98 
99 #ifdef _MSC_VER
100 #pragma warning (push)
101 #pragma warning (disable : 4251)
102 #endif
103 
104  Safir::Dob::ResponseContainerArray m_ResponseMember;
105 
106 #ifdef _MSC_VER
107 #pragma warning (pop)
108 #endif
109  };
110 
111 } // ForEach
112 } // Utilities
113 } // Safir
114 
115 #endif
116 
Brief response for a ForEach service request.
Definition: BriefResponse.h:55
Full response for a ForEach service request.
Definition: FullResponse.h:56
Safir::Dob::Typesystem::ObjectContainerImpl< FullResponse > FullResponseContainer
Definition: FullResponse.h:49
boost::shared_ptr< FullResponse > FullResponsePtr
Definition: FullResponse.h:45
Safir::Dob::Typesystem::ArrayContainer< FullResponseContainer > FullResponseContainerArray
Definition: FullResponse.h:50
DotsC_TypeId TypeId
A unique type identifier.
Definition: Dob/Typesystem/Defs.h:221
Template class for all containers of automatically generated DOB objects.
Definition: ObjectContainer.h:185
virtual Safir::Dob::Typesystem::TypeId GetTypeId() const
Get the type id of this object.
Definition: FullResponse.h:78
boost::shared_ptr< Object > ObjectPtr
A smart pointer to an Object.
Definition: Object.h:41
DotsC_ArrayIndex ArrayIndex
Index into an array.
Definition: Dob/Typesystem/Defs.h:249
Base class for all Containers.
Definition: ContainerBase.h:41
STL container for arrays of DOB-containers.
Definition: ArrayContainer.h:58
DotsC_Int32 Int32
32 bit integer type.
Definition: Dob/Typesystem/Defs.h:69
DotsC_MemberIndex MemberIndex
The index of a member in an object.
Definition: Dob/Typesystem/Defs.h:240
static bool IsChanged(const ContainerBase &container)
Check if a container is changed.
Definition: ContainerBase.h:134
boost::shared_ptr< const FullResponse > FullResponseConstPtr
Definition: FullResponse.h:47