1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/swair-frpc

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
remote_call_server.cc 1.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
swair_fang Отправлено 23.01.2021 17:42 91d0b52
#include <stdio.h>
#include "Reactor.h"
#include "Common.h"
#include "LogWrite.h"
#include "Server.h"
int square(int line)
{
return line * line;
}
class DataBase
{
public:
void set(const std::string& name, const int& age)
{
name_ = name;
age_ = age;
}
void get(std::string& name, int& age)
{
name = name_;
age = age_;
}
private:
std::string name_;
int age_;
};
void work(Fson& response, Fson& request, void* args)
{
DataBase& dataBase = *(DataBase*)args;
std::string method;
try
{
method = request.getStr("method");
}
catch(int ret)
{
response.setInt("code", 201);
return;
}
response.setInt("code", 200);
if(0 == method.compare("square"))
{
int v = request.getInt("line");
response.setInt("result", v*v);
}
else if(0 == method.compare("set"))
{
dataBase.set(request.getStr("name"), request.getInt("age"));
response.setStr("msg", "ok");
}
else if(0 == method.compare("get"))
{
std::string name;
int age;
dataBase.get(name, age);
response.setStr("name", name);
response.setInt("age", age);
}
}
int main(int argc,char*argv[])
{
DataBase dataBase;
std::string ip = "127.0.0.1";
std::string port = "12345";
Server server;
server.setCallBack(work, (void*)&dataBase);
server.startRun(ip, port);
return 0;
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/swair-frpc.git
git@api.gitlife.ru:oschina-mirror/swair-frpc.git
oschina-mirror
swair-frpc
swair-frpc
main