global.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #pragma once
  2. #include "define.h"
  3. #include "base/error.h"
  4. #include "util/map.hpp"
  5. #include "util/queue.hpp"
  6. namespace fastweb
  7. {
  8. /// <summary>
  9. /// 应用全局变量
  10. /// </summary>
  11. class global : public Interface{
  12. public:
  13. global(fastweb::app* app);
  14. ~global();
  15. /// <summary>
  16. /// 注册变量
  17. /// </summary>
  18. /// <param name="lua"></param>
  19. void regist(sol::state* lua);
  20. /// <summary>
  21. /// 取指针
  22. /// </summary>
  23. /// <param name="name"></param>
  24. /// <returns></returns>
  25. void* get_ptr(const std::string& name);
  26. /// <summary>
  27. /// 置指针
  28. /// </summary>
  29. /// <param name="name"></param>
  30. /// <param name="value"></param>
  31. /// <param name="ts"></param>
  32. /// <returns></returns>
  33. bool set_ptr(const std::string& name, void* value, sol::this_state ts);
  34. /// <summary>
  35. /// 取对象
  36. /// </summary>
  37. /// <param name="name"></param>
  38. /// <returns></returns>
  39. sol::object get_str(const std::string& name, sol::this_state s);
  40. /// <summary>
  41. /// 置对象
  42. /// </summary>
  43. /// <param name="name"></param>
  44. /// <param name="value"></param>
  45. void set_str(const std::string& name, std::string value);
  46. /// <summary>
  47. /// 清理
  48. /// </summary>
  49. void clear();
  50. private:
  51. ylib::map<std::string, void*> m_ptrs;
  52. ylib::map<std::string,std::string> m_values;
  53. };
  54. }