You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Igor Sapego (JIRA)" <ji...@apache.org> on 2016/07/22 15:51:20 UTC

[jira] [Commented] (IGNITE-3559) CPP: Review Ignite C++ API and provide list of breaking improvements that can be included in Ignite 2.0

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