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

ASF GitHub Bot commented on IGNITE-1965:
----------------------------------------

GitHub user ptupitsyn opened a pull request:

    https://github.com/apache/ignite/pull/254

    IGNITE-1965 .NET: Introduce wrapper for enums, similar to "IBinaryObject".

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ptupitsyn/ignite ignite-1965

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/ignite/pull/254.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #254
    
----
commit 55a6bf25d0a5f48e0b9b571f3e16a8d7cac8cb69
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T12:44:11Z

    IGNITE-1964 .NET: Write enum type ID if possible.

commit 18353b540dabad20fea88dbef60f13f0281334e5
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T13:18:50Z

    wip tests

commit 12dd21846034c29a01037c4aa1ef3d927443bcfb
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T13:23:18Z

    wip tests

commit a962331c210511454f8c6e739e9a6e4cdbf52963
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T13:30:25Z

    Test created

commit 43839176408021519616929af81c323e094953b0
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T13:41:20Z

    Merge remote-tracking branch 'remotes/upstream/ignite-1282' into ignite-1964

commit bae0304659dda4fe98ec141394ba1affd45ab95e
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T13:54:12Z

    Fix test

commit 04fa262089e825fbb1831088b30e85fc6692ced8
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T14:02:47Z

    Cleanup

commit 6cba694b13326cc4ad84a42bf7c68425cd49c261
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T14:56:06Z

    IGNITE-1965 .NET: Introduce wrapper for enums, similar to "IBinaryObject".

commit 20be963f4efdd9e6b9c840fc2a9b41d13634164f
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T15:13:40Z

    refactor system type logic

commit 6f2184daf666bedb0a56d8347ebf5858f432bd7c
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T15:53:22Z

    IGNITE-1965 .NET: Introduce wrapper for enums, similar to "IBinaryObject".

commit 49d134d40a91839d95cd3fcb9c5b8e76cf60483d
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T15:59:21Z

    Fix tests

commit ec00ba4ed6fa57ed54007bf1b3614978c6bef241
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T16:07:30Z

    wip

commit 3ec8c668116203959777e2d95fc556a84bda7ad1
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T16:15:41Z

    wip

commit 3363fbb0fe5f93789fe51a0d1db560f7329627bc
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T16:27:23Z

    wip

commit 005a7a2d11eea1e62f49d0b90b4b127f2142ca46
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T17:04:19Z

    wip broken test

commit 1446c994e3a3dc29bde12bd560d4631243d605d5
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T17:06:52Z

    wip

commit ddaa253b099616c6f321db94c59ce5f18efd1cd2
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T17:27:58Z

    Fix enum arrays

commit e6adb9cab99290019648776807874642fab3140c
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T17:37:00Z

    Fix tests

commit 4fce68ade828aad107ddab330e7efc7620762f05
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-20T17:38:07Z

    Merge branch 'ignite-1964' into ignite-1965

commit f559a331d646680a662c33966dda62aedcda7380
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T07:11:12Z

    Merge remote-tracking branch 'remotes/upstream/ignite-1282' into ignite-1965

commit 71d7a36856e1af13f9053c60a2bf824e6777015b
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T08:49:26Z

    wip IBinaryEnum

commit 1116501ddebf8ba5c1142b6c18b10112267f3834
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T09:07:03Z

    Merge remote-tracking branch 'remotes/upstream/ignite-1.5' into ignite-1965

commit b6d502cc93fff89f8ac480ac374cf1a469113a22
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T09:39:47Z

    Impl done

commit 8302b2ca1da9a80974669c6efeaa7ff4d5728a59
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T09:41:48Z

    Fixing tests

commit e560fd20c154ad57a68e613dfd5c7f3069ae9592
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T09:57:14Z

    wip tests

commit bd2393d78cf932a5d4907bd5b30d6fbe698f4c35
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T10:07:17Z

    Wip tests

commit a98be04c8ea2c167c6d4b6975e2971962fd848a5
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T10:10:14Z

    wip

commit 00f8df99339d4df1d1bd04b4c197e5af8879b6a9
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T11:30:10Z

    wip

commit b7f012b72ae2abce69bc1c4e20015f54226da9f3
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T11:33:03Z

    wip tests

commit 7349071d3e059b9009cf30713f203abba5e133c8
Author: Pavel Tupitsyn <ptupit...@gridgain.com>
Date:   2015-11-23T11:42:42Z

    Broken composite array test

----


> .NET: Introduce wrapper for enums, similar to "IBinaryObject".
> --------------------------------------------------------------
>
>                 Key: IGNITE-1965
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1965
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: interop
>    Affects Versions: ignite-1.4
>            Reporter: Vladimir Ozerov
>            Assignee: Pavel  Tupitsyn
>             Fix For: 1.5
>
>
> *Problem*
> User tries to get a field from an object. If field is an object, we return 
> IBinaryObject which is correct. If field is enum we always try to deserialize 
> it which is wrong because there could be no matching type in runtime.
> *Proposed solution*
> 1) Introduce "BinaryEnum" class with the following methods:
> - int TypeId() - get type ID
> - int Ordinal() - get ordinal
> - T deserialize() - deserialize using type ID -> class lookup.
> - T deserialize(Type) - deserialize using provided Type. If (typeId != -1 && 
> typeid(Type) != typeId), throw an exception.



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

Reply via email to