NymphRPC Remote Procedure Call Library
nymph_method.h
1/*
2 nymph_method.h - header file for the NympRPC hMethod class.
3
4 Revision 0
5
6 Notes:
7 -
8
9 History:
10 2017/06/24, Maya Posch : Initial version.
11
12 (c) Nyanko.ws
13*/
14
15
16#pragma once
17#ifndef NYMPH_METHOD_H
18#define NYMPH_METHOD_H
19
20#include "nymph_types.h"
21#include "nymph_listener.h"
22#include "nymph_message.h"
23#include "nymph_session.h"
24
25#include <Poco/Poco.h>
26#include <Poco/Net/StreamSocket.h>
27
28#include <vector>
29#include <string>
30#include <functional>
31
32
34
35
36typedef std::function<NymphMessage*(int, NymphMessage*, void*)> NymphMethodCallback;
37
38
40 friend class NymphRemoteClient;
41 friend class NymphRemoteServer;
42
43 std::string name;
44 uint32_t id;
45 std::vector<NymphTypes> parameters;
46 NymphMethodCallback callback;
47 NymphTypes returnType;
48 std::string loggerName;
49 std::string serialized;
50 bool isCallback;
51
52public:
53 NymphMethod(std::string name, std::vector<NymphTypes> parameters, NymphTypes retType);
54 NymphMethod(std::string name, std::vector<NymphTypes> parameters, NymphTypes retType, NymphMethodCallback cb);
55 void setCallback(NymphMethodCallback callback);
56 NymphMessage* callCallback(int handle, NymphMessage* msg);
57 bool call(Poco::Net::StreamSocket* socket, NymphRequest* &request, std::vector<NymphType*> &values, std::string &result);
58 bool call(NymphSession* session, std::vector<NymphType*> &values, std::string &result);
59 void setId(uint32_t id);
60 uint32_t getId() { return id; }
61 std::string getSerialized() { return serialized; }
62 bool enableCallback(bool state = true) { isCallback = state; return true; }
63};
64
65#endif
Definition: nymph_message.h:39
Definition: nymph_method.h:39
Definition: remote_client.h:33
Definition: remote_server.h:59
Definition: nymph_session.h:26
Definition: nymph_socket_listener.h:41