46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
|
/* Copyright 2019-2020 The MathWorks, Inc. */
|
||
|
|
||
|
#ifndef udp_hpp
|
||
|
#define udp_hpp
|
||
|
|
||
|
#include "ip.hpp"
|
||
|
#include <stdio.h>
|
||
|
#include <string>
|
||
|
#include <memory>
|
||
|
|
||
|
namespace slrealtime {
|
||
|
namespace ip {
|
||
|
namespace udp {
|
||
|
|
||
|
class Socket : public slrealtime::ip::Socket {
|
||
|
private:
|
||
|
std::string arrayToString(uint8_t *AddArg);
|
||
|
protected:
|
||
|
struct Impl;
|
||
|
std::unique_ptr<Impl>(impl_);
|
||
|
|
||
|
public:
|
||
|
IPAPI Socket(std::string address, uint16_t port);
|
||
|
IPAPI ~Socket();
|
||
|
IPAPI void close();
|
||
|
IPAPI size_t bytesToRead();
|
||
|
IPAPI bool is_open();
|
||
|
IPAPI void bind();
|
||
|
IPAPI void addMulticastMembership(uint8_t *multicastAddArg,int multicastAddCount, uint8_t *multicastInterfaceArg,int multicastInterfaceCount );
|
||
|
IPAPI void setRemoteEndpoint(uint8_t *remoteAddressArg, uint16_t remotePort);
|
||
|
IPAPI void resetRemoteEndpoint(uint8_t *remoteAddressArg, uint16_t *remotePort);
|
||
|
IPAPI size_t send(const char* sendBuf, size_t bytesToSend);
|
||
|
IPAPI size_t receive(char* rcvBuf, size_t bytesToRcv, bool enablefilter, uint8_t* fmAddress);
|
||
|
IPAPI std::string type() {
|
||
|
return "udp";
|
||
|
}
|
||
|
IPAPI void disable();
|
||
|
};
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
IPAPI slrealtime::ip::udp::Socket* getUDPSocket(const std::string localAddress,uint16_t localPort);
|
||
|
|
||
|
#endif
|