- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
[[Tutorial]]
''工事中''
''※準備中です''
**サービスライブラリの取得 [#je0ef17e]
[[サービスライブラリ]]
**設定方法 [#r4548878]
**サンプル [#zc25bba0]
***コントローラサンプル [#z5f5cfa5]
#highlight(cpp){{
#include <string>
#include "Controller.h"
#include "Logger.h"
#include "ControllerEvent.h"
#define PI 3.141592
#define DEG2RAD(DEG) ( (PI) * (DEG) / 180.0 )
using namespace std;
class AgentController : public Controller
{
public:
double onAction(ActionEvent &evt);
void onRecvMsg(RecvMsgEvent &evt);
void onInit(InitEvent &evt);
private:
BaseService *m_srv;
};
void AgentController::onInit(InitEvent &evt)
{
m_srv = NULL;
m_srv = connectToService("MyService",9005);
}
double AgentController::onAction(ActionEvent &evt)
{
if(m_srv != NULL){
m_srv->sendMsgToSrv("Hello");
}
return 1.0;
}
void AgentController::onRecvMsg(RecvMsgEvent &evt)
{
std::string sender = evt.getSender();
std::string msg = evt.getMsg();
LOG_MSG(("[%s] %s", sender.c_str(), msg.c_str()));
}
extern "C" Controller * createController ()
{
return new AgentController;
}
}}
***サービスサンプル [#d1d0956b]
#highlight(cpp){{
#include "stdafx.h"
#include "SIGService.h"
#include <tchar.h>
#include <string>
class MyService : public sigverse::SIGService
{
public:
MyService(std::string name) : SIGService(name){};
~MyService();
void onRecvMsg(sigverse::RecvMsgEvent &evt);
double onAction();
};
MyService::~MyService()
{
this->disconnect();
}
double MyService::onAction()
{
return 1.0;
}
void MyService::onRecvMsg(sigverse::RecvMsgEvent &evt)
{
std::string sender = evt.getSender();
std::string msg = evt.getMsg();
if(msg == "Hello") {
this->sendMsgToCtr(sender, "Hello! this is MyService");
}
}
int _tmain(int argc, _TCHAR* argv[])
{
MyService srv("MyService");
// unsigned short port = (unsigned short)(atoi(argv[3]));
// srv.connect(argv[2], port);
srv.connect("hostname", <portnum>);
srv.startLoop();
return 0;
}
}}
#highlight(end)