示例#1
0
void fromValue(ValuePtr value,
	       int* type,
	       double* scalar,
	       ValueRangePtr** ranges,	
	       int* rangeLen,
	       StdStringPtr** strings,
	       int* stringsLen,
	       char** text,
	       int* textLen)
{
  Value_Type t = value->type();
  *type = (int) t;
  if (t == Value_Type_SCALAR)
    {
      *scalar = value->mutable_scalar()->value();
    }
  else if (t == Value_Type_RANGES)
    {
      *rangeLen = value->mutable_ranges()->range_size();
      *ranges = value->mutable_ranges()->mutable_range()->mutable_data();
    }
  else if (t == Value_Type_SET)
    {
      *stringsLen = value->set().item_size();
      *strings = value->mutable_set()->mutable_item()->mutable_data();
    }
  else if (t == Value_Type_TEXT)
    {
      std::string* txt = value->mutable_text()->mutable_value();
      *text = (char*) txt->data();
      *textLen = txt->size();
    }
}