mirror of
https://github.com/zeromq/libzmq.git
synced 2025-11-07 05:58:45 +01:00
make udp support for radio-dish
This commit is contained in:
62
src/udp_engine.hpp
Normal file
62
src/udp_engine.hpp
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
#ifndef __ZMQ_UDP_ENGINE_HPP_INCLUDED__
|
||||
#define __ZMQ_UDP_ENGINE_HPP_INCLUDED__
|
||||
|
||||
#include "io_object.hpp"
|
||||
#include "i_engine.hpp"
|
||||
#include "address.hpp"
|
||||
#include "udp_address.hpp"
|
||||
|
||||
#define MAX_UDP_MSG 8192
|
||||
|
||||
namespace zmq
|
||||
{
|
||||
class io_thread_t;
|
||||
class session_base_t;
|
||||
|
||||
class udp_engine_t : public io_object_t, public i_engine
|
||||
{
|
||||
public:
|
||||
udp_engine_t ();
|
||||
~udp_engine_t ();
|
||||
|
||||
int init (address_t *address_, bool send_, bool recv_);
|
||||
|
||||
// i_engine interface implementation.
|
||||
// Plug the engine to the session.
|
||||
void plug (zmq::io_thread_t *io_thread_, class session_base_t *session_);
|
||||
|
||||
// Terminate and deallocate the engine. Note that 'detached'
|
||||
// events are not fired on termination.
|
||||
void terminate ();
|
||||
|
||||
// This method is called by the session to signalise that more
|
||||
// messages can be written to the pipe.
|
||||
void restart_input ();
|
||||
|
||||
// This method is called by the session to signalise that there
|
||||
// are messages to send available.
|
||||
void restart_output ();
|
||||
|
||||
void zap_msg_available () {};
|
||||
|
||||
void in_event ();
|
||||
void out_event ();
|
||||
|
||||
private:
|
||||
|
||||
bool plugged;
|
||||
|
||||
fd_t fd;
|
||||
session_base_t* session;
|
||||
handle_t handle;
|
||||
address_t *address;
|
||||
|
||||
unsigned char out_buffer[MAX_UDP_MSG];
|
||||
unsigned char in_buffer[MAX_UDP_MSG];
|
||||
bool send_enabled;
|
||||
bool recv_enabled;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user