std::size_t RawSize<Variant>(const Variant& var)
    {
      const uint8_t encodingMask = 0;
      std::size_t size = RawSize(encodingMask);
      if (var.IsNul())
      {
        return size;
      }

      std::size_t valueSize = 0;
      if (var.IsArray())
      {
        ApplyToVariantValue(var.Type, var.Value, RawValueSizeArray, valueSize);
      }
      else
      {
        ApplyToVariantValue(var.Type, var.Value, RawValueSize, valueSize);
      }
      size += valueSize;
      if (!var.Dimensions.empty())
      {
        size += RawSizeContainer(var.Dimensions);
      }

      return size;
    }
 std::size_t RawSize<DataValue>(const DataValue& val)
 {
   std::size_t size = RawSize(val.Encoding);
   if (val.Encoding & DATA_VALUE)
   {
     size += RawSize(val.Value);
   }
   if (val.Encoding & DATA_VALUE_STATUS_CODE)
   {
     size += RawSize(val.Status);
   }
   if (val.Encoding & DATA_VALUE_SOURCE_TIMESTAMP)
   {
     size += RawSize(val.SourceTimestamp);
   }
   if (val.Encoding & DATA_VALUE_Server_TIMESTAMP)
   {
     size += RawSize(val.ServerTimestamp);
   }
   if (val.Encoding & DATA_VALUE_SOURCE_PICOSECONDS)
   {
     size += RawSize(val.SourcePicoseconds);
   }
   if (val.Encoding & DATA_VALUE_Server_PICOSECONDS)
   {
     size += RawSize(val.ServerPicoseconds);
   }
   return size;
 }
 std::size_t RawSize<SessionParameters>(const SessionParameters& params)
 {
   return RawSize(params.ClientDescription) +
     RawSize(params.ServerURI) +
     RawSize(params.EndpointURL) +
     RawSize(params.SessionName) +
     RawSize(params.ClientNonce) +
     RawSize(params.ClientCertificate) +
     sizeof(params.RequestedSessionTimeout) +
     sizeof(params.MaxResponseMessageSize);
 }
char* gstGeodeCollection::ToRaw(char* buf) const {
  int buff_size = RawSize();

  // passing NULL means we allocate space
  if (buf == NULL)
    buf = reinterpret_cast<char*>(malloc(buff_size * sizeof(char)));

  RecHeader *hdr = reinterpret_cast<RecHeader*>(buf);
  hdr->type = PrimType();
  hdr->count = NumParts();
  hdr->size = buff_size;                 // size of this object
  hdr->fid = 0;                          // feature id

  char *tbuf = buf + sizeof(RecHeader);
  for (GeodeList::const_iterator it = geodes_.begin();
           it != geodes_.end(); ++it) {
    (*it)->ToRaw(tbuf);
    tbuf += (*it)->RawSize();
  }

  return buf;
}
Exemple #5
0
std::size_t RawSize<ViewDescription>(const ViewDescription & desc)
{
  return RawSize(desc.Id) + RawSize(desc.Timestamp) + RawSize(desc.Version);
}
 std::size_t RawSize<AttributeValueID>(const AttributeValueID& attr)
 {
   return RawSize(attr.Node) + RawSize(attr.Attribute) + RawSize(attr.IndexRange) + RawSize(attr.DataEncoding);
 }
 std::size_t RawSize<UserIdentifyToken::UserNameStruct>(const UserIdentifyToken::UserNameStruct& uname)
 {
   return RawSize(uname.UserName) + RawSize(uname.Password) + RawSize(uname.EncryptionAlgorithm);
 }