예제 #1
0
 void _serialize(std::iostream &fs, serialization_context &context) {
   assert(target > 0);
   assert(context.ss.objects.count(target) > 0);
   fs << target << " ";
   target = 0;
   assert(fs.good());
   context.is_leaf = false;
 }
예제 #2
0
파일: dag_reader.cpp 프로젝트: baharev/asol
void grab_content(const char* file_name, std::iostream& in) {

	parser p(file_name);

	interpreter_DAG ipt(p.get_problem_representation(), in);

	if (!in.good())
		error("unexpected error");
}
예제 #3
0
 void _deserialize(std::iostream &fs, serialization_context &context) {
   assert(target == 0);
   ss = &context.ss;
   fs >> target;
   assert(fs.good());
   assert(context.ss.objects.count(target) > 0);
   // We just created a new reference to this object and
   // invalidated the on-disk reference, so the total refcount
   // stays the same.
 }
예제 #4
0
template<class Key, class Value> void serialize(std::iostream &fs,
						serialization_context &context,
						std::map<Key, Value> &mp)
{
  fs << "map " << mp.size() << " {" << std::endl;
  assert(fs.good());
  for (auto it = mp.begin(); it != mp.end(); ++it) {
    fs << "  ";
    serialize(fs, context, it->first);
    fs << " -> ";
    serialize(fs, context, it->second);
    fs << std::endl;
  }
  fs << "}" << std::endl;
}
예제 #5
0
template<class Key, class Value> void deserialize(std::iostream &fs,
						  serialization_context &context,
						  std::map<Key, Value> &mp)
{
  std::string dummy;
  int size = 0;
  fs >> dummy >> size >> dummy;
  assert(fs.good());
  for (int i = 0; i < size; i++) {
    Key k;
    Value v;
    deserialize(fs, context, k);
    fs >> dummy;
    deserialize(fs, context, v);
    mp[k] = v;
  }
  fs >> dummy;
}
예제 #6
0
std::string StringUtilities::GetAsString(std::iostream& i_stream)
{
	int length;
	char* p_buffer;
	
	// get length of file:
	i_stream.seekg (0, std::iostream::end);
	length = static_cast<int>(i_stream.tellg());
	i_stream.seekg (0, std::iostream::beg);

	// allocate memory:
	p_buffer = new char [length];
	//write file
	int pos = 0;
	while(i_stream.good())
	{
		p_buffer[pos] = i_stream.get();
		++pos;
	}

	std::string out(p_buffer, pos);
	delete[] p_buffer;
	return out;
}