/services/Channel.cpp

https://github.com/starcasters/lisanna · C++ · 297 lines · 175 code · 72 blank · 50 comment · 30 complexity · 5e7c1af4efb57d6067a7f4905a558e6e MD5 · raw file

  1. /*
  2. This file is part of Lisana.
  3. Lisana is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 3 of the License, or
  6. (at your option) any later version.
  7. Lisana is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with Lisana. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. // Channel
  15. // bnet.protocol.channel.Channel
  16. //
  17. // { AddMember .bnet.protocol.channel.AddMemberRequest .bnet.protocol.NoData }
  18. // { RemoveMember .bnet.protocol.channel.RemoveMemberRequest .bnet.protocol.NoData }
  19. // { SendMessage .bnet.protocol.channel.SendMessageRequest .bnet.protocol.NoData }
  20. // { UpdateChannelState .bnet.protocol.channel.UpdateChannelStateRequest .bnet.protocol.NoData }
  21. // { UpdateMemberState .bnet.protocol.channel.UpdateMemberStateRequest .bnet.protocol.NoData }
  22. // { Dissolve .bnet.protocol.channel.DissolveRequest .bnet.protocol.NoData }
  23. // { SetRoles .bnet.protocol.channel.SetRolesRequest .bnet.protocol.NoData }
  24. #include "Channel.h"
  25. #include <iostream>
  26. using namespace google::protobuf;
  27. CServiceChannel::CServiceChannel()
  28. {
  29. // place here any initialization (?)
  30. }
  31. CServiceChannel::CServiceChannel(CServiceMgr* owner=0,int SID=0, std::string serviceName=string(SERVICE_Channel_NAME)) :
  32. CService(owner, SID, serviceName)
  33. {
  34. //what goes here now?
  35. }
  36. Message* CServiceChannel::GetMethodMessage(int MethodID, bool request) {
  37. switch (MethodID) {
  38. case 1:
  39. if (request) { return ::bnet::protocol::channel::AddMemberRequest::default_instance().New(); }
  40. else { return ::bnet::protocol::NoData::default_instance().New(); }
  41. case 2:
  42. if (request) { return ::bnet::protocol::channel::RemoveMemberRequest::default_instance().New(); }
  43. else { return ::bnet::protocol::NoData::default_instance().New(); }
  44. case 3:
  45. if (request) { return ::bnet::protocol::channel::SendMessageRequest::default_instance().New(); }
  46. else { return ::bnet::protocol::NoData::default_instance().New(); }
  47. case 4:
  48. if (request) { return ::bnet::protocol::channel::UpdateChannelStateRequest::default_instance().New(); }
  49. else { return ::bnet::protocol::NoData::default_instance().New(); }
  50. case 5:
  51. if (request) { return ::bnet::protocol::channel::UpdateMemberStateRequest::default_instance().New(); }
  52. else { return ::bnet::protocol::NoData::default_instance().New(); }
  53. case 6:
  54. if (request) { return ::bnet::protocol::channel::DissolveRequest::default_instance().New(); }
  55. else { return ::bnet::protocol::NoData::default_instance().New(); }
  56. case 7:
  57. if (request) { return ::bnet::protocol::channel::SetRolesRequest::default_instance().New(); }
  58. else { return ::bnet::protocol::NoData::default_instance().New(); }
  59. default:
  60. cerr << "error: method not implemented" << endl;
  61. return NULL;
  62. }
  63. }
  64. //This function was autogenerated:
  65. bool CServiceChannel::DispatchMethod(int MethodID, bool request, TCPSocket *sock, apacket* packet) {
  66. switch (MethodID) {
  67. case 1:
  68. if (request) { return handle_AddMember_Request(sock, packet); }
  69. else { return handle_NoData_AddMember(sock, packet); }
  70. case 2:
  71. if (request) { return handle_RemoveMember_Request(sock, packet); }
  72. else { return handle_NoData_RemoveMember(sock, packet); }
  73. case 3:
  74. if (request) { return handle_SendMessage_Request(sock, packet); }
  75. else { return handle_NoData_SendMessage(sock, packet); }
  76. case 4:
  77. if (request) { return handle_UpdateChannelState_Request(sock, packet); }
  78. else { return handle_NoData_UpdateChannelState(sock, packet); }
  79. case 5:
  80. if (request) { return handle_UpdateMemberState_Request(sock, packet); }
  81. else { return handle_NoData_UpdateMemberState(sock, packet); }
  82. case 6:
  83. if (request) { return handle_Dissolve_Request(sock, packet); }
  84. else { return handle_NoData_Dissolve(sock, packet); }
  85. case 7:
  86. if (request) { return handle_SetRoles_Request(sock, packet); }
  87. else { return handle_NoData_SetRoles(sock, packet); }
  88. default:
  89. cerr << "error: method not implemented" << endl;
  90. return false;
  91. }
  92. }
  93. bool CServiceChannel::handle_AddMember_Request(TCPSocket *sock, apacket* packet)
  94. {
  95. ::bnet::protocol::channel::AddMemberRequest* request;
  96. ::bnet::protocol::NoData response;
  97. request = (::bnet::protocol::channel::AddMemberRequest*) packet;
  98. // add some info to the packet?
  99. sendheader(sock, 0xFE, 0, packet->hdr->reqid, 0, response.ByteSize());
  100. sendmsgdata(sock, &response);
  101. // do something...
  102. return true;
  103. }
  104. bool CServiceChannel::handle_NoData_AddMember(TCPSocket *sock, apacket* packet)
  105. {
  106. ::bnet::protocol::NoData* response;
  107. response = (::bnet::protocol::NoData*) packet->msg;
  108. //do something...
  109. return true;
  110. }
  111. bool CServiceChannel::handle_RemoveMember_Request(TCPSocket *sock, apacket* packet)
  112. {
  113. ::bnet::protocol::channel::RemoveMemberRequest* request;
  114. ::bnet::protocol::NoData response;
  115. request = (::bnet::protocol::channel::RemoveMemberRequest*) packet;
  116. // add some info to the packet?
  117. sendheader(sock, 0xFE, 0, packet->hdr->reqid, 0, response.ByteSize());
  118. sendmsgdata(sock, &response);
  119. // do something...
  120. return true;
  121. }
  122. bool CServiceChannel::handle_NoData_RemoveMember(TCPSocket *sock, apacket* packet)
  123. {
  124. ::bnet::protocol::NoData* response;
  125. response = (::bnet::protocol::NoData*) packet->msg;
  126. //do something...
  127. return true;
  128. }
  129. bool CServiceChannel::handle_SendMessage_Request(TCPSocket *sock, apacket* packet)
  130. {
  131. ::bnet::protocol::channel::SendMessageRequest* request;
  132. ::bnet::protocol::NoData response;
  133. request = (::bnet::protocol::channel::SendMessageRequest*) packet;
  134. // add some info to the packet?
  135. sendheader(sock, 0xFE, 0, packet->hdr->reqid, 0, response.ByteSize());
  136. sendmsgdata(sock, &response);
  137. // do something...
  138. return true;
  139. }
  140. bool CServiceChannel::handle_NoData_SendMessage(TCPSocket *sock, apacket* packet)
  141. {
  142. ::bnet::protocol::NoData* response;
  143. response = (::bnet::protocol::NoData*) packet->msg;
  144. //do something...
  145. return true;
  146. }
  147. bool CServiceChannel::handle_UpdateChannelState_Request(TCPSocket *sock, apacket* packet)
  148. {
  149. ::bnet::protocol::channel::UpdateChannelStateRequest* request;
  150. ::bnet::protocol::NoData response;
  151. request = (::bnet::protocol::channel::UpdateChannelStateRequest*) packet;
  152. // add some info to the packet?
  153. sendheader(sock, 0xFE, 0, packet->hdr->reqid, 0, response.ByteSize());
  154. sendmsgdata(sock, &response);
  155. // do something...
  156. return true;
  157. }
  158. bool CServiceChannel::handle_NoData_UpdateChannelState(TCPSocket *sock, apacket* packet)
  159. {
  160. ::bnet::protocol::NoData* response;
  161. response = (::bnet::protocol::NoData*) packet->msg;
  162. //do something...
  163. return true;
  164. }
  165. bool CServiceChannel::handle_UpdateMemberState_Request(TCPSocket *sock, apacket* packet)
  166. {
  167. ::bnet::protocol::channel::UpdateMemberStateRequest* request;
  168. ::bnet::protocol::NoData response;
  169. request = (::bnet::protocol::channel::UpdateMemberStateRequest*) packet;
  170. // add some info to the packet?
  171. sendheader(sock, 0xFE, 0, packet->hdr->reqid, 0, response.ByteSize());
  172. sendmsgdata(sock, &response);
  173. // do something...
  174. return true;
  175. }
  176. bool CServiceChannel::handle_NoData_UpdateMemberState(TCPSocket *sock, apacket* packet)
  177. {
  178. ::bnet::protocol::NoData* response;
  179. response = (::bnet::protocol::NoData*) packet->msg;
  180. //do something...
  181. return true;
  182. }
  183. bool CServiceChannel::handle_Dissolve_Request(TCPSocket *sock, apacket* packet)
  184. {
  185. ::bnet::protocol::channel::DissolveRequest* request;
  186. ::bnet::protocol::NoData response;
  187. request = (::bnet::protocol::channel::DissolveRequest*) packet;
  188. // add some info to the packet?
  189. sendheader(sock, 0xFE, 0, packet->hdr->reqid, 0, response.ByteSize());
  190. sendmsgdata(sock, &response);
  191. // do something...
  192. return true;
  193. }
  194. bool CServiceChannel::handle_NoData_Dissolve(TCPSocket *sock, apacket* packet)
  195. {
  196. ::bnet::protocol::NoData* response;
  197. response = (::bnet::protocol::NoData*) packet->msg;
  198. //do something...
  199. return true;
  200. }
  201. bool CServiceChannel::handle_SetRoles_Request(TCPSocket *sock, apacket* packet)
  202. {
  203. ::bnet::protocol::channel::SetRolesRequest* request;
  204. ::bnet::protocol::NoData response;
  205. request = (::bnet::protocol::channel::SetRolesRequest*) packet;
  206. // add some info to the packet?
  207. sendheader(sock, 0xFE, 0, packet->hdr->reqid, 0, response.ByteSize());
  208. sendmsgdata(sock, &response);
  209. // do something...
  210. return true;
  211. }
  212. bool CServiceChannel::handle_NoData_SetRoles(TCPSocket *sock, apacket* packet)
  213. {
  214. ::bnet::protocol::NoData* response;
  215. response = (::bnet::protocol::NoData*) packet->msg;
  216. //do something...
  217. return true;
  218. }
  219. CServiceChannel::~CServiceChannel(void)
  220. {
  221. std::cout << "Bye from authserv.";
  222. }