本文整理汇总了C++中ola::io::LoopbackDescriptor类的典型用法代码示例。如果您正苦于以下问题:C++ LoopbackDescriptor类的具体用法?C++ LoopbackDescriptor怎么用?C++ LoopbackDescriptor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LoopbackDescriptor类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setUp
void TCPTransportTest::setUp() {
ola::InitLogging(ola::OLA_LOG_DEBUG, ola::OLA_LOG_STDERR);
m_stream_ok = true;
m_pdus_received = 0;
m_localhost = IPV4SocketAddress::FromStringOrDie("127.0.0.1:9999");
// mock inflator
CID cid;
m_rx_callback.reset(NewCallback(this, &TCPTransportTest::PDUReceived));
m_inflator.reset(new MockInflator(m_cid, m_rx_callback.get()));
// transport to test
m_transport.reset(
new IncomingStreamTransport(m_inflator.get(), &m_loopback, m_localhost));
// SelectServer
m_ss.reset(new ola::io::SelectServer());
m_ss->RegisterSingleTimeout(
ABORT_TIMEOUT_IN_MS,
NewSingleCallback(this, &TCPTransportTest::FatalStop));
// loopback descriptor
OLA_ASSERT(m_loopback.Init());
m_loopback.SetOnClose(NewSingleCallback(this, &TCPTransportTest::Stop));
m_loopback.SetOnData(
NewCallback(this, &TCPTransportTest::Receive));
OLA_ASSERT(m_ss->AddReadDescriptor(&m_loopback));
}
示例2: testShortPreamble
/**
* Test a short preamble.
*/
void TCPTransportTest::testShortPreamble() {
uint8_t bogus_data[] = {
1, 2, 3, 4,
1, 2, 3, 4};
m_loopback.Send(bogus_data, sizeof(bogus_data));
m_ss->RunOnce(1, 0);
m_loopback.CloseClient();
m_ss->RunOnce(1, 0);
OLA_ASSERT(m_stream_ok);
OLA_ASSERT_EQ(0u, m_pdus_received);
}
示例3: testBadPreamble
/**
* Test bogus data, this should show up as an invalid stream
*/
void TCPTransportTest::testBadPreamble() {
uint8_t bogus_data[] = {
1, 2, 3, 4,
5, 0, 1, 0,
0, 4, 5, 6,
7, 8, 9, 0,
1, 2, 3, 4};
m_loopback.Send(bogus_data, sizeof(bogus_data));
m_ss->RunOnce(TimeInterval(1, 0));
m_loopback.CloseClient();
m_ss->RunOnce(TimeInterval(1, 0));
OLA_ASSERT_FALSE(m_stream_ok);
OLA_ASSERT_EQ(0u, m_pdus_received);
}
示例4: testSinglePDUBlock
/**
* Send a block of PDUs
*/
void TCPTransportTest::testSinglePDUBlock() {
SendPDUBlock(__LINE__);
m_ss->RunOnce(1, 0);
m_loopback.CloseClient();
m_ss->RunOnce(1, 0);
OLA_ASSERT(m_stream_ok);
OLA_ASSERT_EQ(3u, m_pdus_received);
}
示例5: SendPacket
void TCPTransportTest::SendPacket(const ola::testing::SourceLine &source_line,
IOStack *packet) {
IOQueue output;
packet->MoveToIOQueue(&output);
ola::testing::_FailIf(
source_line,
!m_loopback.Send(&output),
"Loopback send failed");
}
示例6: testSinglePDUBlock
/**
* Send a block of PDUs
*/
void TCPTransportTest::testSinglePDUBlock() {
SendPDUBlock(OLA_SOURCELINE());
m_ss->RunOnce(TimeInterval(1, 0));
m_loopback.CloseClient();
m_ss->RunOnce(TimeInterval(1, 0));
OLA_ASSERT(m_stream_ok);
OLA_ASSERT_EQ(3u, m_pdus_received);
}
示例7: testZeroLengthPDUBlock
/**
* Test a 0-length PDU block
*/
void TCPTransportTest::testZeroLengthPDUBlock() {
SendEmptyPDUBLock(__LINE__);
SendPDU(__LINE__);
m_ss->RunOnce(1, 0);
m_loopback.CloseClient();
m_ss->RunOnce(1, 0);
OLA_ASSERT(m_stream_ok);
OLA_ASSERT_EQ(1u, m_pdus_received);
}
示例8: testZeroLengthPDUBlock
/**
* Test a 0-length PDU block
*/
void TCPTransportTest::testZeroLengthPDUBlock() {
SendEmptyPDUBLock(OLA_SOURCELINE());
SendPDU(OLA_SOURCELINE());
m_ss->RunOnce(TimeInterval(1, 0));
m_loopback.CloseClient();
m_ss->RunOnce(TimeInterval(1, 0));
OLA_ASSERT(m_stream_ok);
OLA_ASSERT_EQ(1u, m_pdus_received);
}
示例9: SendPacket
void TCPTransportTest::SendPacket(const string &message, IOStack *packet) {
IOQueue output;
packet->MoveToIOQueue(&output);
OLA_ASSERT_TRUE_MSG(m_loopback.Send(&output), message);
}
示例10: tearDown
void TCPTransportTest::tearDown() {
// Close the loopback descriptor and drain the ss
m_loopback.Close();
m_ss->RunOnce(0, 0);
}