harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <g...@pobox.com>
Subject Re: [drlvm] the big soup of VM properties (HARMONY-1626)
Date Tue, 10 Oct 2006 07:36:22 GMT
Inline

Dmitry Yershov wrote:

[snip]
> 
>                        VM properties proposal
>                        ======================
> 
>     The general purpose of VM Properties subcomponent is to provide
> centralized access to a common properties table. A property is meant
> as a pair of <key> and <value>. The properties stored in VM Properties
> table represent configuration settings for a separate component (such
> as VMCore, GC, JIT etc) or for the whole system. Another use case for
> the properties is communication between different components.
> 
>                             Requirements
>                             ============
> 
>     1) The <key> and <value> are represented as string (i.e. char*). 

and I propose that on each operation, a copy is made, so that the caller 
   frees the  string that they got or gave.

>     2) NULL values are allowed.
>     3) VM Properties subcomponent exports its interface as part of VM
>        Core.
>     4) There are two kind of properties
>           * Public properties are properties visible both to all VM
>             components and to Java applications (by means of
>             java.lang.System.getProperties() method). 
>           * Hidden properties are used for VM components communication
>             only, not accessible from Java side. 
>     5) There is a way to set hidden properties through non standard
>        command line option (   -XDefine<key>=<value>).
>     6) There is a way to get a list of defined properties which keys
>        begin with a particular prefix.
>     7) Properties table should be thread safe.
> 
>                       VM Properties usage scenario
>                       ============================
> 
>     Components can define properties and lookup them by name. When
> setting the property it can be marked either public or hidden. A
> property should be marked as hidden if it is intended internal usage
> only. Public properties are supposed to be visible from Java side also.
> In the same time it is possible to obtain a list of all public properties
> to pass them to Java side. 
> 
>                        Defined Interface functions
>                        ===========================
> 
>     void set_property(const char * key, const char * value) - Sets the
>     public property. NULL values are supported.
> 
>     void set_hidden_property(const char * key, const char * value) - Sets
>     the hidden property. NULL values are supported.
> 
>     const char * get_property(const char * key) - Returns the value of the
>     property if it has been set by set_property function. Otherwise returns
>     NULL.
> 
>     const char * get_hidden_property(const char * key) - Returns the value
>     of the property if it has been set by set_hidden_property function.
>     Otherwise returns NULL.
> 
>     bool is_property_set(const char * key, bool hidden) - Checks if the
>     property is set.
> 
>     void unset_property(const char * key, bool hidden) - Unsets the property.
> 
>     char * * get_public_property_keys() - Returns an array of keys for all
>     public properties set.
> 
>     char * * get_properties_staring_with(const char * prefix, bool hidden) -
>     Returns an array of keys for all properties set whose keys start with
>     the prefix specified.

1) if this is a C++ class, lets drop the word 'property'
2) Don't hardcode 'hidden' into the API, as we may have other types down 
the road.  Make it an argument

   set( key, val, type )
   get( key, type )
   is_set(key)
   unset(key)
   get_keys(type)
   ....

> 
> 
> ------------------------------------------------------------------------
> 
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message