| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #ifndef SOPHIAR2_GLOBAL_DEFS_H
- #define SOPHIAR2_GLOBAL_DEFS_H
- #include <boost/asio/io_context.hpp>
- #include <boost/endian.hpp>
- #include <nlohmann/json.hpp>
- #include <memory>
- namespace sophiar {
- class dynamic_pool;
- class sophiar_manager;
- class sophiar_pool;
- extern dynamic_pool *global_dynamic_pool;
- extern boost::asio::io_context *global_context;
- extern sophiar_manager *global_sophiar_manager;
- extern sophiar_pool *global_sophiar_pool;
- #ifdef SOPHIAR_TEST
- class external_controller;
- extern external_controller *global_external_controller;
- #endif // SOPHIAR_TEST
- static constexpr auto sophiar_endian = boost::endian::order::big;
- bool initialize(const nlohmann::json &config);
- #define REQUIRE_VARIABLE(var_type, var_name) \
- global_sophiar_pool->require_variable<var_type>(var_name)
- #define QUERY_VARIABLE(var_type, var_index) \
- global_sophiar_pool->query_variable<var_type>(var_index)
- #define QUERY_VARIABLE_WITH_TS(var_type, var_index, ts_ptr) \
- global_sophiar_pool->query_variable<var_type>(var_index, ts_ptr)
- #define QUERY_VARIABLE_TS(var_index) \
- global_sophiar_pool->query_variable_update_ts(var_index)
- #define REQUIRE_VARIABLE_WATCHER(var_index) \
- global_sophiar_pool->require_variable_watcher(var_index)
- #define UPDATE_VARIABLE(var_type, var_index, val_ptr) \
- global_sophiar_pool->update_variable<var_type>(var_index, std::move(val_ptr))
- #define UPDATE_VARIABLE_WITH_TS(var_type, var_index, val_ptr, ts) \
- global_sophiar_pool->update_variable<var_type>(var_index, std::move(val_ptr), ts)
- #define UPDATE_VARIABLE_VAL(var_type, var_index, val) \
- global_sophiar_pool->update_variable<var_type>(var_index, var_type::new_instance(val))
- #define UPDATE_VARIABLE_VAL_WITH_TS(var_type, var_index, val, ts) \
- global_sophiar_pool->update_variable<var_type>(var_index, var_type::new_instance(val), ts)
- #ifdef SOPHIAR_TEST
- #define REGISTER_VARIABLE(var_name, var_type) \
- global_sophiar_pool->register_variable(var_name, var_type)
- #endif // SOPHIAR_TEST
- #define QUERY_OBJECT_NAME(obj_ptr) \
- global_sophiar_manager->get_object_name(obj_ptr)
- #define ALLOCATE_DYNAMIC_MEMORY(s) \
- global_dynamic_pool->allocate(s)
- #define ALLOCATE_DYNAMIC_MEMORY_N(s, n) \
- global_dynamic_pool->allocate(s, n)
- #define DEALLOCATE_DYNAMIC_MEMORY(ptr, s) \
- global_dynamic_pool->deallocate(ptr, s)
- #define DEALLOCATE_DYNAMIC_MEMORY_N(ptr, s, n) \
- global_dynamic_pool->deallocate(ptr, s, n)
- #define ACTUAL_DYNAMIC_MEMORY_SIZE(s) \
- global_dynamic_pool->actual_allocate_size(s)
- }
- #endif //SOPHIAR2_GLOBAL_DEFS_H
|