unsigned char* Cvirtual_binary::write_start(size_t cb_d) { if (data() && size() == cb_d) return data_edit(); m_source = new Cvirtual_binary_source(const_memory_range(NULL, cb_d)); return data_edit(); }
byte* Cvirtual_binary::write_start(size_t cb_d) { if (data() && size() == cb_d) return data_edit(); if (m_source) m_source->detach(); m_source = new Cvirtual_binary_source(NULL, cb_d); return data_edit(); }
unsigned char* Cvirtual_binary::write_start(size_t cb_d) { if (data() && size() == cb_d) return data_edit(); #if BOOST_VERSION >= 104200 m_source = boost::make_shared<Cvirtual_binary_source>(const_memory_range(NULL, cb_d)); #else m_source.reset(new Cvirtual_binary_source(const_memory_range(NULL, cb_d))); #endif return data_edit(); }
void Cvirtual_binary::assign(data_ref v) { if (v.size()) { m_source = boost::make_shared<Cvirtual_binary_source>(v.size()); if (v.begin()) memcpy(data_edit(), v.data(), v.size()); } else m_source.reset(); }
unsigned char* Cvirtual_binary::write_start(size_t cb_d) { if (size() != cb_d) assign(cb_d); return data_edit(); }