Open3D (C++ API)
0.19.0
Toggle main menu visibility
Loading...
Searching...
No Matches
cpp
open3d
io
rpc
ZMQReceiver.h
Go to the documentation of this file.
1
// ----------------------------------------------------------------------------
2
// - Open3D: www.open3d.org -
3
// ----------------------------------------------------------------------------
4
// Copyright (c) 2018-2024 www.open3d.org
5
// SPDX-License-Identifier: MIT
6
// ----------------------------------------------------------------------------
7
8
#pragma once
9
10
#include <atomic>
11
#include <mutex>
12
#include <thread>
13
14
#include "
open3d/utility/Logging.h
"
15
16
namespace
zmq
{
17
class
message_t;
18
class
socket_t;
19
class
context_t;
20
}
// namespace zmq
21
22
namespace
open3d
{
23
namespace
io
{
24
namespace
rpc
{
25
26
class
MessageProcessorBase
;
27
28
namespace
messages
{
29
struct
Request
;
30
struct
SetMeshData
;
31
struct
GetMeshData
;
32
struct
SetCameraData
;
33
struct
SetProperties
;
34
struct
SetActiveCamera
;
35
struct
SetTime
;
36
}
// namespace messages
37
39
class
ZMQReceiver
{
40
public
:
44
ZMQReceiver
(
const
std::string& address =
"tcp://127.0.0.1:51454"
,
45
int
timeout = 10000);
46
47
ZMQReceiver
(
const
ZMQReceiver
&) =
delete
;
48
ZMQReceiver
&
operator=
(
const
ZMQReceiver
&) =
delete
;
49
50
virtual
~ZMQReceiver
();
51
53
void
Start
();
54
58
void
Stop
();
59
61
std::runtime_error
GetLastError
();
62
64
void
SetMessageProcessor
(std::shared_ptr<MessageProcessorBase> processor);
65
66
private
:
67
void
Mainloop();
68
69
const
std::string address_;
70
const
int
timeout_;
71
std::shared_ptr<zmq::context_t> context_;
72
std::unique_ptr<zmq::socket_t> socket_;
73
std::thread thread_;
74
std::mutex mutex_;
75
bool
keep_running_;
76
std::atomic<bool> loop_running_;
77
std::atomic<int> mainloop_error_code_;
78
std::runtime_error mainloop_exception_;
79
std::shared_ptr<MessageProcessorBase> processor_;
80
};
81
82
}
// namespace rpc
83
}
// namespace io
84
}
// namespace open3d
Logging.h
open3d::io::rpc::MessageProcessorBase
Definition
MessageProcessorBase.h:40
open3d::io::rpc::ZMQReceiver::~ZMQReceiver
virtual ~ZMQReceiver()
Definition
ZMQReceiver.cpp:44
open3d::io::rpc::ZMQReceiver::Start
void Start()
Starts the receiver mainloop in a new thread.
Definition
ZMQReceiver.cpp:46
open3d::io::rpc::ZMQReceiver::ZMQReceiver
ZMQReceiver(const std::string &address="tcp://127.0.0.1:51454", int timeout=10000)
Definition
ZMQReceiver.cpp:36
open3d::io::rpc::ZMQReceiver::operator=
ZMQReceiver & operator=(const ZMQReceiver &)=delete
open3d::io::rpc::ZMQReceiver::SetMessageProcessor
void SetMessageProcessor(std::shared_ptr< MessageProcessorBase > processor)
Sets the message processor object which will process incoming messages.
Definition
ZMQReceiver.cpp:213
open3d::io::rpc::ZMQReceiver::GetLastError
std::runtime_error GetLastError()
Returns the last error from the mainloop thread.
Definition
ZMQReceiver.cpp:87
open3d::io::rpc::ZMQReceiver::Stop
void Stop()
Definition
ZMQReceiver.cpp:70
open3d::io::rpc::ZMQReceiver::ZMQReceiver
ZMQReceiver(const ZMQReceiver &)=delete
open3d::io::rpc::messages
Definition
MessageProcessorBase.h:27
open3d::io::rpc
Definition
BufferConnection.cpp:19
open3d::io
Definition
FeatureIO.cpp:14
open3d
Definition
PinholeCameraIntrinsic.cpp:16
zmq
Definition
ConnectionBase.h:12
open3d::io::rpc::messages::GetMeshData
struct for defining a "get_mesh_data" message, which requests mesh data.
Definition
Messages.h:410
open3d::io::rpc::messages::Request
Definition
Messages.h:508
open3d::io::rpc::messages::SetActiveCamera
Definition
Messages.h:488
open3d::io::rpc::messages::SetCameraData
Definition
Messages.h:458
open3d::io::rpc::messages::SetMeshData
Definition
Messages.h:391
open3d::io::rpc::messages::SetProperties
Definition
Messages.h:497
open3d::io::rpc::messages::SetTime
Definition
Messages.h:478
Generated by
1.17.0