[ 
https://issues.apache.org/jira/browse/IGNITE-3559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15389728#comment-15389728
 ] 

Igor Sapego commented on IGNITE-3559:
-------------------------------------

I've reviewed current API and here is the list of improvements that break 
backward compatibility:
1. Place different enums in separate namespaces or structs. [Explanation why is 
it a good thing to 
do.|http://stackoverflow.com/questions/7090130/enum-in-a-namespace].
2. Replace pointers with references in {{BinaryMapReader::GetNext}}.
3. Replace passing arguments by copy with passing by constant reference in 
{{BinaryWriter::WriteObject}} and {{BinaryRawWriter::WriteObject}} to avoid 
unnecessary copying.
4. For the {{BinaryType<T>}}: 
        - All methods should be 'static'.
        - Methods {{GetTypeName()}}, {{Read()}} and {{GetNull()}} should pass 
result to caller by reference argument and not by return value to avoid copying 
and temporary objects creation.
5. For the {{BinaryType<T*>}}: additionally to the mentioned above, remove 
field {{typ}} and add typedef for the non-pointer type instead.
6. For the method {{QueryCursor::GetAll}} add support for not only vectors but 
for any container. Consider using iterators (preferably) or template type for 
the container.
7. {{Cache}} class: the same issue as above. Methods {{ContainsKeys}}, 
{{GetAll}}, {{PutAll}}, {{LocalEvict}}, {{ClearAll}}, {{LocalClearAll}}, 
{{RemoveAll}}.
8. Everywhere: Replace {{IgniteError}} arguments passed as pointers with 
references.

These all are just proposals so they all are, of course, discussable.

> CPP: Review Ignite C++ API and provide list of breaking improvements that can 
> be included in Ignite 2.0
> -------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-3559
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3559
>             Project: Ignite
>          Issue Type: Task
>          Components: odbc
>    Affects Versions: 1.6
>            Reporter: Igor Sapego
>            Assignee: Igor Sapego
>             Fix For: 2.0
>
>
> As there is going to be Ignite 2.0 release soon, It is a good opportunity to 
> improve Ignite C++ API without the need to maintain backward compatibility. 
> Let's collect and discuss all the proposal for the changes in this task and 
> then create matching subtasks for all the accepted proposals.



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

Reply via email to