2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3 // Network Research Group (NET)
4 // Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5 // Contact: support@wiback.org
7 // This file is part of the SENF code tree.
8 // It is licensed under the 3-clause BSD License (aka New BSD License).
9 // See LICENSE.txt in the top level directory for details or visit
10 // https://opensource.org/licenses/BSD-3-Clause
15 \brief EmulatedDVBInterface internal header */
17 #ifndef IH_SENF_Ext_NetEmu_DVB_EmulatedDVBInterface_
18 #define IH_SENF_Ext_NetEmu_DVB_EmulatedDVBInterface_ 1
22 //-/////////////////////////////////////////////////////////////////////////////////////////////////
27 class EmulatedDVBSenderInterface;
28 class EmulatedDVBReceiverInterface;
32 /** \brief Internal: Input filter of emulated DVBReceiver interface */
33 class EmulatedDVBReceiverReceiveFilter
34 : public ppi::module::Module
36 SENF_PPI_MODULE(EmulatedDVBReceiverReceiveFilter);
38 ppi::connector::PassiveInput<DVBPacketHeader> input;
39 ppi::connector::ActiveOutput<EthernetPacket> output;
41 EmulatedDVBReceiverReceiveFilter(EmulatedDVBReceiverInterface & iface);
46 EmulatedDVBReceiverInterface & iface_;
49 /** \brief Internal: Internal PPI Network of emulated DVBReceiver interface */
50 struct EmulatedDVBReceiverInterfaceNet
53 EmulatedDVBReceiverReceiveFilter receiveFilter_;
55 //-/////////////////////////////////////////////////////////////////////////////////////////
57 ppi::connector::PassiveInputJack<DVBPacketHeader> receiveInput;
58 ppi::connector::ActiveOutputJack<EthernetPacket> receiveOutput;
60 EmulatedDVBReceiverInterfaceNet();
62 EmulatedDVBReceiverInterface & self();
63 EmulatedDVBReceiverInterface const & self() const;
66 /** \brief Internal: Transmit filter of emulated DVB interface */
67 class EmulatedDVBSenderTransmitFilter
68 : public ppi::module::Module
70 SENF_PPI_MODULE(EmulatedDVBSenderTransmitFilter);
72 ppi::connector::PassiveInput<EthernetPacket> input;
73 ppi::connector::ActiveOutput<DVBPacketHeader> output;
75 explicit EmulatedDVBSenderTransmitFilter(EmulatedDVBSenderInterface & iface);
80 EmulatedDVBSenderInterface & iface_;
83 /** \brief Internal: Internal PPI Network of emulated DVBSender interface */
84 struct EmulatedDVBSenderInterfaceNet
88 EmulatedDVBSenderTransmitFilter transmitFilter_;
90 //-/////////////////////////////////////////////////////////////////////////////////////////
92 ppi::connector::PassiveInputJack<EthernetPacket> transmitInput;
93 ppi::connector::ActiveOutputJack<DVBPacketHeader> transmitOutput;
95 EmulatedDVBSenderInterfaceNet();
97 EmulatedDVBSenderInterface & self();
98 EmulatedDVBSenderInterface const & self() const;
103 //-/////////////////////////////////////////////////////////////////////////////////////////////////
110 // comment-column: 40
111 // c-file-style: "senf"
112 // indent-tabs-mode: nil
113 // ispell-local-dictionary: "american"
114 // compile-command: "scons -u test"