Files
ylib/include/base/environment.h
xx ef63cfd6aa 1、删除部分三方库
2、整合ylib为一个lib库
2024-05-26 12:51:32 +08:00

53 lines
1.1 KiB
C++

#pragma once
#include <map>
#include <string>
#include <mutex>
#include "base/define.h"
#include "base/log4.h"
namespace ylib
{
class environment
{
public:
template<typename T>
T* to(const std::string& name)
{
std::unique_lock<std::mutex> auto_lock(m_mutex);
return (T*)m_map[name];
}
template<typename T>
void set(const std::string name,T* value)
{
std::unique_lock<std::mutex> auto_lock(m_mutex);
m_map[name] = value;
}
void del(const std::string& name)
{
std::unique_lock<std::mutex> 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<std::string,void*> m_map;
};
namespace network
{
namespace http
{
class center;
}
}
namespace mysql_plus
{
class pool;
}
}
namespace ylib
{
extern ylib::environment *env;
extern ylib::log4 *log;
}