     }
   }
 
+  private func writeReal64( value:Double )
+  {
+    let bits = Double._BitsType( value )
+    writeInt32( Int(bits>>32) )
+    writeInt32( Int(bits) )
+  }
+
   private func writeString( value:String )
   {
     writeIntX( value.utf16.count )

    writeIntX( message_id )
  }

  func getString( name:String, default_value:String="" )->String
  {
    var result = default_value
    if let offset = entries[ name ]
    {
      position = offset
      switch (offset)
      {
        case DataType.STRING:
          result = readString()
        default:
          break
      }
      position = data.count
    }
    return result
  }

  func readByte()->Int
  {
    return (position < data.count) ?  Int(data[position++]) : 0
  }

  func readInt32()->Int

    writeByte( value )
  }

  private func writeInt64X( value:Int64 )
  {
    writeIntX( Int(value>>32) )
    writeIntX( Int(value) )
  }

  private func writeIntX( value:Int )
  {
    if (value >= -64 && value <= 127)
