cleanup stream output
This commit is contained in:
parent
92e14a2b5c
commit
5e9f957731
|
@ -57,9 +57,9 @@ void transport::iStream(PDU::Stream stream)
|
|||
* encoded in [ASCII].
|
||||
*/
|
||||
stream->read(acn_id, sizeof(acn_id));
|
||||
if (stream->gcount() != 12)
|
||||
if (stream->gcount() != sizeof(acn_id))
|
||||
return stream->setstate(std::ios_base::failbit);
|
||||
if (memcmp(acn_id, ACN_PACKET_IDENTIFIER, 12))
|
||||
if (memcmp(acn_id, ACN_PACKET_IDENTIFIER, sizeof(acn_id)))
|
||||
return stream->setstate(std::ios_base::failbit);
|
||||
|
||||
*stream >> length;
|
||||
|
@ -70,8 +70,12 @@ void transport::iStream(PDU::Stream stream)
|
|||
/**
|
||||
* @brief transport::oStream
|
||||
*/
|
||||
void transport::oStream(PDU::Stream) const
|
||||
void transport::oStream(PDU::Stream stream) const
|
||||
{
|
||||
stream->write(acn_id, sizeof(acn_id));
|
||||
*stream << static_cast<uint32_t>(root.streamSize());
|
||||
for ( const auto& pdu : *root.pdu )
|
||||
*stream << pdu;
|
||||
}
|
||||
|
||||
} // TCP
|
||||
|
|
|
@ -73,7 +73,7 @@ void transport::iStream(PDU::Stream stream)
|
|||
stream->read(acn_id, sizeof(acn_id));
|
||||
if (stream->gcount() != sizeof(acn_id))
|
||||
return stream->setstate(std::ios_base::failbit);
|
||||
if (memcmp(acn_id, ACN_PACKET_IDENTIFIER, 12) != 0) // memcmp returns 0 if matched
|
||||
if (memcmp(acn_id, ACN_PACKET_IDENTIFIER, sizeof(acn_id))) // memcmp returns 0 if matched
|
||||
return stream->setstate(std::ios_base::failbit);
|
||||
|
||||
|
||||
|
@ -98,7 +98,7 @@ void transport::oStream(PDU::Stream stream) const
|
|||
*stream << length;
|
||||
*stream << postamble_size;
|
||||
stream->write(acn_id, sizeof(acn_id));
|
||||
for ( auto& pdu : *root.pdu )
|
||||
for ( const auto& pdu : *root.pdu )
|
||||
*stream << pdu;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,18 +29,6 @@
|
|||
namespace SACN {
|
||||
namespace EXTENDED {
|
||||
|
||||
/**
|
||||
* @brief frame_sync_header::streamSize
|
||||
* @return
|
||||
*/
|
||||
size_t sync_header::streamSize() const
|
||||
{
|
||||
return sizeof(sequence_number)
|
||||
+ sizeof(sync_address)
|
||||
+ sizeof(reserved);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief frame_sync_header::iStream
|
||||
* @param stream
|
||||
|
@ -49,9 +37,7 @@ void sync_header::iStream(ACN::PDU::Stream stream)
|
|||
{
|
||||
*stream >> sequence_number;
|
||||
*stream >> sync_address;
|
||||
stream->read(reserved, sizeof(reserved));
|
||||
if (stream->gcount() != sizeof(reserved))
|
||||
return stream->setstate(std::ios_base::failbit);
|
||||
*stream >> reserved;
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,20 +45,11 @@ void sync_header::iStream(ACN::PDU::Stream stream)
|
|||
* @brief sync_header::oStream
|
||||
* @return
|
||||
*/
|
||||
void sync_header::oStream(ACN::PDU::Stream) const
|
||||
void sync_header::oStream(ACN::PDU::Stream stream) const
|
||||
{
|
||||
/// TODO: write header to stream
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief discovery_header::streamSize
|
||||
* @return
|
||||
*/
|
||||
size_t discovery_header::streamSize() const
|
||||
{
|
||||
return sizeof(source_name)
|
||||
+ sizeof(reserved);
|
||||
*stream << sequence_number;
|
||||
*stream << sync_address;
|
||||
*stream << reserved;
|
||||
}
|
||||
|
||||
|
||||
|
@ -82,12 +59,8 @@ size_t discovery_header::streamSize() const
|
|||
*/
|
||||
void discovery_header::iStream(ACN::PDU::Stream stream)
|
||||
{
|
||||
stream->read(source_name, sizeof(source_name));
|
||||
if (stream->gcount() != sizeof(source_name))
|
||||
return stream->setstate(std::ios_base::failbit);
|
||||
stream->read(reserved, sizeof(reserved));
|
||||
if (stream->gcount() != sizeof(reserved))
|
||||
return stream->setstate(std::ios_base::failbit);
|
||||
stream->readString(source_name, 64);
|
||||
*stream >> reserved;
|
||||
}
|
||||
|
||||
|
||||
|
@ -95,9 +68,10 @@ void discovery_header::iStream(ACN::PDU::Stream stream)
|
|||
* @brief discovery_header::oStream
|
||||
* @return
|
||||
*/
|
||||
void discovery_header::oStream(ACN::PDU::Stream) const
|
||||
void discovery_header::oStream(ACN::PDU::Stream stream) const
|
||||
{
|
||||
/// TODO: write header to stream
|
||||
stream->writeString(source_name, 64);
|
||||
*stream << reserved;
|
||||
}
|
||||
|
||||
|
||||
|
@ -129,17 +103,6 @@ void Pdu::iStream(ACN::PDU::Stream stream)
|
|||
|
||||
namespace DISCOVERY {
|
||||
|
||||
/**
|
||||
* @brief discovery_list_header::streamSize
|
||||
* @return
|
||||
*/
|
||||
size_t discovery_list_header::streamSize() const
|
||||
{
|
||||
return sizeof(page)
|
||||
+ sizeof(last_page);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief discovery_list_header::iStream
|
||||
* @param stream
|
||||
|
@ -155,9 +118,10 @@ void discovery_list_header::iStream(ACN::PDU::Stream stream)
|
|||
* @brief discovery_list_header::oStream
|
||||
* @return
|
||||
*/
|
||||
void discovery_list_header::oStream(ACN::PDU::Stream) const
|
||||
void discovery_list_header::oStream(ACN::PDU::Stream stream) const
|
||||
{
|
||||
/// TODO: write header to stream
|
||||
*stream << page;
|
||||
*stream << last_page;
|
||||
}
|
||||
|
||||
|
||||
|
@ -169,9 +133,8 @@ void discovery_list_data::iStream(ACN::PDU::Stream stream)
|
|||
{
|
||||
while (stream->good())
|
||||
{
|
||||
auto f = discoveredUniverse();
|
||||
*stream >> f.universe;
|
||||
found.push_back(f);
|
||||
found.emplace_back(discoveredUniverse());
|
||||
*stream >> found.back().universe;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -215,7 +178,7 @@ void Pdu::iStream(ACN::PDU::Stream stream)
|
|||
for ( auto & f : data->found )
|
||||
{
|
||||
f.source = root_header->cid;
|
||||
f.description = std::string((char*)frame_header->source_name);
|
||||
f.description = frame_header->source_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,11 +39,11 @@ struct sync_header
|
|||
{
|
||||
uint8_t sequence_number;
|
||||
uint16_t sync_address;
|
||||
uint8_t reserved[2];
|
||||
uint16_t reserved;
|
||||
|
||||
size_t streamSize() const override;
|
||||
void iStream(ACN::PDU::Stream) override;
|
||||
void oStream(ACN::PDU::Stream) const override;
|
||||
size_t streamSize() const override { return 5; }
|
||||
void iStream(ACN::PDU::Stream) override;
|
||||
void oStream(ACN::PDU::Stream) const override;
|
||||
};
|
||||
|
||||
|
||||
|
@ -53,12 +53,12 @@ struct sync_header
|
|||
struct discovery_header
|
||||
: ACN::PDU::pdu_header
|
||||
{
|
||||
uint8_t source_name[64];
|
||||
uint8_t reserved[4];
|
||||
std::string source_name;
|
||||
uint32_t reserved;
|
||||
|
||||
size_t streamSize() const override;
|
||||
void iStream(ACN::PDU::Stream) override;
|
||||
void oStream(ACN::PDU::Stream) const override;
|
||||
size_t streamSize() const override { return 68; }
|
||||
void iStream(ACN::PDU::Stream) override;
|
||||
void oStream(ACN::PDU::Stream) const override;
|
||||
};
|
||||
|
||||
|
||||
|
@ -85,9 +85,9 @@ struct discovery_list_header
|
|||
uint8_t page;
|
||||
uint8_t last_page;
|
||||
|
||||
size_t streamSize() const override;
|
||||
void iStream(ACN::PDU::Stream) override;
|
||||
void oStream(ACN::PDU::Stream) const override;
|
||||
size_t streamSize() const override { return 2; }
|
||||
void iStream(ACN::PDU::Stream) override;
|
||||
void oStream(ACN::PDU::Stream) const override;
|
||||
};
|
||||
|
||||
|
||||
|
@ -112,9 +112,9 @@ struct discovery_list_data
|
|||
{
|
||||
std::vector<discoveredUniverse> found;
|
||||
|
||||
size_t streamSize() const override { return found.size(); }
|
||||
void iStream(ACN::PDU::Stream) override;
|
||||
void oStream(ACN::PDU::Stream) const override;
|
||||
size_t streamSize() const override { return 2 * found.size(); }
|
||||
void iStream(ACN::PDU::Stream) override;
|
||||
void oStream(ACN::PDU::Stream) const override;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue