23 #ifndef CPN_PACKETENCODER_H
24 #define CPN_PAcKETENCODER_H
27 #include "common_priv.h"
43 template<
typename Queue_t>
46 std::vector<iovec> iovs;
49 iovs.push_back(header);
50 for (
unsigned i = 0; i < queue.NumChannels(); ++i) {
52 iov.iov_base =
const_cast<void*
>(queue.GetRawDequeuePtr(packet.
Count(), i));
54 iov.iov_len = packet.
Count();
57 WriteBytes(&iovs[0], iovs.size());
58 queue.Dequeue(packet.
Count());
61 void SendPacket(
const Packet &packet);
62 void SendPacket(
const Packet &packet,
void *data);
64 virtual void WriteBytes(
const iovec *iov,
unsigned iovcnt) = 0;
void SendEnqueue(const Packet &packet, Queue_t &queue)
PacketType_t Type() const