Goby3  3.1.4
2024.02.22
interprocess.h File Reference
#include "goby/middleware/marshalling/protobuf.h"
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <deque>
#include <functional>
#include <iosfwd>
#include <memory>
#include <mutex>
#include <set>
#include <string>
#include <thread>
#include <tuple>
#include <unistd.h>
#include <unordered_map>
#include <utility>
#include <vector>
#include <zmq.h>
#include <zmq.hpp>
#include "goby/middleware/common.h"
#include "goby/middleware/group.h"
#include "goby/middleware/marshalling/interface.h"
#include "goby/middleware/protobuf/serializer_transporter.pb.h"
#include "goby/middleware/protobuf/transporter_config.pb.h"
#include "goby/middleware/transport/interface.h"
#include "goby/middleware/transport/interprocess.h"
#include "goby/middleware/transport/null.h"
#include "goby/middleware/transport/serialization_handlers.h"
#include "goby/middleware/transport/subscriber.h"
#include "goby/time/system_clock.h"
#include "goby/util/debug_logger/flex_ostream.h"
#include "goby/util/debug_logger/flex_ostreambuf.h"
#include "goby/zeromq/protobuf/interprocess_config.pb.h"
#include "goby/zeromq/protobuf/interprocess_zeromq.pb.h"

Go to the source code of this file.

Classes

class  goby::middleware::Publisher< Data >
 Class that holds additional metadata and callback functions related to a publication (and is optionally provided as a parameter to StaticTransporterInterface::publish). Use of this class is generally unnecessary on interprocess and inner layers. More...
 
class  goby::zeromq::InterProcessPortalMainThread
 
class  goby::zeromq::InterProcessPortalReadThread
 
class  goby::zeromq::InterProcessPortalImplementation< InnerTransporter, PortalBase >
 
class  goby::zeromq::Router
 
class  goby::zeromq::Manager
 

Namespaces

 goby
 The global namespace for the Goby project.
 
 goby::middleware
 Objects implementing the Goby nested middleware.
 
 goby::zeromq
 
 goby::zeromq::groups
 

Macros

#define USE_OLD_ZMQ_CPP_API
 

Typedefs

using goby::zeromq::zmq_recv_flags_type = int
 
using goby::zeromq::zmq_send_flags_type = int
 
template<typename InnerTransporter = middleware::NullTransporter>
using goby::zeromq::InterProcessPortal = InterProcessPortalImplementation< InnerTransporter, middleware::InterProcessPortalBase >
 

Enumerations

enum  goby::zeromq::IdentifierWildcard { goby::zeromq::IdentifierWildcard::NO_WILDCARDS, goby::zeromq::IdentifierWildcard::THREAD_WILDCARD, goby::zeromq::IdentifierWildcard::PROCESS_THREAD_WILDCARD }
 

Functions

void goby::zeromq::setup_socket (zmq::socket_t &socket, const protobuf::Socket &cfg)
 
std::string goby::zeromq::identifier_part_to_string (int i)
 
std::string goby::zeromq::identifier_part_to_string (std::thread::id i)
 
template<typename Key >
const std::string & goby::zeromq::id_component (const Key &k, std::unordered_map< Key, std::string > &map)
 Given key, find the string in the map, or create it (to_string) and store it, and return the string. More...
 
std::string goby::zeromq::make_identifier (const std::string &type_name, int scheme, const std::string &group, IdentifierWildcard wildcard, const std::string &process, std::unordered_map< int, std::string > *schemes_buffer=nullptr, std::unordered_map< std::thread::id, std::string > *threads_buffer=nullptr)
 

Variables

constexpr goby::middleware::Group goby::zeromq::groups::manager_request {"goby::zeromq::_internal_manager_request"}
 
constexpr goby::middleware::Group goby::zeromq::groups::manager_response {"goby::zeromq::_internal_manager_response"}
 

Macro Definition Documentation

◆ USE_OLD_ZMQ_CPP_API

#define USE_OLD_ZMQ_CPP_API

Definition at line 66 of file interprocess.h.