ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
MessageProcessorBase.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <Logging.h>
11 
12 #include <atomic>
13 #include <msgpack.hpp>
14 #include <mutex>
15 #include <thread>
16 
17 namespace zmq {
18 class message_t;
19 class socket_t;
20 class context_t;
21 } // namespace zmq
22 
23 namespace cloudViewer {
24 namespace io {
25 namespace rpc {
26 
27 namespace messages {
28 struct Request;
29 struct SetMeshData;
30 struct GetMeshData;
31 struct SetCameraData;
32 struct SetProperties;
33 struct SetActiveCamera;
34 struct SetTime;
35 } // namespace messages
36 
41 public:
44 
45  virtual ~MessageProcessorBase();
46 
54  virtual std::shared_ptr<zmq::message_t> ProcessMessage(
55  const messages::Request& req,
56  const messages::SetMeshData& msg,
57  const msgpack::object_handle& obj);
58  virtual std::shared_ptr<zmq::message_t> ProcessMessage(
59  const messages::Request& req,
60  const messages::GetMeshData& msg,
61  const msgpack::object_handle& obj);
62  virtual std::shared_ptr<zmq::message_t> ProcessMessage(
63  const messages::Request& req,
64  const messages::SetCameraData& msg,
65  const msgpack::object_handle& obj);
66  virtual std::shared_ptr<zmq::message_t> ProcessMessage(
67  const messages::Request& req,
68  const messages::SetProperties& msg,
69  const msgpack::object_handle& obj);
70  virtual std::shared_ptr<zmq::message_t> ProcessMessage(
71  const messages::Request& req,
72  const messages::SetActiveCamera& msg,
73  const msgpack::object_handle& obj);
74  virtual std::shared_ptr<zmq::message_t> ProcessMessage(
75  const messages::Request& req,
76  const messages::SetTime& msg,
77  const msgpack::object_handle& obj);
78 };
79 
80 } // namespace rpc
81 } // namespace io
82 } // namespace cloudViewer
virtual std::shared_ptr< zmq::message_t > ProcessMessage(const messages::Request &req, const messages::SetMeshData &msg, const msgpack::object_handle &obj)
MessageProcessorBase()
Constructs a receiver listening on the specified address.
Generic file read and write utility for python interface.
struct for defining a "get_mesh_data" message, which requests mesh data.
Definition: Messages.h:410