pdu block members are owned by the block and do not require separate memory management.
This commit is contained in:
parent
0c442b74a2
commit
7315070462
|
@ -85,18 +85,18 @@ struct Block
|
|||
/**
|
||||
* @brief member Messages of this block
|
||||
*/
|
||||
std::shared_ptr<std::vector<Message<T>>> pdu = std::make_shared<std::vector<Message<T>>>();
|
||||
std::vector<Message<T>> pdu;
|
||||
/**
|
||||
* @brief setParent
|
||||
* @param parent
|
||||
*/
|
||||
void setParent(Message<Pdu> parent) {
|
||||
for (auto & p : *pdu)
|
||||
for (auto &p : pdu)
|
||||
p->setParent(parent);
|
||||
}
|
||||
size_t streamSize() const override {
|
||||
size_t s = 0;
|
||||
for (const auto & child : *pdu)
|
||||
for (const auto &child : pdu)
|
||||
s += child->streamSize();
|
||||
return s;
|
||||
}
|
||||
|
@ -108,13 +108,13 @@ struct Block
|
|||
break;
|
||||
if (p->stream()->fail()) // pdu buffer failed
|
||||
continue;
|
||||
if (!pdu->empty()) // set inheritee
|
||||
p->setInherit(pdu->back());
|
||||
pdu->push_back(p); // add to block
|
||||
if (!pdu.empty()) // set inheritee
|
||||
p->setInherit(pdu.back());
|
||||
pdu.push_back(p); // add to block
|
||||
}
|
||||
}
|
||||
void oStream(Stream s) const override {
|
||||
for (const auto & child : *pdu)
|
||||
for (const auto &child : pdu)
|
||||
child->oStream(s);
|
||||
};
|
||||
};
|
||||
|
|
|
@ -57,7 +57,7 @@ void Component::UdpPayloadReceiver(PDU::Stream stream) const
|
|||
*stream >> transport;
|
||||
|
||||
/// The RLP PDU Block will contain only suscessfully read PDU
|
||||
for(auto const &root : *transport.root.pdu)
|
||||
for(auto const &root : transport.root.pdu)
|
||||
RlpReceiver(root);
|
||||
}
|
||||
|
||||
|
@ -93,7 +93,7 @@ void Component::rlpSendUdp (const uint32_t vector,
|
|||
|
||||
/// Adds the PDU to the root block of the EPI 17 tranport format.
|
||||
UDP::transport transport(true);
|
||||
transport.root.pdu->push_back(rlp);
|
||||
transport.root.pdu.push_back(rlp);
|
||||
|
||||
/// Fills an output stream with the transported PDU
|
||||
size_t length = transport.streamSize();
|
||||
|
@ -117,7 +117,7 @@ void Component::TcpPacketReceiver(PDU::Stream stream) const
|
|||
*stream >> transport;
|
||||
|
||||
/// The RLP PDU Block will only contain suscessfully read PDU
|
||||
for(auto const &root : *transport.root.pdu)
|
||||
for(const auto &root : transport.root.pdu)
|
||||
RlpReceiver(root);
|
||||
}
|
||||
|
||||
|
@ -153,7 +153,7 @@ void Component::rlpSendTcp (const uint32_t vector,
|
|||
|
||||
/// Adds the PDU to the root block of the EPI 33 tranport format.
|
||||
TCP::transport transport(true);
|
||||
transport.root.pdu->push_back(rlp);
|
||||
transport.root.pdu.push_back(rlp);
|
||||
|
||||
/// Fills an output stream with the transported PDU
|
||||
size_t length = transport.streamSize();
|
||||
|
|
|
@ -54,7 +54,7 @@ void Leader::SdtReceiver(PDU::Message<RLP::Pdu> root)
|
|||
root->createDataBlock<SDT::Pdu>();
|
||||
auto block = std::static_pointer_cast<PDU::Block<SDT::Pdu>>(root->data());
|
||||
|
||||
for(auto const &sdt : *block->pdu) {
|
||||
for(const auto &sdt : block->pdu) {
|
||||
switch(sdt->vector()) {
|
||||
/// \todo handle SDT
|
||||
default:
|
||||
|
|
|
@ -50,7 +50,7 @@ void Broker::rlpBrokerReceiver(ACN::PDU::Message<ACN::RLP::Pdu> root)
|
|||
{
|
||||
root->createDataBlock<BrokerProtocol::Pdu>();
|
||||
auto block = std::static_pointer_cast<ACN::PDU::Block<BrokerProtocol::Pdu>>(root->data());
|
||||
for(auto const &frame : *block->pdu)
|
||||
for(const auto &frame : block->pdu)
|
||||
{
|
||||
switch(frame->vector()) {
|
||||
case VECTOR_BROKER_CONNECT:
|
||||
|
|
|
@ -54,7 +54,7 @@ void Implementation::rlpLlrpReceiver(ACN::PDU::Message<ACN::RLP::Pdu> root)
|
|||
root->createDataBlock<LLRP::Pdu>();
|
||||
|
||||
auto block = std::static_pointer_cast<ACN::PDU::Block<LLRP::Pdu>>(root->data());
|
||||
for(auto const &frame : *block->pdu)
|
||||
for(const auto &frame : block->pdu)
|
||||
LLRP::Target::receiveLLRP(frame);
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ void Implementation::rlpEptReceiver(ACN::PDU::Message<ACN::RLP::Pdu> root)
|
|||
root->createDataBlock<EPT::Pdu>();
|
||||
|
||||
auto block = std::static_pointer_cast<ACN::PDU::Block<EPT::Pdu>>(root->data());
|
||||
for(auto const &frame : *block->pdu)
|
||||
for(const auto &frame : block->pdu)
|
||||
EPT::Client::receiveEPT(frame);
|
||||
}
|
||||
|
||||
|
|
|
@ -81,24 +81,24 @@ void Pdu::iStream(ACN::PDU::Stream stream)
|
|||
{
|
||||
auto block = ACN::PDU::Block<ProbeRequest::Pdu>();
|
||||
*stream_ >> block;
|
||||
if (!block.pdu->empty())
|
||||
payload->child = block.pdu->front();
|
||||
if (!block.pdu.empty())
|
||||
payload->child = block.pdu.front();
|
||||
}
|
||||
break;
|
||||
case VECTOR_LLRP_PROBE_REPLY:
|
||||
{
|
||||
auto block = ACN::PDU::Block<ProbeReply::Pdu>();
|
||||
*stream_ >> block;
|
||||
if (!block.pdu->empty())
|
||||
payload->child = block.pdu->front();
|
||||
if (!block.pdu.empty())
|
||||
payload->child = block.pdu.front();
|
||||
}
|
||||
break;
|
||||
case VECTOR_LLRP_RDM_CMD:
|
||||
{
|
||||
auto block = ACN::PDU::Block<RPT::COMMAND::Pdu>();
|
||||
*stream_ >> block;
|
||||
if (!block.pdu->empty())
|
||||
payload->child = block.pdu->front();
|
||||
if (!block.pdu.empty())
|
||||
payload->child = block.pdu.front();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -52,7 +52,7 @@ void Manager::rlpLlrpReceiver(ACN::PDU::Message<ACN::RLP::Pdu> root)
|
|||
root->createDataBlock<LLRP::Pdu>();
|
||||
|
||||
auto block = std::static_pointer_cast<ACN::PDU::Block<LLRP::Pdu>>(root->data());
|
||||
for(auto const &frame : *block->pdu)
|
||||
for(auto const &frame : block->pdu)
|
||||
{
|
||||
auto data = std::static_pointer_cast<llrp_data>(frame->data());
|
||||
switch (frame->vector())
|
||||
|
|
|
@ -152,7 +152,7 @@ void Receiver::dataReceiver(ACN::PDU::Message<ACN::RLP::Pdu> root)
|
|||
#else
|
||||
auto block = std::static_pointer_cast<ACN::PDU::Block<DATA::Pdu>>(root->data());
|
||||
#endif
|
||||
for(auto const &frame : *block->pdu)
|
||||
for(const auto &frame : block->pdu)
|
||||
{
|
||||
/// > \cite sACN 6.2.1 E1.31 Data Packet: Vector
|
||||
/// >
|
||||
|
@ -187,7 +187,7 @@ void Receiver::extendedReceiver(ACN::PDU::Message<ACN::RLP::Pdu> root)
|
|||
#else
|
||||
auto block = std::static_pointer_cast<ACN::PDU::Block<EXTENDED::Pdu>>(root->data());
|
||||
#endif
|
||||
for(auto const &frame : *block->pdu)
|
||||
for(const auto &frame : block->pdu)
|
||||
{
|
||||
switch(frame->vector()) {
|
||||
/// \cite sACN 6.3 E1.31 Synchronization Packet Framing Layer
|
||||
|
@ -285,13 +285,13 @@ void Receiver::dataFrameHandler(ACN::PDU::Message<DATA::Pdu> frame)
|
|||
#else
|
||||
auto block = std::static_pointer_cast<ACN::PDU::Block<ACN::DMP::Pdu>>(frame->data());
|
||||
#endif
|
||||
if (!block->pdu->empty())
|
||||
if (!block->pdu.empty())
|
||||
{
|
||||
#ifdef RTTI_ENABLED
|
||||
auto dmp = std::dynamic_pointer_cast<ACN::DMP::Pdu>(block->pdu->front());
|
||||
auto dmp = std::dynamic_pointer_cast<ACN::DMP::Pdu>(block->pdu.front());
|
||||
auto list = std::dynamic_pointer_cast<ACN::DMP::address_pair_list>(dmp->data());
|
||||
#else
|
||||
auto dmp = std::static_pointer_cast<ACN::DMP::Pdu>(block->pdu->front());
|
||||
auto dmp = std::static_pointer_cast<ACN::DMP::Pdu>(block->pdu.front());
|
||||
auto list = std::static_pointer_cast<ACN::DMP::address_pair_list>(dmp->data());
|
||||
#endif
|
||||
if (!list->properties.empty())
|
||||
|
@ -357,7 +357,7 @@ void Receiver::discoveryFrameHandler(ACN::PDU::Message<EXTENDED::Pdu> frame) {
|
|||
#else
|
||||
auto block = std::static_pointer_cast<ACN::PDU::Block<EXTENDED::DISCOVERY::Pdu>>(frame->data());
|
||||
#endif
|
||||
for(auto const &pdu : *block->pdu)
|
||||
for(const auto &pdu : block->pdu)
|
||||
{
|
||||
/// > \cite sACN 8 Universe Discovery Layer
|
||||
/// >
|
||||
|
|
Loading…
Reference in New Issue