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

Haohui Mai commented on HDFS-9117:
----------------------------------

bq. We will also need a non-static method to load another batch of settings on 
top of currently loaded ones.

There is no need to support this. It's possible to make the configuration fully 
immutable.

bq. I don't see how it reduces the API exposure; we need to define what types 
we support etiher way, and continue supporting them either way.

Not much differences from a linker's prospective, huge differences from human's 
prospective as it requires (1) two declarations for each type in the header 
file, and (2) mostly identical implementations to support getting the default 
value of the types.

The configuration needs to support integer, boolean, string, timeout, bytes, 
URI, vector of int, and vector of string, just to name a few.

bq.  With the templated getter, there is no way to tell whether or not 
config.get<int>("") is implemented.

You can do it via (1) explicitly instantiating the templates, and (2) having a 
generic template which only contains a {{static_assert}}.

> Config file reader / options classes for libhdfs++
> --------------------------------------------------
>
>                 Key: HDFS-9117
>                 URL: https://issues.apache.org/jira/browse/HDFS-9117
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: hdfs-client
>    Affects Versions: HDFS-8707
>            Reporter: Bob Hansen
>            Assignee: Bob Hansen
>         Attachments: HDFS-9117.HDFS-8707.001.patch, 
> HDFS-9117.HDFS-8707.002.patch, HDFS-9117.HDFS-8707.003.patch, 
> HDFS-9117.HDFS-8707.004.patch, HDFS-9117.HDFS-8707.005.patch, 
> HDFS-9117.HDFS-8707.006.patch, HDFS-9117.HDFS-8707.008.patch, 
> HDFS-9117.HDFS-8707.009.patch, HDFS-9117.HDFS-8707.010.patch, 
> HDFS-9117.HDFS-8707.011.patch, HDFS-9117.HDFS-8707.012.patch, 
> HDFS-9117.HDFS-8707.013.patch, HDFS-9117.HDFS-8707.014.patch, 
> HDFS-9117.HDFS-8707.015.patch, HDFS-9117.HDFS-9288.007.patch
>
>
> For environmental compatability with HDFS installations, libhdfs++ should be 
> able to read the configurations from Hadoop XML files and behave in line with 
> the Java implementation.
> Most notably, machine names and ports should be readable from Hadoop XML 
> configuration files.
> Similarly, an internal Options architecture for libhdfs++ should be developed 
> to efficiently transport the configuration information within the system.



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

Reply via email to