read/write directly to vector data
This commit is contained in:
parent
ca89b60e21
commit
681f659934
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue