メソッドを提供するストリームオブジェクトがGetBuffer()
ありGetBufferSize()
ます。GetBuffer
メソッドは生のポインターを返しますuint8_t
。このバッファを (値で) を期待する別のオブジェクトに渡したいですshared_array<uint8_t>
。私はブーストを使用しています(これはかなり新しいものです)。これが私が思いついたものです。
// relevant protos for a and b
void BClass::SetData(shared_array<uint8_t> data, size_t data_len);
uint8_t* AClass::GetBuffer(void);
size_t AClass::GetBufferSize(void);
AClass a;
BClass b;
shared_array<uint8_t> data = shared_array<uint8_t>(new uint8_t[a.GetBufferSize()]);
memcpy(data.get(), a.GetBuffer(), a.GetBufferSize());
b.SetData(data, a.GetBufferSize());
これをクリーンアップできるboostのmake_sharedに似たものがあるべきだと感じています。明らかな何かが欠けていますか?