Types » History » Version 4

« Previous - Version 4/13 (diff) - Next » - Current version
J. Moringen, 03/18/2011 02:36 PM
added explanation


Types

Wire Schema <-> Programming Language Types Mapping

This section documents the mapping between wire schemas, designators of which are included in RSB's notifications, and corresponding programming language types. The values that are actually contained in notifications are called "String Designators" of wire schemas here.

Fundamental Types

For "fundamental" types, the mapping is based on the type mapping used by Google's protocol buffers.

Wire Schema String Designator C++ Python Java Common Lisp
Double precision float "double" double double double-float
Single precision float "float" float float float single-float
32 bit signed integer "int32" int32 int (signed-byte 32)
64 bit signed integer "int64" int64 long (signed-byte 64)
32 bit unsigned integer "uint32" uint32 int (unsigned-byte 32)
64 bit unsigned integer "uint64" uint64 long (unsigned-byte 64)
bool "bool" bool bool boolean boolean
UTF-8 string "string" string str String string
Sequence of Bytes "bytes" string ByteString (simple-array (unsigned-byte 8) (*))

Structured Data

This section is just a proposal.

For structured data types using more sophisticated serialization mechanisms, the resulting wire schemas could be designated by something like MECHANISM:MECHANISM-SPECIFIC-DESIGNATOR. For example

protocol-buffer:.rst.ImageMessage
boost_serialization:sound::pcm::Buffer