Program Listing for File receiver.hpp

Return to documentation for file (receiver.hpp)

#ifndef FELIX_RECEIVER_H_
#define FELIX_RECEIVER_H_

#include <sys/uio.h>
#include <cstdint>
#include <functional>
#include <vector>
#include <string>

#include "elink.hpp"
#include "network/fromhost_message.hpp"

class Receiver {

public:
    using OnMsg = std::function<void(const std::vector<ToFlxMessage>&)>;
    using OnConnOpen = std::function<void (const std::string &)>;
    using OnConnClose = std::function<void (const std::string &)>;

    virtual ~Receiver() = default;

    virtual bool declare(const std::vector<Elink> &elinks) = 0;

    virtual void set_conn_open_callback(OnConnOpen callback) = 0;

    virtual void set_conn_close_callback(OnConnClose callback) = 0;

    virtual void set_on_msg_callback(OnMsg callback) = 0;

    virtual int get_number_of_connections() = 0;

};

#endif /* FELIX_RECEIVER_H_ */