[ https://issues.apache.org/jira/browse/IGNITE-8718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16646387#comment-16646387 ]
Artem Budnikov commented on IGNITE-8718: ---------------------------------------- I think this should be documented in the API docs. > Documentation about using of the C++ BinaryWriter/BinaryReader should be > updated > -------------------------------------------------------------------------------- > > Key: IGNITE-8718 > URL: https://issues.apache.org/jira/browse/IGNITE-8718 > Project: Ignite > Issue Type: Improvement > Components: documentation > Affects Versions: 2.5 > Reporter: Andrey Aleksandrov > Assignee: Artem Budnikov > Priority: Major > Labels: c++ > Fix For: 2.7 > > > The usage that should be documented: > 1)In case if you get some writer from BinaryWriter then you started writing > session. Until method close will not be called for this writer you can't get > another writer. > > For example, next code isn't correct: > {code:java} > BinaryMapWriter<int64_t, int64_t> field1Writer = writer.WriteMap<int64_t, > int64_t>("field1", MapType::HASH_MAP); //here you start writing session > BinaryMapWriter<int64_t, int64_t> field2Writer = writer.WriteMap<int64_t, > int64_t>("field2", MapType::HASH_MAP); //here you start another writing > session - error > {code} > Should be: > > {code:java} > BinaryMapWriter<int64_t, int64_t> field1Writer = writer.WriteMap<int64_t, > int64_t>("field1", MapType::HASH_MAP); //here you start writing session > //do something > field1Writer.Close() //here you end writing session > BinaryMapWriter<int64_t, int64_t> field2Writer = writer.WriteMap<int64_t, > int64_t>("field2", MapType::HASH_MAP); //here you start another writing > session > //do something > field2Writer.Close() //here you end another writing session > {code} > > 2) In case if you get some reader from BinaryWriter then you started reading > session. Until something will not be read from this reader you can't get > another reader. > > For example, next code isn't correct: > > {code:java} > BinaryMapReader<int64_t, int64_t> field1Reader = reader.ReadMap<int64_t, > int64_t>("field1"); //start reading session > BinaryMapReader<int64_t, int64_t> field2Reader = reader.ReadMap<int64_t, > int64_t>("field2"); //start another read session - error > {code} > Should be for example: > {code:java} > BinaryMapReader<int64_t, int64_t> field1Reader = reader.ReadMap<int64_t, > int64_t>("field1"); //start reading session > ... > field1Reader.GetNext(key, val); //reading done > ... > BinaryMapReader<int64_t, int64_t> field2Reader = reader.ReadMap<int64_t, > int64_t>("field2"); //start another read session > ... > field2Reader.GetNext(key, val); //reading done > ...{code} > > > > In the case of the writer, it looks like expected. In case of the reader, it > looks a little bit confusing. > > These two behaviors should be described in the documentation as well. -- This message was sent by Atlassian JIRA (v7.6.3#76005)