avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Heye Vöcking (JIRA) <j...@apache.org>
Subject [jira] [Created] (AVRO-1632) JsonEncoder in Avro C++ dosen't close braces
Date Mon, 19 Jan 2015 18:35:35 GMT
Heye Vöcking created AVRO-1632:
----------------------------------

             Summary: JsonEncoder in Avro C++ dosen't close braces
                 Key: AVRO-1632
                 URL: https://issues.apache.org/jira/browse/AVRO-1632
             Project: Avro
          Issue Type: Bug
          Components: c++
    Affects Versions: 1.7.7
         Environment: Ubuntu 12.04, gcc 4.6.4
            Reporter: Heye Vöcking


Please see the example.

Expected output is:
{noformat}
result: '{"re":100.23,"im":105.77}'
{noformat}
Actual output is:
{noformat}
result: '{"re":100.23,"im":105.77'
{noformat}

{code:title=json_encode_example.cc|borderStyle=solid}
#include <fstream>
#include <iostream>

#include <avro/Compiler.hh>
#include <avro/Encoder.hh>
#include <avro/Stream.hh>
#include <avro/ValidSchema.hh>

#include "cpx.hh"

int
main()
{
    static size_t CHUNK_SIZE = 8 * 1024;

    std::ifstream ifs("examples/cpx.json");

    avro::ValidSchema cpxSchema;
    avro::compileJsonSchema(ifs, cpxSchema);

    std::auto_ptr<avro::OutputStream> out = avro::memoryOutputStream(CHUNK_SIZE);
    avro::EncoderPtr e = avro::jsonEncoder(cpxSchema);
    e->init(*out);
    c::cpx c1;
    c1.re = 100.23;
    c1.im = 105.77;
    avro::encode(*e, c1);
    out->flush();
    std::cout << "out->byteCount(): " << out->byteCount() << std::endl;

    std::auto_ptr<avro::InputStream> in = avro::memoryInputStream(*out);
    avro::StreamReader streamReader(*in);
    uint8_t jsonBytes[CHUNK_SIZE];
    size_t length = CHUNK_SIZE;
    streamReader.readBytes(jsonBytes, length);
    std::cout << "in->byteCount(): " << in->byteCount() << std::endl;

    std::cout << "result: \'" << jsonBytes << "\'" << std::endl;
    for (size_t i = 0; i < 30; i += 1) {
        printf("jsonBytes[%02zu]: 0x%02X (%c)\n", i, (unsigned char) jsonBytes[i], jsonBytes[i]);
    }

    return 0;
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message