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

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

bq. I would suggest adding the enum name or prefix based on the context at the 
beginning like say STATUS_SUCCESS etc.
I prefer prefix solution, so how about first change ChecksumTypeProto values to 
CHECKSUM_NULL, CHECKSUM_CRC32, CHECKSUM_CRC32C? This change can not be splited 
into 2 patches(common and hdfs)

bq. are you planning to contribute the c library based on this work to Apache 
Hadoop?
I have no problem contributing the code, but I think it is too early to have 
any expectation that I will finally write the library... 
I am just doing some investigation on how many effort it will be, which seems a 
lot. And it seems someone already did it?(named libhdfs3 in HDFS-2656)

                
> 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

Reply via email to