Esempio n. 1
0
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();
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
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();
}
Esempio n. 4
0
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();
}
Esempio n. 5
0
unsigned char* Cvirtual_binary::write_start(size_t cb_d)
{
	if (size() != cb_d)
		assign(cb_d);
	return data_edit();
}