hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Binglin Chang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-4046) ChecksumTypeProto use NULL as enum value which is illegal in C/C++
Date Thu, 25 Oct 2012 07:28:13 GMT

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

Binglin Chang commented on HDFS-4046:
-------------------------------------

NULL is not a identifier but a macro, macro can not be scoped by namespaces in C/C++.
And yes, since SUCCESS is not a predefined macro, SUCCESS in two different enums is can be
scoped by namespaces or classes.
currently, proto files are using java_package="xxxx" to specify namespace only for java, but
the namespaces for all other languages are not specified.
                
> ChecksumTypeProto use NULL as enum value which is illegal in C/C++
> ------------------------------------------------------------------
>
>                 Key: HDFS-4046
>                 URL: https://issues.apache.org/jira/browse/HDFS-4046
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Binglin Chang
>            Assignee: Binglin Chang
>            Priority: Minor
>         Attachments: HDFS-4046-ChecksumType-NULL-and-TestAuditLogs-bug.patch, HDFS-4046-ChecksumType-NULL.patch
>
>
> I tried to write a native hdfs client using protobuf based protocol, when I generate
c++ code using hdfs.proto, the generated file can not compile, because NULL is an already
defined macro.
> I am thinking two solutions:
> 1. refactor all DataChecksum.Type.NULL references to NONE, which should be fine for all
languages, but this may breaking compatibility.
> 2. only change protobuf definition ChecksumTypeProto.NULL to NONE, and use enum integer
value(DataChecksum.Type.id) to convert between ChecksumTypeProto and DataChecksum.Type, and
make sure enum integer values are match(currently already match).
> I can make a patch for solution 2.
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message