BsScriptStringTable.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 "BsScriptResource.h"
  6. #include "BsStringTable.h"
  7. namespace BansheeEngine
  8. {
  9. /**
  10. * @brief Interop class between C++ & CLR for StringTable.
  11. */
  12. class BS_SCR_BE_EXPORT ScriptStringTable : public TScriptResource <ScriptStringTable, StringTable>
  13. {
  14. public:
  15. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "StringTable")
  16. private:
  17. friend class ScriptResourceManager;
  18. ScriptStringTable(MonoObject* instance, const HStringTable& table);
  19. /**
  20. * @copydoc ScriptObjectBase::_createManagedInstance
  21. */
  22. MonoObject* _createManagedInstance(bool construct) override;
  23. /**
  24. * @brief Creates an empty, uninitialized managed instance of the resource interop object.
  25. */
  26. static MonoObject* createInstance();
  27. /************************************************************************/
  28. /* CLR HOOKS */
  29. /************************************************************************/
  30. static void internal_CreateInstance(MonoObject* instance);
  31. static bool internal_Contains(ScriptStringTable* thisPtr, MonoString* identifier);
  32. static UINT32 internal_GetNumStrings(ScriptStringTable* thisPtr);
  33. static MonoArray* internal_GetIdentifiers(ScriptStringTable* thisPtr);
  34. static void internal_SetString(ScriptStringTable* thisPtr, MonoString* identifier, Language language, MonoString* value);
  35. static void internal_SetStringDefault(ScriptStringTable* thisPtr, MonoString* identifier, MonoString* value);
  36. static void internal_RemoveString(ScriptStringTable* thisPtr, MonoString* identifier);
  37. static void internal_GetString(ScriptStringTable* thisPtr, MonoString* identifier, Language language, MonoString** value);
  38. static void internal_GetStringDefault(ScriptStringTable* thisPtr, MonoString* identifier, MonoString** value);
  39. };
  40. }