TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Service.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the
6  * Free Software Foundation; either version 2 of the License, or (at your
7  * option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef Service_h__
19 #define Service_h__
20 
21 #include "Session.h"
22 
23 namespace bgs { namespace protocol { } }
24 using namespace bgs::protocol;
25 
26 namespace Battlenet
27 {
28  template<class T>
29  class Service : public T
30  {
31  public:
32  Service(Session* session) : T(true), _session(session) { }
33 
34  protected:
35  void SendRequest(uint32 serviceHash, uint32 methodId, google::protobuf::Message const* request, std::function<void(MessageBuffer)> callback) override { _session->SendRequest(serviceHash, methodId, request, std::move(callback)); }
36  void SendRequest(uint32 serviceHash, uint32 methodId, google::protobuf::Message const* request) override { _session->SendRequest(serviceHash, methodId, request); }
37  void SendResponse(uint32 /*serviceHash*/, uint32 /*methodId*/, uint32 token, uint32 status) override { _session->SendResponse(token, status); }
38  void SendResponse(uint32 /*serviceHash*/, uint32 /*methodId*/, uint32 token, google::protobuf::Message const* response) override { _session->SendResponse(token, response); }
39  std::string GetCallerInfo() const override { return _session->GetClientInfo(); }
40 
42  };
43 }
44 
45 #endif // Service_h__
void SendRequest(uint32 serviceHash, uint32 methodId, google::protobuf::Message const *request) override
Definition: Service.h:36
void SendResponse(uint32, uint32, uint32 token, uint32 status) override
Definition: Service.h:37
void SendResponse(uint32, uint32, uint32 token, google::protobuf::Message const *response) override
Definition: Service.h:38
Definition: Session.h:36
Definition: method_options.pb.h:28
Definition: Service.h:29
Definition: message.h:165
Definition: Session.h:38
#define true
Definition: CascPort.h:17
Service(Session *session)
Definition: Service.h:32
Session * _session
Definition: Service.h:41
uint32_t uint32
Definition: Define.h:150
std::string GetCallerInfo() const override
Definition: Service.h:39
void SendRequest(uint32 serviceHash, uint32 methodId, google::protobuf::Message const *request, std::function< void(MessageBuffer)> callback) override
Definition: Service.h:35
Definition: Session.h:79
Definition: MessageBuffer.h:24