1
0
Fork 0

read/write directly to vector data

This commit is contained in:
Kevin Matz 2021-09-01 12:32:04 -04:00
parent ca89b60e21
commit 681f659934
1 changed files with 6 additions and 9 deletions

View File

@ -153,16 +153,14 @@ void address_pair_list::iStream(PDU::Stream stream)
return stream->setstate(std::ios_base::failbit);
// Property Data
std::vector<uint8_t> pd;
std::copy(stream->data(), stream->data() + pr.count * pr.incriment,
std::back_inserter(pd));
stream->ignore(pd.size());
std::vector<uint8_t> pd(pr.count * pr.incriment);
stream->read(pd.data(), pd.size());
if (!stream->available())
stream->setstate(std::ios_base::eofbit);
// Property Fields
properties.push_back(address_data_pair(pr, pd));
properties.emplace_back(address_data_pair(pr, pd));
}
}
@ -173,11 +171,10 @@ void address_pair_list::iStream(PDU::Stream stream)
*/
void address_pair_list::oStream(PDU::Stream stream) const
{
for (const auto & [range, vect] : properties)
for (const auto & [pr, pd] : properties)
{
*stream << range;
for (uint8_t d : vect)
*stream << d;
*stream << pr;
stream->write(pd.data(), pd.size());
}
}