You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Artem Budnikov (JIRA)" <ji...@apache.org> on 2018/10/11 12:54:00 UTC

[jira] [Commented] (IGNITE-8718) Documentation about using of the C++ BinaryWriter/BinaryReader should be updated

    [ 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)