#pragma once #include #include #include #include "base/define.h" #include "base/log4.h" namespace ylib { class environment { public: template T* to(const std::string& name) { std::unique_lock auto_lock(m_mutex); return (T*)m_map[name]; } template void set(const std::string name,T* value) { std::unique_lock auto_lock(m_mutex); m_map[name] = value; } void del(const std::string& name) { std::unique_lock auto_lock(m_mutex); auto iter = m_map.find(name); if (iter != m_map.end()) m_map.erase(iter); } private: std::mutex m_mutex; std::map m_map; }; namespace network { namespace http { class center; } } namespace mysql_plus { class pool; } } namespace ylib { extern ylib::environment *env; extern ylib::log4 *log; }