BsManagedSerializableFieldRTTI.h 21 KB

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