1 Star 1 Fork 0

Schips/quick-cpp

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
clipp.example.cpp 1.67 KB
一键复制 编辑 原始数据 按行查看 历史
Schips 提交于 2023-08-29 15:26 +08:00 . example : demo for clipp
#include <iosteam>
/* cmd parser*/
#include "clipp.hxx"
using namespace clipp;
int parseCarg(int argc, char *argv[],
string& run_mode, string& cmd, string& set_value, string& address)
{
string addr;
auto appCli = (option("-m", "--mode") & value("run mode", run_mode),
option("-c", "--module") & value("module cmd", cmd),
option("-v", "--value") & value("cmd value", set_value),
option("-a", "--address") & value("set ip:port", addr));
if (!parse(argc, const_cast<char **>(argv), appCli)) {
std::cerr << make_man_page(appCli, argv[0]) << std::endl;
return 1;
}
if(addr != "")
address = addr;
return 0;
}
#if 0
命令要求 格式要求
-m run/get/set -c module-name [set-value, 'ok' or other]
例如
-m run -c demo
-m get -c demo
-m set -c demo -v no
-m get -c demo
-m set -c demo -v ok
-m get -c demo
#endif
int test_clipp(void)
{
std::string run_mode, cmd, set_value;
string addr;
// 如果有参数传递,则解析
if(argc > 1)
{
//bool usingConfig = false;
int ret;
// 解析 : 模块动作, 模块参数, 参数值, [服务器地址]
ret = parseCarg(argc, argv, run_mode, cmd, set_value, addr);
if(ret) return ret;
LogD(__FILE__, __LINE__, "run mode", run_mode);
LogD(__FILE__, __LINE__, "cmd", cmd);
if(addr != "")
socketTrySetaddress(addr);
if(run_mode == "")
{
//ret = runAsServer();
}else {
//ret = runAsClient(run_mode, cmd, set_value);
}
return ret;
}
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/schips/quick-cpp.git
git@gitee.com:schips/quick-cpp.git
schips
quick-cpp
quick-cpp
master

搜索帮助