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