BsManagedSerializableFieldRTTI.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsScriptEnginePrerequisites.h"
  5. #include "Reflection/BsRTTIType.h"
  6. #include "Serialization/BsManagedSerializableField.h"
  7. #include "Error/BsException.h"
  8. namespace bs
  9. {
  10. /** @cond RTTI */
  11. /** @addtogroup RTTI-Impl-SEngine
  12. * @{
  13. */
  14. class BS_SCR_BE_EXPORT ManagedSerializableFieldKeyRTTI : public RTTIType<ManagedSerializableFieldKey, IReflectable, ManagedSerializableFieldKeyRTTI>
  15. {
  16. private:
  17. UINT16& getTypeId(ManagedSerializableFieldKey* obj) { return obj->mTypeId; }
  18. void setTypeId(ManagedSerializableFieldKey* obj, UINT16& val) { obj->mTypeId = val; }
  19. UINT16& getFieldId(ManagedSerializableFieldKey* obj) { return obj->mFieldId; }
  20. void setFieldId(ManagedSerializableFieldKey* obj, UINT16& val) { obj->mFieldId = val; }
  21. public:
  22. ManagedSerializableFieldKeyRTTI()
  23. {
  24. addPlainField("mTypeId", 0, &ManagedSerializableFieldKeyRTTI::getTypeId, &ManagedSerializableFieldKeyRTTI::setTypeId);
  25. addPlainField("mFieldId", 1, &ManagedSerializableFieldKeyRTTI::getFieldId, &ManagedSerializableFieldKeyRTTI::setFieldId);
  26. }
  27. const String& getRTTIName() override
  28. {
  29. static String name = "SerializableFieldKey";
  30. return name;
  31. }
  32. UINT32 getRTTIId() override
  33. {
  34. return TID_SerializableFieldKey;
  35. }
  36. SPtr<IReflectable> newRTTIObject() override
  37. {
  38. return bs_shared_ptr_new<ManagedSerializableFieldKey>();
  39. }
  40. };
  41. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataRTTI : public RTTIType<ManagedSerializableFieldData, IReflectable, ManagedSerializableFieldDataRTTI>
  42. {
  43. private:
  44. public:
  45. ManagedSerializableFieldDataRTTI()
  46. {
  47. }
  48. const String& getRTTIName() override
  49. {
  50. static String name = "SerializableFieldData";
  51. return name;
  52. }
  53. UINT32 getRTTIId() override
  54. {
  55. return TID_SerializableFieldData;
  56. }
  57. SPtr<IReflectable> newRTTIObject() override
  58. {
  59. BS_EXCEPT(InvalidStateException, "Cannot instantiate an abstract class.");
  60. return nullptr;
  61. }
  62. };
  63. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataEntryRTTI : public RTTIType<ManagedSerializableFieldDataEntry, IReflectable, ManagedSerializableFieldDataEntryRTTI>
  64. {
  65. private:
  66. SPtr<ManagedSerializableFieldKey> getKey(ManagedSerializableFieldDataEntry* obj) { return obj->mKey; }
  67. void setKey(ManagedSerializableFieldDataEntry* obj, SPtr<ManagedSerializableFieldKey> val) { obj->mKey = val; }
  68. SPtr<ManagedSerializableFieldData> getValue(ManagedSerializableFieldDataEntry* obj) { return obj->mValue; }
  69. void setValue(ManagedSerializableFieldDataEntry* obj, SPtr<ManagedSerializableFieldData> val) { obj->mValue = val; }
  70. public:
  71. ManagedSerializableFieldDataEntryRTTI()
  72. {
  73. addReflectablePtrField("mKey", 0, &ManagedSerializableFieldDataEntryRTTI::getKey, &ManagedSerializableFieldDataEntryRTTI::setKey);
  74. addReflectablePtrField("mValue", 1, &ManagedSerializableFieldDataEntryRTTI::getValue, &ManagedSerializableFieldDataEntryRTTI::setValue);
  75. }
  76. const String& getRTTIName() override
  77. {
  78. static String name = "SerializableFieldDataEntry";
  79. return name;
  80. }
  81. UINT32 getRTTIId() override
  82. {
  83. return TID_SerializableFieldDataEntry;
  84. }
  85. SPtr<IReflectable> newRTTIObject() override
  86. {
  87. return bs_shared_ptr_new<ManagedSerializableFieldDataEntry>();
  88. }
  89. };
  90. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataBoolRTTI : public RTTIType<ManagedSerializableFieldDataBool, ManagedSerializableFieldData, ManagedSerializableFieldDataBoolRTTI>
  91. {
  92. private:
  93. bool& getValue(ManagedSerializableFieldDataBool* obj) { return obj->value; }
  94. void setValue(ManagedSerializableFieldDataBool* obj, bool& val) { obj->value = val; }
  95. public:
  96. ManagedSerializableFieldDataBoolRTTI()
  97. {
  98. addPlainField("mValue", 0, &ManagedSerializableFieldDataBoolRTTI::getValue, &ManagedSerializableFieldDataBoolRTTI::setValue);
  99. }
  100. const String& getRTTIName() override
  101. {
  102. static String name = "SerializableFieldDataBool";
  103. return name;
  104. }
  105. UINT32 getRTTIId() override
  106. {
  107. return TID_SerializableFieldDataBool;
  108. }
  109. SPtr<IReflectable> newRTTIObject() override
  110. {
  111. return bs_shared_ptr_new<ManagedSerializableFieldDataBool>();
  112. }
  113. };
  114. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataCharRTTI : public RTTIType<ManagedSerializableFieldDataChar, ManagedSerializableFieldData, ManagedSerializableFieldDataCharRTTI>
  115. {
  116. private:
  117. wchar_t& getValue(ManagedSerializableFieldDataChar* obj) { return obj->value; }
  118. void setValue(ManagedSerializableFieldDataChar* obj, wchar_t& val) { obj->value = val; }
  119. public:
  120. ManagedSerializableFieldDataCharRTTI()
  121. {
  122. addPlainField("mValue", 0, &ManagedSerializableFieldDataCharRTTI::getValue, &ManagedSerializableFieldDataCharRTTI::setValue);
  123. }
  124. const String& getRTTIName() override
  125. {
  126. static String name = "SerializableFieldDataChar";
  127. return name;
  128. }
  129. UINT32 getRTTIId() override
  130. {
  131. return TID_SerializableFieldDataChar;
  132. }
  133. SPtr<IReflectable> newRTTIObject() override
  134. {
  135. return bs_shared_ptr_new<ManagedSerializableFieldDataBool>();
  136. }
  137. };
  138. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataI8RTTI : public RTTIType<ManagedSerializableFieldDataI8, ManagedSerializableFieldData, ManagedSerializableFieldDataI8RTTI>
  139. {
  140. private:
  141. INT8& getValue(ManagedSerializableFieldDataI8* obj) { return obj->value; }
  142. void setValue(ManagedSerializableFieldDataI8* obj, INT8& val) { obj->value = val; }
  143. public:
  144. ManagedSerializableFieldDataI8RTTI()
  145. {
  146. addPlainField("mValue", 0, &ManagedSerializableFieldDataI8RTTI::getValue, &ManagedSerializableFieldDataI8RTTI::setValue);
  147. }
  148. const String& getRTTIName() override
  149. {
  150. static String name = "SerializableFieldDataI8";
  151. return name;
  152. }
  153. UINT32 getRTTIId() override
  154. {
  155. return TID_SerializableFieldDataI8;
  156. }
  157. SPtr<IReflectable> newRTTIObject() override
  158. {
  159. return bs_shared_ptr_new<ManagedSerializableFieldDataI8>();
  160. }
  161. };
  162. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataU8RTTI : public RTTIType<ManagedSerializableFieldDataU8, ManagedSerializableFieldData, ManagedSerializableFieldDataU8RTTI>
  163. {
  164. private:
  165. UINT8& getValue(ManagedSerializableFieldDataU8* obj) { return obj->value; }
  166. void setValue(ManagedSerializableFieldDataU8* obj, UINT8& val) { obj->value = val; }
  167. public:
  168. ManagedSerializableFieldDataU8RTTI()
  169. {
  170. addPlainField("mValue", 0, &ManagedSerializableFieldDataU8RTTI::getValue, &ManagedSerializableFieldDataU8RTTI::setValue);
  171. }
  172. const String& getRTTIName() override
  173. {
  174. static String name = "SerializableFieldDataU8";
  175. return name;
  176. }
  177. UINT32 getRTTIId() override
  178. {
  179. return TID_SerializableFieldDataU8;
  180. }
  181. SPtr<IReflectable> newRTTIObject() override
  182. {
  183. return bs_shared_ptr_new<ManagedSerializableFieldDataU8>();
  184. }
  185. };
  186. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataI16RTTI : public RTTIType<ManagedSerializableFieldDataI16, ManagedSerializableFieldData, ManagedSerializableFieldDataI16RTTI>
  187. {
  188. private:
  189. INT16& getValue(ManagedSerializableFieldDataI16* obj) { return obj->value; }
  190. void setValue(ManagedSerializableFieldDataI16* obj, INT16& val) { obj->value = val; }
  191. public:
  192. ManagedSerializableFieldDataI16RTTI()
  193. {
  194. addPlainField("mValue", 0, &ManagedSerializableFieldDataI16RTTI::getValue, &ManagedSerializableFieldDataI16RTTI::setValue);
  195. }
  196. const String& getRTTIName() override
  197. {
  198. static String name = "SerializableFieldDataI16";
  199. return name;
  200. }
  201. UINT32 getRTTIId() override
  202. {
  203. return TID_SerializableFieldDataI16;
  204. }
  205. SPtr<IReflectable> newRTTIObject() override
  206. {
  207. return bs_shared_ptr_new<ManagedSerializableFieldDataI16>();
  208. }
  209. };
  210. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataU16RTTI : public RTTIType<ManagedSerializableFieldDataU16, ManagedSerializableFieldData, ManagedSerializableFieldDataU16RTTI>
  211. {
  212. private:
  213. UINT16& getValue(ManagedSerializableFieldDataU16* obj) { return obj->value; }
  214. void setValue(ManagedSerializableFieldDataU16* obj, UINT16& val) { obj->value = val; }
  215. public:
  216. ManagedSerializableFieldDataU16RTTI()
  217. {
  218. addPlainField("mValue", 0, &ManagedSerializableFieldDataU16RTTI::getValue, &ManagedSerializableFieldDataU16RTTI::setValue);
  219. }
  220. const String& getRTTIName() override
  221. {
  222. static String name = "SerializableFieldDataU16";
  223. return name;
  224. }
  225. UINT32 getRTTIId() override
  226. {
  227. return TID_SerializableFieldDataU16;
  228. }
  229. SPtr<IReflectable> newRTTIObject() override
  230. {
  231. return bs_shared_ptr_new<ManagedSerializableFieldDataU16>();
  232. }
  233. };
  234. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataI32RTTI : public RTTIType<ManagedSerializableFieldDataI32, ManagedSerializableFieldData, ManagedSerializableFieldDataI32RTTI>
  235. {
  236. private:
  237. INT32& getValue(ManagedSerializableFieldDataI32* obj) { return obj->value; }
  238. void setValue(ManagedSerializableFieldDataI32* obj, INT32& val) { obj->value = val; }
  239. public:
  240. ManagedSerializableFieldDataI32RTTI()
  241. {
  242. addPlainField("mValue", 0, &ManagedSerializableFieldDataI32RTTI::getValue, &ManagedSerializableFieldDataI32RTTI::setValue);
  243. }
  244. const String& getRTTIName() override
  245. {
  246. static String name = "SerializableFieldDataI32";
  247. return name;
  248. }
  249. UINT32 getRTTIId() override
  250. {
  251. return TID_SerializableFieldDataI32;
  252. }
  253. SPtr<IReflectable> newRTTIObject() override
  254. {
  255. return bs_shared_ptr_new<ManagedSerializableFieldDataI32>();
  256. }
  257. };
  258. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataU32RTTI : public RTTIType<ManagedSerializableFieldDataU32, ManagedSerializableFieldData, ManagedSerializableFieldDataU32RTTI>
  259. {
  260. private:
  261. UINT32& getValue(ManagedSerializableFieldDataU32* obj) { return obj->value; }
  262. void setValue(ManagedSerializableFieldDataU32* obj, UINT32& val) { obj->value = val; }
  263. public:
  264. ManagedSerializableFieldDataU32RTTI()
  265. {
  266. addPlainField("mValue", 0, &ManagedSerializableFieldDataU32RTTI::getValue, &ManagedSerializableFieldDataU32RTTI::setValue);
  267. }
  268. const String& getRTTIName() override
  269. {
  270. static String name = "SerializableFieldDataU32";
  271. return name;
  272. }
  273. UINT32 getRTTIId() override
  274. {
  275. return TID_SerializableFieldDataU32;
  276. }
  277. SPtr<IReflectable> newRTTIObject() override
  278. {
  279. return bs_shared_ptr_new<ManagedSerializableFieldDataU32>();
  280. }
  281. };
  282. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataI64RTTI : public RTTIType<ManagedSerializableFieldDataI64, ManagedSerializableFieldData, ManagedSerializableFieldDataI64RTTI>
  283. {
  284. private:
  285. INT64& getValue(ManagedSerializableFieldDataI64* obj) { return obj->value; }
  286. void setValue(ManagedSerializableFieldDataI64* obj, INT64& val) { obj->value = val; }
  287. public:
  288. ManagedSerializableFieldDataI64RTTI()
  289. {
  290. addPlainField("mValue", 0, &ManagedSerializableFieldDataI64RTTI::getValue, &ManagedSerializableFieldDataI64RTTI::setValue);
  291. }
  292. const String& getRTTIName() override
  293. {
  294. static String name = "SerializableFieldDataI64";
  295. return name;
  296. }
  297. UINT32 getRTTIId() override
  298. {
  299. return TID_SerializableFieldDataI64;
  300. }
  301. SPtr<IReflectable> newRTTIObject() override
  302. {
  303. return bs_shared_ptr_new<ManagedSerializableFieldDataI64>();
  304. }
  305. };
  306. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataU64RTTI : public RTTIType<ManagedSerializableFieldDataU64, ManagedSerializableFieldData, ManagedSerializableFieldDataU64RTTI>
  307. {
  308. private:
  309. UINT64& getValue(ManagedSerializableFieldDataU64* obj) { return obj->value; }
  310. void setValue(ManagedSerializableFieldDataU64* obj, UINT64& val) { obj->value = val; }
  311. public:
  312. ManagedSerializableFieldDataU64RTTI()
  313. {
  314. addPlainField("mValue", 0, &ManagedSerializableFieldDataU64RTTI::getValue, &ManagedSerializableFieldDataU64RTTI::setValue);
  315. }
  316. const String& getRTTIName() override
  317. {
  318. static String name = "SerializableFieldDataU64";
  319. return name;
  320. }
  321. UINT32 getRTTIId() override
  322. {
  323. return TID_SerializableFieldDataU64;
  324. }
  325. SPtr<IReflectable> newRTTIObject() override
  326. {
  327. return bs_shared_ptr_new<ManagedSerializableFieldDataU64>();
  328. }
  329. };
  330. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataFloatRTTI : public RTTIType<ManagedSerializableFieldDataFloat, ManagedSerializableFieldData, ManagedSerializableFieldDataFloatRTTI>
  331. {
  332. private:
  333. float& getValue(ManagedSerializableFieldDataFloat* obj) { return obj->value; }
  334. void setValue(ManagedSerializableFieldDataFloat* obj, float& val) { obj->value = val; }
  335. public:
  336. ManagedSerializableFieldDataFloatRTTI()
  337. {
  338. addPlainField("mValue", 0, &ManagedSerializableFieldDataFloatRTTI::getValue, &ManagedSerializableFieldDataFloatRTTI::setValue);
  339. }
  340. const String& getRTTIName() override
  341. {
  342. static String name = "SerializableFieldDataFloat";
  343. return name;
  344. }
  345. UINT32 getRTTIId() override
  346. {
  347. return TID_SerializableFieldDataFloat;
  348. }
  349. SPtr<IReflectable> newRTTIObject() override
  350. {
  351. return bs_shared_ptr_new<ManagedSerializableFieldDataFloat>();
  352. }
  353. };
  354. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataDoubleRTTI : public RTTIType<ManagedSerializableFieldDataDouble, ManagedSerializableFieldData, ManagedSerializableFieldDataDoubleRTTI>
  355. {
  356. private:
  357. double& getValue(ManagedSerializableFieldDataDouble* obj) { return obj->value; }
  358. void setValue(ManagedSerializableFieldDataDouble* obj, double& val) { obj->value = val; }
  359. public:
  360. ManagedSerializableFieldDataDoubleRTTI()
  361. {
  362. addPlainField("mValue", 0, &ManagedSerializableFieldDataDoubleRTTI::getValue, &ManagedSerializableFieldDataDoubleRTTI::setValue);
  363. }
  364. const String& getRTTIName() override
  365. {
  366. static String name = "SerializableFieldDataDouble";
  367. return name;
  368. }
  369. UINT32 getRTTIId() override
  370. {
  371. return TID_SerializableFieldDataDouble;
  372. }
  373. SPtr<IReflectable> newRTTIObject() override
  374. {
  375. return bs_shared_ptr_new<ManagedSerializableFieldDataDouble>();
  376. }
  377. };
  378. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataStringRTTI : public RTTIType<ManagedSerializableFieldDataString, ManagedSerializableFieldData, ManagedSerializableFieldDataStringRTTI>
  379. {
  380. private:
  381. WString& getValue(ManagedSerializableFieldDataString* obj) { return obj->value; }
  382. void setValue(ManagedSerializableFieldDataString* obj, WString& val) { obj->value = val; }
  383. public:
  384. ManagedSerializableFieldDataStringRTTI()
  385. {
  386. addPlainField("mValue", 0, &ManagedSerializableFieldDataStringRTTI::getValue, &ManagedSerializableFieldDataStringRTTI::setValue);
  387. }
  388. const String& getRTTIName() override
  389. {
  390. static String name = "SerializableFieldDataString";
  391. return name;
  392. }
  393. UINT32 getRTTIId() override
  394. {
  395. return TID_SerializableFieldDataString;
  396. }
  397. SPtr<IReflectable> newRTTIObject() override
  398. {
  399. return bs_shared_ptr_new<ManagedSerializableFieldDataString>();
  400. }
  401. };
  402. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataResourceRefRTTI : public RTTIType<ManagedSerializableFieldDataResourceRef, ManagedSerializableFieldData, ManagedSerializableFieldDataResourceRefRTTI>
  403. {
  404. private:
  405. HResource& getValue(ManagedSerializableFieldDataResourceRef* obj) { return obj->value; }
  406. void setValue(ManagedSerializableFieldDataResourceRef* obj, HResource& val) { obj->value = HResource(val); }
  407. public:
  408. ManagedSerializableFieldDataResourceRefRTTI()
  409. {
  410. addReflectableField("mValue", 0, &ManagedSerializableFieldDataResourceRefRTTI::getValue, &ManagedSerializableFieldDataResourceRefRTTI::setValue);
  411. }
  412. const String& getRTTIName() override
  413. {
  414. static String name = "SerializableFieldDataResourceRef";
  415. return name;
  416. }
  417. UINT32 getRTTIId() override
  418. {
  419. return TID_SerializableFieldDataResourceRef;
  420. }
  421. SPtr<IReflectable> newRTTIObject() override
  422. {
  423. return bs_shared_ptr_new<ManagedSerializableFieldDataResourceRef>();
  424. }
  425. };
  426. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataGameObjectRefRTTI : public RTTIType<ManagedSerializableFieldDataGameObjectRef, ManagedSerializableFieldData, ManagedSerializableFieldDataGameObjectRefRTTI>
  427. {
  428. private:
  429. HGameObject& getValue(ManagedSerializableFieldDataGameObjectRef* obj) { return obj->value; }
  430. void setValue(ManagedSerializableFieldDataGameObjectRef* obj, HGameObject& val) { obj->value = val; }
  431. public:
  432. ManagedSerializableFieldDataGameObjectRefRTTI()
  433. {
  434. addReflectableField("mValue", 0, &ManagedSerializableFieldDataGameObjectRefRTTI::getValue, &ManagedSerializableFieldDataGameObjectRefRTTI::setValue);
  435. }
  436. const String& getRTTIName() override
  437. {
  438. static String name = "SerializableFieldDataGameObjectRef";
  439. return name;
  440. }
  441. UINT32 getRTTIId() override
  442. {
  443. return TID_SerializableFieldDataGameObjectRef;
  444. }
  445. SPtr<IReflectable> newRTTIObject() override
  446. {
  447. return bs_shared_ptr_new<ManagedSerializableFieldDataGameObjectRef>();
  448. }
  449. };
  450. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataObjectRTTI : public RTTIType<ManagedSerializableFieldDataObject, ManagedSerializableFieldData, ManagedSerializableFieldDataObjectRTTI>
  451. {
  452. private:
  453. SPtr<ManagedSerializableObject> getValue(ManagedSerializableFieldDataObject* obj) { return obj->value; }
  454. void setValue(ManagedSerializableFieldDataObject* obj, SPtr<ManagedSerializableObject> val) { obj->value = val; }
  455. public:
  456. ManagedSerializableFieldDataObjectRTTI()
  457. {
  458. addReflectablePtrField("mValue", 0, &ManagedSerializableFieldDataObjectRTTI::getValue, &ManagedSerializableFieldDataObjectRTTI::setValue);
  459. }
  460. const String& getRTTIName() override
  461. {
  462. static String name = "SerializableFieldDataObject";
  463. return name;
  464. }
  465. UINT32 getRTTIId() override
  466. {
  467. return TID_SerializableFieldDataObject;
  468. }
  469. SPtr<IReflectable> newRTTIObject() override
  470. {
  471. return bs_shared_ptr_new<ManagedSerializableFieldDataObject>();
  472. }
  473. };
  474. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataArrayRTTI : public RTTIType<ManagedSerializableFieldDataArray, ManagedSerializableFieldData, ManagedSerializableFieldDataArrayRTTI>
  475. {
  476. private:
  477. SPtr<ManagedSerializableArray> getValue(ManagedSerializableFieldDataArray* obj) { return obj->value; }
  478. void setValue(ManagedSerializableFieldDataArray* obj, SPtr<ManagedSerializableArray> val) { obj->value = val; }
  479. public:
  480. ManagedSerializableFieldDataArrayRTTI()
  481. {
  482. addReflectablePtrField("mValue", 0, &ManagedSerializableFieldDataArrayRTTI::getValue, &ManagedSerializableFieldDataArrayRTTI::setValue);
  483. }
  484. const String& getRTTIName() override
  485. {
  486. static String name = "SerializableFieldDataArray";
  487. return name;
  488. }
  489. UINT32 getRTTIId() override
  490. {
  491. return TID_SerializableFieldDataArray;
  492. }
  493. SPtr<IReflectable> newRTTIObject() override
  494. {
  495. return bs_shared_ptr_new<ManagedSerializableFieldDataArray>();
  496. }
  497. };
  498. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataListRTTI : public RTTIType<ManagedSerializableFieldDataList, ManagedSerializableFieldData, ManagedSerializableFieldDataListRTTI>
  499. {
  500. private:
  501. SPtr<ManagedSerializableList> getValue(ManagedSerializableFieldDataList* obj) { return obj->value; }
  502. void setValue(ManagedSerializableFieldDataList* obj, SPtr<ManagedSerializableList> val) { obj->value = val; }
  503. public:
  504. ManagedSerializableFieldDataListRTTI()
  505. {
  506. addReflectablePtrField("mValue", 0, &ManagedSerializableFieldDataListRTTI::getValue, &ManagedSerializableFieldDataListRTTI::setValue);
  507. }
  508. const String& getRTTIName() override
  509. {
  510. static String name = "SerializableFieldDataList";
  511. return name;
  512. }
  513. UINT32 getRTTIId() override
  514. {
  515. return TID_SerializableFieldDataList;
  516. }
  517. SPtr<IReflectable> newRTTIObject() override
  518. {
  519. return bs_shared_ptr_new<ManagedSerializableFieldDataList>();
  520. }
  521. };
  522. class BS_SCR_BE_EXPORT ManagedSerializableFieldDataDictionaryRTTI : public RTTIType<ManagedSerializableFieldDataDictionary, ManagedSerializableFieldData, ManagedSerializableFieldDataDictionaryRTTI>
  523. {
  524. private:
  525. SPtr<ManagedSerializableDictionary> getValue(ManagedSerializableFieldDataDictionary* obj) { return obj->value; }
  526. void setValue(ManagedSerializableFieldDataDictionary* obj, SPtr<ManagedSerializableDictionary> val) { obj->value = val; }
  527. public:
  528. ManagedSerializableFieldDataDictionaryRTTI()
  529. {
  530. addReflectablePtrField("mValue", 0, &ManagedSerializableFieldDataDictionaryRTTI::getValue, &ManagedSerializableFieldDataDictionaryRTTI::setValue);
  531. }
  532. const String& getRTTIName() override
  533. {
  534. static String name = "SerializableFieldDataDictionary";
  535. return name;
  536. }
  537. UINT32 getRTTIId() override
  538. {
  539. return TID_SerializableFieldDataDictionary;
  540. }
  541. SPtr<IReflectable> newRTTIObject() override
  542. {
  543. return bs_shared_ptr_new<ManagedSerializableFieldDataDictionary>();
  544. }
  545. };
  546. /** @} */
  547. /** @endcond */
  548. }