示例#1
0
	virtual source_result read_next(size_t amount = 0)
	{
		sassert(pull);

		auto s = drive();
		if (s == source_result::ok)
		{
			auto bucket = std::move(cur_out);
			prepare_out();
			return source_result(std::move(bucket));
		}

		return source_result(s);
	}
示例#2
0
	virtual source_result read_next(size_t amount = 0)
	{
		if (!f)
			return std::unique_ptr<bucket_data_mem>();

		unique_ptr<bucket_data_mem> r(bucket_data_mem::create(4096));

		auto read_bytes = std::fread(r->begin(), 1, 4096, f);
		if(read_bytes == 0)
			return source_result(source_result::eos);

		r->size_ = read_bytes;
		return source_result(std::move(r));
	}