这是我们提供RPC的服务类:
class MprpcApplication
{
public:
static void Init(int argc, char **argv);
static MprpcApplication& GetInstance();
static MprpcConfig& GetConfig();
private:
static MprpcConfig m_config;
MprpcApplication(){}
MprpcApplication(const MprpcApplication&) = delete;
MprpcApplication(MprpcApplication&&) = delete;
};
在init操作中,我们加载配置文件,进行去除空格等操作
void MprpcApplication::Init(int argc, char **argv)
{
if (argc < 2)
{
ShowArgsHelp();
exit(EXIT_FAILURE);
}
int c = 0;
std::string config_file;
while((c = getopt(argc, argv, "i:")) != -1)
{
switch (c)
{
case 'i':
config_file = optarg;
break;
case '?':
ShowArgsHelp();
exit(EXIT_FAILURE);
case ':':
ShowArgsHelp();
exit(EXIT_FAILURE);
default:
break;
}
}
// 开始加载配置文件了 rpcserver_ip= rpcserver_port zookeeper_ip= zookepper_port=
m_config.LoadConfigFile(config_file.c_str());
// std::cout << "rpcserverip:" << m_config.Load("rpcserverip") << std::endl;
// std::cout << "rpcserverport:" << m_config.Load("rpcserverport") << std::endl;
// std::cout << "zookeeperip:" << m_config.Load("zookeeperip") << std::endl;
// std::cout << "zookeeperport:" << m_config.Load("zookeeperport") << std::endl;
}
MprpcApplication& MprpcApplication::GetInstance()
{
static MprpcApplication app;
return app;
}
MprpcConfig& MprpcApplication::GetConfig()
{
return m_config;
}