00001 // <copyright> 00002 // $Revision: 1.6 $ 00003 // 00004 // (c) B2BITS 2006. B2BITS is an abbreviation of 00005 // Business to Business Information Technology Services corporation. 00006 // "Licensor" shall mean B2BITS. 00007 // 00008 // This software is for the use of the paying client of B2BITS (which may be 00009 // a corporation, business area, business unit or single use subject to 00010 // licence terms) to whom it was delivered (the "Licensee")and no other party, 00011 // and any use beyond this business area is contrary to the terms of the licence grant. 00012 // 00013 // The Licensee acknowledges and agrees that the Software and Documentation 00014 // (the "Confidential Information") is confidential and proprietary to 00015 // the Licensor and the Licensee hereby agrees to use the Confidential 00016 // Information only as permitted by the full licence agreement betweeen 00017 // the two parties, to maintain the confidentiality of the Confidential 00018 // Information and not to disclose the confidential information, or any part 00019 // thereof, to any other person, firm or corporation. The Licensee 00020 // acknowledges that disclosure of the Confidential Information may give rise 00021 // to an irreparable injury to the Licensor in-adequately compensable in 00022 // damages. Accordingly the Licensor may seek (without the posting of any 00023 // bond or other security) injunctive relief against the breach of the forgoing 00024 // undertaking of confidentiality and non-disclosure, in addition to any other 00025 // legal remedies which may be available, and the licensee consents to the 00026 // obtaining of such injunctive relief. All of the undertakings and 00027 // obligations relating to confidentiality and non-disclosure, whether 00028 // contained in this section or elsewhere in this agreement, shall survive 00029 // the termination or expiration of this agreement for a period of five (5) 00030 // years. 00031 // 00032 // The Licensor agrees that any information or data received from the Licensee 00033 // in connection with the performance of the support agreement relating to this 00034 // software shall be confidential, will be used only in connection with the 00035 // performance of the Licensor's obligations hereunder, and will not be 00036 // disclosed to third parties, including contractors, without the Licensor's 00037 // express permission in writing. 00038 // 00039 // Information regarding the software may be provided to the Licensee's outside 00040 // auditors and attorneys only to the extent required by their respective 00041 // functions. 00042 // </copyright> 00043 // 00044 00047 00048 #if !defined(__B2BITS_FDTypeInfo_h__) 00049 #define __B2BITS_FDTypeInfo_h__ 00050 00051 #include <string> 00052 #include <list> 00053 #include "B2BITS_Fixopaedia_Types.h" 00054 00056 namespace FixopaediaImpl 00057 { 00059 struct FDTypeInfoImpl; 00060 } 00061 00063 namespace Fixopaedia 00064 { 00067 struct FDTypeInfo 00068 { 00069 friend class FixDictionaryFactory; 00070 protected: 00073 FDTypeInfo(); 00074 ~FDTypeInfo(); 00075 public: 00076 00077 int getDataLen() const; 00078 00080 FixDataType getType() const; 00081 00083 std::string getSubType() const; 00084 00086 bool validate(const char* fieldValue, 00087 size_t length, 00088 std::string* errorDescription = NULL) const; 00089 00091 bool isEnumerable() const; 00092 00095 bool getEnumeration(EnumValues* eValues) const; 00096 00098 void setEnumeration(EnumValues* eValues); 00099 00101 std::string getEnumDescription(const std::string& eValue) const; 00102 00103 private: 00105 FixopaediaImpl::FDTypeInfoImpl* pImpl_; 00106 }; 00107 00109 //typedef std::list<FDTypeInfo*> FDTypeInfos; 00110 } 00111 #endif // __B2BITS_FDTypeInfo_h__
1.5.6