node connector for us

Committer:
3116redtrain
Date:
Fri Dec 16 08:28:19 2016 +0000
Revision:
1:52e1dae5dce9
Parent:
0:a64827e7b41c
Child:
2:0dd332c09bf1
security update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
3116redtrain 0:a64827e7b41c 1 #include "CushionNodeConnector.h"
3116redtrain 0:a64827e7b41c 2
3116redtrain 0:a64827e7b41c 3 CushionNodeConnector::CushionNodeConnector(char * hostAndPort){
3116redtrain 0:a64827e7b41c 4 socketio= new SocketIO(hostAndPort);
3116redtrain 0:a64827e7b41c 5 type_name[MESS_STOP]="stop";
3116redtrain 0:a64827e7b41c 6 type_name[MESS_START]="start";
3116redtrain 0:a64827e7b41c 7 type_name[MESS_SIT]="status_sit";
3116redtrain 0:a64827e7b41c 8 type_name[MESS_FRUST]="status_frust";
3116redtrain 0:a64827e7b41c 9 name_type["stop"]=MESS_STOP;
3116redtrain 0:a64827e7b41c 10 name_type["start"]=MESS_START;
3116redtrain 0:a64827e7b41c 11 name_type["status_sit"]=MESS_SIT;
3116redtrain 0:a64827e7b41c 12 name_type["status_frust"]=MESS_FRUST;
3116redtrain 0:a64827e7b41c 13 }
3116redtrain 0:a64827e7b41c 14
3116redtrain 0:a64827e7b41c 15 CushionNodeConnector::CushionNodeConnector(){
3116redtrain 1:52e1dae5dce9 16 CushionNodeConnector("please enter your default hostname");
3116redtrain 0:a64827e7b41c 17 }
3116redtrain 0:a64827e7b41c 18
3116redtrain 0:a64827e7b41c 19 bool CushionNodeConnector::connect(){
3116redtrain 0:a64827e7b41c 20 bool ret=socketio->connect();
3116redtrain 0:a64827e7b41c 21 return ret;
3116redtrain 0:a64827e7b41c 22 }
3116redtrain 0:a64827e7b41c 23
3116redtrain 0:a64827e7b41c 24 int CushionNodeConnector::mess_send(int type, char * msg){
3116redtrain 0:a64827e7b41c 25 string name=type_name[type];
3116redtrain 0:a64827e7b41c 26 char chname[16];
3116redtrain 0:a64827e7b41c 27 std::strncpy(chname, name.c_str(), 16);
3116redtrain 0:a64827e7b41c 28 int ret=socketio->emit(chname,msg);
3116redtrain 0:a64827e7b41c 29 return ret;
3116redtrain 0:a64827e7b41c 30 }
3116redtrain 0:a64827e7b41c 31
3116redtrain 0:a64827e7b41c 32 int CushionNodeConnector::mess_recv(char * msg){
3116redtrain 0:a64827e7b41c 33 picojson::value v;
3116redtrain 0:a64827e7b41c 34 char recv[256];
3116redtrain 0:a64827e7b41c 35 if (socketio->read(recv)) {
3116redtrain 0:a64827e7b41c 36 int type;
3116redtrain 0:a64827e7b41c 37 string name;
3116redtrain 0:a64827e7b41c 38 string sbuf(recv);
3116redtrain 0:a64827e7b41c 39 const char * crecv=sbuf.c_str();
3116redtrain 0:a64827e7b41c 40 string err = picojson::parse(v,crecv,crecv+strlen(crecv));
3116redtrain 0:a64827e7b41c 41 if(!err.empty())
3116redtrain 0:a64827e7b41c 42 return -1;
3116redtrain 0:a64827e7b41c 43 name=v.get("name").get<string>();
3116redtrain 0:a64827e7b41c 44 strncpy(msg,v.get("args").get<string>().c_str(),256);
3116redtrain 0:a64827e7b41c 45 type=name_type[name];
3116redtrain 0:a64827e7b41c 46 return type;
3116redtrain 0:a64827e7b41c 47 }else{
3116redtrain 0:a64827e7b41c 48 return -1;
3116redtrain 0:a64827e7b41c 49 }
3116redtrain 0:a64827e7b41c 50 }
3116redtrain 0:a64827e7b41c 51
3116redtrain 0:a64827e7b41c 52 bool CushionNodeConnector::is_connected(){
3116redtrain 0:a64827e7b41c 53 return socketio->is_connected();
3116redtrain 0:a64827e7b41c 54 }
3116redtrain 0:a64827e7b41c 55
3116redtrain 0:a64827e7b41c 56 bool CushionNodeConnector::close(){
3116redtrain 0:a64827e7b41c 57 return socketio->close();
3116redtrain 0:a64827e7b41c 58 }