载入中...
搜索中...
未找到
NetRpc.h
浏览该文件的文档.
1#pragma once
2
3#include "network/UdpLink.h"
4
5#include <cstdint>
6#include <functional>
7#include <map>
8#include <string>
9
10namespace ssq {
11class Object;
12}
13
14namespace eve::network {
15
16class NetReader;
17
25class NetRpc {
26public:
27 explicit NetRpc(UdpLink* link);
28 ~NetRpc();
29
30 using Handler = std::function<void(NetReader&)>;
31
32 void call(uint16_t msgId, const void* data, size_t n, bool reliable = true);
33 bool callString(uint16_t msgId, const std::string& payload, bool reliable = true);
34
35 void registerHandler(uint16_t msgId, Handler h);
37 void registerScript(uint16_t msgId, ssq::Object fn);
38
39private:
40 void onLinkMessage(UdpLink::MsgType type, uint8_t channel,
41 const char* data, size_t n);
42
43 UdpLink* link_ = nullptr;
44 std::map<uint16_t, Handler> handlers_;
45 std::map<uint16_t, ssq::Object> scriptHandlers_;
46};
47
48} // namespace eve::network
std::string type
glm::vec3 n
Definition Grass.cpp:64
int h
SettlementPipeline::Stage fn
void registerScript(uint16_t msgId, ssq::Object fn)
Definition NetRpc.cpp:63
void registerHandler(uint16_t msgId, Handler h)
Definition NetRpc.cpp:59
bool callString(uint16_t msgId, const std::string &payload, bool reliable=true)
Definition NetRpc.cpp:53
std::function< void(NetReader &)> Handler
Definition NetRpc.h:30
void call(uint16_t msgId, const void *data, size_t n, bool reliable=true)
Definition NetRpc.cpp:42
EVEngine ECS 集成层:底层实现使用 sunxfancy/ECS.hpp https://github.com/sunxfancy/ECS.hpp
Definition ECS.h:12