Bug #484

Converters for Fundamental Types are not Implemented [C++]

Added by J. Moringen over 12 years ago. Updated almost 8 years ago.

Status:ResolvedStart date:08/08/2011
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:C++
Target version:rsb-0.15

Description

Despite what this description suggests.

Seemingly most important: double (see #606).

Progress:

Wire Schema String Designator Converter
No value "void" rsb::converter::VoidConverter
Double precision float "double" rsb::converter::FloatingPointConverter<double>
Single precision float "float" rsb::converter::FloatingPointConverter<float>
32 bit signed integer "int32" rsb::converter::IntegerConverter<int32_t>
64 bit signed integer "int64" rsb::converter::IntegerConverter<int64_t>
32 bit unsigned integer "uint32" rsb::converter::IntegerConverter<uint32_t>
64 bit unsigned integer "uint64" rsb::converter::IntegerConverter<uint64_t>
bool "bool" rsb::converter::BoolConverter
ASCII string "ascii-string"
UTF-8 string "utf-8-string" rsb::converter::StringConverter
Sequence of bytes "bytes" rsb::converter::ByteArrayConverter
Scope "scope" rsb::converter::ScopeConverter
Event ID ".rsb.protocol.EventId" rsb::converter::EventIdConverter

Associated revisions

Revision b27ed22f
Added by J. Moringen about 11 years ago

Changed bool encoding in src/rsb/converter/BoolConverter.cpp

refs #484

  • src/rsb/converter/BoolConverter.cpp (header): updated copyright
    (BoolConverter::serialize): store either 0 or 1
    (BoolConverter::deserialize): expected either 0 or 1
  • test/rsb/converter/DefaultConverterTest.cpp: cosmetic changes

Revision ebf823b0
Added by J. Wienke about 11 years ago

Backport: Add a converter for unit32.

refs #484

Revision 3dcfcf4a
Added by J. Wienke over 10 years ago

Added Int64converter.

refs #484

Revision b8090c7b
Added by J. Moringen almost 8 years ago

Mention C++ float and double converters in news.rst

refs #484

  • news.rst (RSB 0.14): mention new float and double converters that have
    been added to the C++ implementation

Revision d72d6440
Added by J. Moringen almost 8 years ago

Added double, float converter in src/rsb/converter/FloatConverter.{h,cpp}

refs #484

The new template class FloatConverter converts floating point values by
just grabbing the bit pattern from memory. To make this at least
slightly safe, a runtime_error is throw in the constructor unless

std::numeric_limits&lt;T&gt;::is_iec559

is true.

  • src/rsb/converter/FloatConverter.{h,cpp}: new files; contain
    implementation FloatConverter template class with specializations for
    float and double
  • src/rsb/converter/converters.cpp (registerDefaultConverters): register
    FloatConverter<float> and FloatConverter<double>
  • test/rsb/converter/DefaultConverterTest.cpp (header): updated copyright
    (FloatConverterTest): new test; roundtrip test for
    FloatConverter<float>
    (DoubleConverterTest): new test; roundtrip test for
    FloatConverter<double>
  • src/CMakeLists.txt: added files
    src/rsb/converter/FloatConverter.{h,cpp}

Revision 178f08b5
Added by J. Moringen almost 8 years ago

Floating point converters in src/rsb/converter/FloatingPointConverter.{h,cpp}

refs #484

The new template class FloatingPointConverter converts floating point
values by just grabbing the bit pattern from memory. To make this at
least slightly safe, a runtime_error is throw in the constructor unless

std::numeric_limits&lt;T&gt;::is_iec559

is true. Derived classes FloatConverter and DoubleConverter are provided
for convenience.

  • src/rsb/converter/FloatingPointConverter.{h,cpp}: new files; contain
    FloatingPointConverter template class with specializations
    FloatConverter and DoubleConverter for float and double respectively
  • src/rsb/converter/converters.cpp (registerDefaultConverters): register
    FloatConverter and DoubleConverter
  • test/rsb/converter/DefaultConverterTest.cpp (header): updated copyright
    (FloatConverterTest): new test; roundtrip test for FloatConverter
    (DoubleConverterTest): new test; roundtrip test for DoubleConverter
  • src/CMakeLists.txt: added files
    src/rsb/converter/FloatingPointConverter.{h,cpp}

Revision 9aa1f5c4
Added by J. Moringen almost 8 years ago

Backport: Floating point converters in src/rsb/converter/FloatingPointConverter.{h,cpp}

refs #484

The new template class FloatingPointConverter converts floating point
values by just grabbing the bit pattern from memory. To make this at
least slightly safe, a runtime_error is throw in the constructor unless

std::numeric_limits&lt;T&gt;::is_iec559

is true. Derived classes FloatConverter and DoubleConverter are provided
for convenience.

  • src/rsb/converter/FloatingPointConverter.{h,cpp}: new files; contain
    FloatingPointConverter template class with specializations
    FloatConverter and DoubleConverter for float and double respectively
  • src/rsb/converter/converters.cpp (registerDefaultConverters): register
    FloatConverter and DoubleConverter
  • test/rsb/converter/DefaultConverterTest.cpp (header): updated copyright
    (FloatConverterTest): new test; roundtrip test for FloatConverter
    (DoubleConverterTest): new test; roundtrip test for DoubleConverter
  • src/CMakeLists.txt: added files
    src/rsb/converter/FloatingPointConverter.{h,cpp}

(cherry picked from commit 178f08b5819ff5f7969f7ad12bdd599d67abe78d)

Revision f0667f10
Added by J. Moringen almost 8 years ago

Added generic IntegerConverter in src/rsb/converter/IntegerConverter.{h,cpp}

refs #484

  • src/rsb/converter/{Int64,Uint32,Uint64}Converter.{h,cpp}: removed; no
    longer needed
  • src/rsb/converter/IntegerConverter.{h,cpp}: new files; interface and
    implementation of generic integer converter
  • src/rsb/converter/converters.cpp: adjusted includes
  • test/rsb/converter/DefaultConverterTest.cpp: likewise
  • src/CMakeLists.txt: removed files
    src/rsb/converter/{Int64,Uint32,Uint64}Converter.{h,cpp}; added files
    src/rsb/converter/IntegerConverter.{h,cpp}

Revision 08cdd6b4
Added by J. Moringen almost 8 years ago

Added generic IntegerConverter in src/rsb/converter/IntegerConverter.{h,cpp}

refs #484

  • src/rsb/converter/{Int64,Uint32,Uint64}Converter.{h,cpp}: removed; no
    longer needed
  • src/rsb/converter/IntegerConverter.{h,cpp}: new files; interface and
    implementation of generic integer converter
  • src/rsb/converter/converters.cpp: adjusted includes
  • test/rsb/converter/DefaultConverterTest.cpp: likewise
  • src/CMakeLists.txt: removed files
    src/rsb/converter/{Int64,Uint32,Uint64}Converter.{h,cpp}; added files
    src/rsb/converter/IntegerConverter.{h,cpp}

Revision 8c26dc79
Added by J. Moringen almost 8 years ago

Added ScopeConverter class in src/rsb/converter/ScopeConverter.{h,cpp}

fixes #484

  • src/rsb/converter/ScopeConverter.{h,cpp}: new file; interface and
    implementation of ScopeConverter class
  • src/rsb/converter/converters.cpp (registerDefaultConverters): register
    ScopeConverter
  • test/rsb/converter/DefaultConverterTest.cpp (ScopeConverterTest): new
    test; for ScopeConverter class
  • src/CMakeLists.txt: added files
    src/rsb/converter/ScopeConverter.{h,cpp}

Revision 9e228d39
Added by J. Moringen almost 8 years ago

Mention new C++ IntegerConverter in news.rst

refs #484

  • news.rst (RSB 0.15): mention new C++ IntegerConverter

Revision 3eaefa9f
Added by J. Moringen almost 8 years ago

Mention new C++ ScopeConverter in news.rst

refs #484

  • news.rst (RSB 0.15): mention new C++ ScopeConverter

History

#1 Updated by J. Moringen over 12 years ago

  • Priority changed from Normal to High

#2 Updated by J. Moringen over 12 years ago

  • Description updated (diff)

#3 Updated by J. Moringen about 11 years ago

  • % Done changed from 0 to 50

#4 Updated by J. Moringen over 10 years ago

  • Target version changed from rsb-0.10 to rsb-0.11

#5 Updated by S. Wrede over 9 years ago

  • Priority changed from High to Normal

#6 Updated by J. Wienke over 9 years ago

  • Target version changed from rsb-0.11 to rsb-0.12

#7 Updated by J. Moringen about 9 years ago

  • Status changed from New to In Progress

#8 Updated by J. Wienke almost 9 years ago

  • Target version changed from rsb-0.12 to rsb-0.13

#9 Updated by J. Moringen about 8 years ago

  • Target version changed from rsb-0.13 to rsb-0.14

#10 Updated by J. Moringen almost 8 years ago

  • Target version changed from rsb-0.14 to rsb-0.15

#11 Updated by J. Moringen almost 8 years ago

  • % Done changed from 50 to 80

#12 Updated by J. Moringen almost 8 years ago

  • Description updated (diff)
  • Assignee set to J. Moringen

#13 Updated by J. Moringen almost 8 years ago

  • Description updated (diff)

#14 Updated by J. Moringen almost 8 years ago

  • Description updated (diff)

#15 Updated by J. Moringen almost 8 years ago

  • Subject changed from Converters for Fundamental Types are not Implemented to Converters for Fundamental Types are not Implemented [C++]

#16 Updated by J. Moringen almost 8 years ago

  • Description updated (diff)
  • % Done changed from 80 to 90

#17 Updated by J. Moringen almost 8 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

#18 Updated by J. Moringen almost 8 years ago

  • Description updated (diff)

Also available in: Atom PDF