OnixS C++ FIX Engine 2.79.1.0
C:/Users/Pasha/_Dev/fixforge-cpp/fix/cppEngine/include/OnixS/FIX/Group.h
00001 /*
00002 * Copyright 2005-2011 Onix Solutions Limited [OnixS]. All rights reserved. 
00003 * 
00004 * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law 
00005 * and international copyright treaties. 
00006 * 
00007 * Access to and use of the software is governed by the terms of the applicable ONIXS Software
00008 * Services Agreement (the Agreement) and Customer end user license agreements granting 
00009 * a non-assignable, non-transferable and non-exclusive license to use the software 
00010 * for it's own data processing purposes under the terms defined in the Agreement.
00011 * 
00012 * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part 
00013 * of this source code or associated reference material to any other location for further reproduction
00014 * or redistribution, and any amendments to this copyright notice, are expressly prohibited. 
00015 *
00016 * Any reproduction or redistribution for sale or hiring of the Software not in accordance with 
00017 * the terms of the Agreement is a violation of copyright law. 
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__