00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if !defined(__ONIXS_REPEATINGGROUP_H__)
00021 #define __ONIXS_REPEATINGGROUP_H__
00022
00023 #include <string>
00024 #include <iosfwd>
00025
00026 #include "OnixS/FIX/ABI.h"
00027 #include "OnixS/FIX/EngineException.h"
00028
00029 namespace OnixS
00030 {
00031 namespace FIX
00032 {
00033
00034 ONIXS_FIXENGINE_API_DECL(class, Message);
00035
00037 class ONIXS_FIXENGINE_API Group
00038 {
00039 public:
00041 size_t numberOfInstances();
00042
00049 bool contain(int tag, int index) const;
00050
00055 const std::string& get(int tag, int index);
00056
00064 int getInteger(int tag, int index) const;
00065
00072 int getInt32(int tag, int index) const;
00073
00080 unsigned int getUInt32(int tag, int index) const;
00081
00088 long long getInt64(int tag, int index) const;
00089
00096 unsigned long long getUInt64(int tag, int index) const;
00097
00104 double getDouble(int tag, int index) const;
00105
00112 Group* getGroup(int numberOfInstancesTag, int index);
00113
00120 bool hasFlag(int tag, int index) const;
00121
00129 bool set(int tag, int index, char value);
00130
00138 bool set(int tag, int index, const std::string& value);
00139
00147 bool set(int tag, int index, const char* value);
00148
00156 bool set(int tag, int index, int value);
00157
00165 bool set(int tag, int index, unsigned int value);
00166
00174 bool set(int tag, int index, long long value);
00175
00183 bool set(int tag, int index, unsigned long long value);
00184
00192 bool set(int tag, int index, double value);
00193
00202 bool set(int tag, int index, double value, size_t precision);
00203
00211 Group* setGroup(int numberOfInstancesTag, int index, int numberOfIntances);
00212
00220 bool setFlag(int tag, int index, bool value);
00221
00226 bool remove(int tag, int index);
00227
00229 void release();
00230
00231 private:
00233 ~Group();
00234
00235 Group(void* native, const Message* msg);
00236
00237 friend class Message;
00238
00239 const Message* msg_;
00240
00241 struct Impl;
00242 Impl* impl_;
00243 };
00244 }
00245 }
00246
00247 #endif // __ONIXS_REPEATINGGROUP_H__