Czesc.
Pisze serwer TCP w asio i mam problem z nastepujacym fragmentem:

bool tcp_connection::read_file(std::ofstream& filestream, long expected_size)
{
	std::size_t recv_bytes = 0;
	recv_bytes = boost::asio::read(socket_, boost::asio::buffer(filestream.rdbuf(), expected_size));
	return recv_bytes==expected_size;
}

Chce osiagnac efekt dzieki ktoremu funkcja read bedzie czytac bezposrednio do bufora pliku.

filestream to otwarty buffer pliku.
Blad wystepuje po kasowaniu zmiennej filestream z nadrzednej funckji:

	std::ofstream outfile (filename.c_str(), ios_base::out|ios_base::trunc|ios_base::binary);
	if(outfile.fail())
	{
		return;
	}
	owner_->read_file(outfile, iSize);
	outfile.close();

Wyglada to tak jakby buffer byl juz zmowlniony wczesniej? ale jak to mozliwe przeciez boost::buffer nie powinien zwalniac buffera? A jesli zwalnia jak temu zapobiec...
Pozdrawiam.