McJSON.hpp 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. // CodeGear C++Builder
  2. // Copyright (c) 1995, 2009 by Embarcadero Technologies, Inc.
  3. // All rights reserved
  4. // (DO NOT EDIT: machine generated header) 'Mcjson.pas' rev: 21.00
  5. #ifndef McjsonHPP
  6. #define McjsonHPP
  7. #pragma delphiheader begin
  8. #pragma option push
  9. #pragma option -w- // All warnings off
  10. #pragma option -Vx // Zero-length empty class member functions
  11. #pragma pack(push,8)
  12. #include <System.hpp> // Pascal unit
  13. #include <Sysinit.hpp> // Pascal unit
  14. #include <Classes.hpp> // Pascal unit
  15. #include <Sysutils.hpp> // Pascal unit
  16. //-- user supplied -----------------------------------------------------------
  17. namespace Mcjson
  18. {
  19. //-- type declarations -------------------------------------------------------
  20. class DELPHICLASS EMcJsonException;
  21. class PASCALIMPLEMENTATION EMcJsonException : public Sysutils::Exception
  22. {
  23. typedef Sysutils::Exception inherited;
  24. public:
  25. /* Exception.Create */ inline __fastcall EMcJsonException(const System::UnicodeString Msg) : Sysutils::Exception(Msg) { }
  26. /* Exception.CreateFmt */ inline __fastcall EMcJsonException(const System::UnicodeString Msg, System::TVarRec const *Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  27. /* Exception.CreateRes */ inline __fastcall EMcJsonException(int Ident)/* overload */ : Sysutils::Exception(Ident) { }
  28. /* Exception.CreateResFmt */ inline __fastcall EMcJsonException(int Ident, System::TVarRec const *Args, const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
  29. /* Exception.CreateHelp */ inline __fastcall EMcJsonException(const System::UnicodeString Msg, int AHelpContext) : Sysutils::Exception(Msg, AHelpContext) { }
  30. /* Exception.CreateFmtHelp */ inline __fastcall EMcJsonException(const System::UnicodeString Msg, System::TVarRec const *Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext) { }
  31. /* Exception.CreateResHelp */ inline __fastcall EMcJsonException(int Ident, int AHelpContext)/* overload */ : Sysutils::Exception(Ident, AHelpContext) { }
  32. /* Exception.CreateResFmtHelp */ inline __fastcall EMcJsonException(System::PResStringRec ResStringRec, System::TVarRec const *Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(ResStringRec, Args, Args_Size, AHelpContext) { }
  33. /* Exception.Destroy */ inline __fastcall virtual ~EMcJsonException(void) { }
  34. };
  35. #pragma option push -b-
  36. enum TJItemType { jitUnset, jitValue, jitObject, jitArray };
  37. #pragma option pop
  38. #pragma option push -b-
  39. enum TJValueType { jvtString, jvtNumber, jvtBoolean, jvtNull };
  40. #pragma option pop
  41. class DELPHICLASS TMcJsonItem;
  42. class DELPHICLASS TMcJsonItemEnumerator;
  43. class PASCALIMPLEMENTATION TMcJsonItem : public System::TObject
  44. {
  45. typedef System::TObject inherited;
  46. public:
  47. TMcJsonItem* operator[](const System::UnicodeString aKey) { return Values[aKey]; }
  48. private:
  49. TJItemType fType;
  50. System::UnicodeString fKey;
  51. System::UnicodeString fValue;
  52. TJValueType fValType;
  53. Classes::TList* fChild;
  54. bool fSpeedUp;
  55. int __fastcall fGetCount(void);
  56. System::UnicodeString __fastcall fGetKey(int aIdx);
  57. TJItemType __fastcall fGetType(void);
  58. TMcJsonItem* __fastcall fGetItemByKey(const System::UnicodeString aKey);
  59. TMcJsonItem* __fastcall fGetItemByIdx(int aIdx);
  60. bool __fastcall fHasChild(void);
  61. bool __fastcall fIsNull(void);
  62. System::UnicodeString __fastcall fGetAsJSON(void);
  63. TMcJsonItem* __fastcall fGetAsObject(void);
  64. TMcJsonItem* __fastcall fGetAsArray(void);
  65. int __fastcall fGetAsInteger(void);
  66. double __fastcall fGetAsDouble(void);
  67. System::UnicodeString __fastcall fGetAsString(void);
  68. bool __fastcall fGetAsBoolean(void);
  69. System::UnicodeString __fastcall fGetAsNull(void);
  70. void __fastcall fSetType(TJItemType aType);
  71. void __fastcall fSetAsJSON(System::UnicodeString aValue);
  72. void __fastcall fSetAsObject(TMcJsonItem* aValue);
  73. void __fastcall fSetAsArray(TMcJsonItem* aValue);
  74. void __fastcall fSetAsInteger(int aValue);
  75. void __fastcall fSetAsDouble(double aValue);
  76. void __fastcall fSetAsString(System::UnicodeString aValue);
  77. void __fastcall fSetAsBoolean(bool aValue);
  78. void __fastcall fSetAsNull(System::UnicodeString aValue);
  79. int __fastcall parse(const System::UnicodeString aCode, int aPos, int aLen);
  80. int __fastcall readString(const System::UnicodeString aCode, /* out */ System::UnicodeString &aStr, int aPos, int aLen);
  81. int __fastcall readChar(const System::UnicodeString aCode, System::WideChar aChar, int aPos, int aLen);
  82. int __fastcall readKeyword(const System::UnicodeString aCode, const System::UnicodeString aKeyword, int aPos, int aLen);
  83. int __fastcall readValue(const System::UnicodeString aCode, int aPos, int aLen);
  84. int __fastcall readObject(const System::UnicodeString aCode, int aPos, int aLen);
  85. int __fastcall readArray(const System::UnicodeString aCode, int aPos, int aLen);
  86. int __fastcall readNumber(const System::UnicodeString aCode, int aPos, int aLen);
  87. int __fastcall readBoolean(const System::UnicodeString aCode, int aPos, int aLen);
  88. int __fastcall readNull(const System::UnicodeString aCode, int aPos, int aLen);
  89. System::UnicodeString __fastcall sFormat(bool aHuman);
  90. System::UnicodeString __fastcall sFormatItem(Classes::TStringStream* aStrS, const System::UnicodeString aIn, const System::UnicodeString aNL, const System::UnicodeString aSp);
  91. bool __fastcall isIndexValid(int aIdx);
  92. public:
  93. __property int Count = {read=fGetCount, nodefault};
  94. __property System::UnicodeString Key = {read=fKey};
  95. __property System::UnicodeString Value = {read=fValue};
  96. __property TJItemType ItemType = {read=fGetType, write=fSetType, nodefault};
  97. __property System::UnicodeString Keys[int aIdx] = {read=fGetKey};
  98. __property TMcJsonItem* Items[int aIdx] = {read=fGetItemByIdx};
  99. __property TMcJsonItem* Values[const System::UnicodeString aKey] = {read=fGetItemByKey/*, default*/};
  100. __property bool HasChild = {read=fHasChild, nodefault};
  101. __property bool IsNull = {read=fIsNull, nodefault};
  102. __property bool SpeedUp = {read=fSpeedUp, write=fSpeedUp, nodefault};
  103. __property System::UnicodeString AsJSON = {read=fGetAsJSON, write=fSetAsJSON};
  104. __property TMcJsonItem* AsObject = {read=fGetAsObject, write=fSetAsObject};
  105. __property TMcJsonItem* AsArray = {read=fGetAsArray, write=fSetAsArray};
  106. __property int AsInteger = {read=fGetAsInteger, write=fSetAsInteger, nodefault};
  107. __property double AsNumber = {read=fGetAsDouble, write=fSetAsDouble};
  108. __property System::UnicodeString AsString = {read=fGetAsString, write=fSetAsString};
  109. __property bool AsBoolean = {read=fGetAsBoolean, write=fSetAsBoolean, nodefault};
  110. __property System::UnicodeString AsNull = {read=fGetAsNull, write=fSetAsNull};
  111. __fastcall TMcJsonItem(void)/* overload */;
  112. __fastcall TMcJsonItem(TJItemType aJItemType)/* overload */;
  113. __fastcall TMcJsonItem(const TMcJsonItem* aItem)/* overload */;
  114. __fastcall TMcJsonItem(const System::UnicodeString aCode)/* overload */;
  115. __fastcall virtual ~TMcJsonItem(void);
  116. void __fastcall Clear(void);
  117. int __fastcall IndexOf(const System::UnicodeString aKey)/* overload */;
  118. TMcJsonItem* __fastcall Path(const System::UnicodeString aPath)/* overload */;
  119. TMcJsonItem* __fastcall Add(const System::UnicodeString aKey = L"")/* overload */;
  120. TMcJsonItem* __fastcall Add(const System::UnicodeString aKey, TJItemType aItemType)/* overload */;
  121. TMcJsonItem* __fastcall Add(TJItemType aItemType)/* overload */;
  122. TMcJsonItem* __fastcall Add(const TMcJsonItem* aItem)/* overload */;
  123. TMcJsonItem* __fastcall Copy(const TMcJsonItem* aItem)/* overload */;
  124. TMcJsonItem* __fastcall Clone(void)/* overload */;
  125. TMcJsonItem* __fastcall Insert(const System::UnicodeString aKey, int aIdx)/* overload */;
  126. TMcJsonItem* __fastcall Insert(const TMcJsonItem* aItem, int aIdx)/* overload */;
  127. bool __fastcall Delete(int aIdx)/* overload */;
  128. bool __fastcall Delete(const System::UnicodeString aKey)/* overload */;
  129. bool __fastcall HasKey(const System::UnicodeString aKey);
  130. bool __fastcall IsEqual(const TMcJsonItem* aItem);
  131. bool __fastcall Check(const System::UnicodeString aStr, bool aSpeedUp = false);
  132. int __fastcall CountItems(void);
  133. TMcJsonItem* __fastcall At(int aIdx, const System::UnicodeString aKey = L"")/* overload */;
  134. TMcJsonItem* __fastcall At(const System::UnicodeString aKey, int aIdx = 0xffffffff)/* overload */;
  135. HIDESBASE System::UnicodeString __fastcall ToString(void)/* overload */;
  136. HIDESBASE System::UnicodeString __fastcall ToString(bool aHuman = false)/* overload */;
  137. System::UnicodeString __fastcall Minify(const System::UnicodeString aCode);
  138. void __fastcall LoadFromStream(Classes::TStream* Stream, bool aUTF8 = true);
  139. void __fastcall SaveToStream(Classes::TStream* Stream, bool aHuman = true);
  140. void __fastcall LoadFromFile(const System::UnicodeString aFileName, bool aUTF8 = true);
  141. void __fastcall SaveToFile(const System::UnicodeString aFileName, bool aHuman = true);
  142. TMcJsonItemEnumerator* __fastcall GetEnumerator(void);
  143. System::UnicodeString __fastcall GetTypeStr(void);
  144. System::UnicodeString __fastcall GetValueStr(void);
  145. System::UnicodeString __fastcall Qot(const System::UnicodeString aMsg);
  146. System::UnicodeString __fastcall QotKey(const System::UnicodeString aKey);
  147. void __fastcall Error(const System::UnicodeString Msg, const System::UnicodeString S1 = L"", const System::UnicodeString S2 = L"", const System::UnicodeString S3 = L"");
  148. };
  149. class PASCALIMPLEMENTATION TMcJsonItemEnumerator : public System::TObject
  150. {
  151. typedef System::TObject inherited;
  152. private:
  153. TMcJsonItem* fItem;
  154. int fIndex;
  155. public:
  156. __fastcall TMcJsonItemEnumerator(TMcJsonItem* aItem);
  157. TMcJsonItem* __fastcall GetCurrent(void);
  158. bool __fastcall MoveNext(void);
  159. __property TMcJsonItem* Current = {read=GetCurrent};
  160. public:
  161. /* TObject.Destroy */ inline __fastcall virtual ~TMcJsonItemEnumerator(void) { }
  162. };
  163. //-- var, const, procedure ---------------------------------------------------
  164. extern PACKAGE System::UnicodeString __fastcall GetItemTypeStr(TJItemType aType);
  165. extern PACKAGE System::UnicodeString __fastcall GetValueTypeStr(TJValueType aType);
  166. extern PACKAGE System::UnicodeString __fastcall UnEscapeUnicode(const System::UnicodeString aStr);
  167. extern PACKAGE bool __fastcall CheckIsUtf8(const System::AnsiString aStr, /* out */ System::AnsiString &aAux);
  168. } /* namespace Mcjson */
  169. using namespace Mcjson;
  170. #pragma pack(pop)
  171. #pragma option pop
  172. #pragma delphiheader end.
  173. //-- end unit ----------------------------------------------------------------
  174. #endif // McjsonHPP