titan.TestPorts.AF_PACKET/src/AF_PACKET_PT.hh

63 lines
1.8 KiB
C++

// This Test Port skeleton header file was generated by the
// TTCN-3 Compiler of the TTCN-3 Test Executor version CRL 113 200/6 R5A
// for Harald Welte (laforge@nataraja) on Sun Jan 6 18:08:12 2019
// Copyright (c) 2000-2018 Ericsson Telecom AB
// You may modify this file. Add your attributes and prototypes of your
// member functions here.
#ifndef AF__PACKET__PT_HH
#define AF__PACKET__PT_HH
#include <TTCN3.hh>
#include <stdint.h>
#include "AF_PACKET_PortTypes.hh"
// Note: Header file AF_PACKET_PortType.hh must not be included into this file!
// (because it includes this file)
// Please add the declarations of message types manually.
//
namespace AF__PACKET__PortType {
using namespace AF__PACKET__PortTypes;
class AF__PACKET__PT_PROVIDER : public PORT {
public:
AF__PACKET__PT_PROVIDER(const char *par_port_name);
~AF__PACKET__PT_PROVIDER();
void set_parameter(const char *parameter_name, const char *parameter_value);
private:
void Handle_Fd_Event(int fd, boolean is_readable, boolean is_writable, boolean is_error);
/* void Handle_Timeout(double time_since_last_call); */
protected:
void user_map(const char *system_port, Map_Params& params);
void user_unmap(const char *system_port, Map_Params& params);
void user_start();
void user_stop();
void outgoing_send(const AF__PACKET__PortTypes::AF__PACKET__Unitdata&);
virtual void incoming_message(const AF__PACKET__Unitdata& incoming_par) = 0;
public:
void log(const char *fmt, ...);
private:
char *mNetdev_name; /* name of the network interface */
int mSleepUsOnEnobufs; /* how many us to sleep on ENOBUFS */
int mIfindex; /* interface index of the network device */
int mSocket; /* socket/file descriptor of the AF_PACKET socket */
uint8_t mRxBuf[2048]; /* read buffer */
}; // class AF__PACKET__PORT_PROVIDER
} /* end of namespace */
#endif