cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jsoref <...@git.apache.org>
Subject [GitHub] cordova-plugin-globalization pull request: BB10 implementation
Date Wed, 30 Jul 2014 18:34:27 GMT
Github user jsoref commented on a diff in the pull request:

    https://github.com/apache/cordova-plugin-globalization/pull/18#discussion_r15603085
  
    --- Diff: src/blackberry10/native/public/json/value.h ---
    @@ -0,0 +1,1069 @@
    +#ifndef CPPTL_JSON_H_INCLUDED
    +# define CPPTL_JSON_H_INCLUDED
    +
    +# include "forwards.h"
    +# include <string>
    +# include <vector>
    +
    +# ifndef JSON_USE_CPPTL_SMALLMAP
    +#  include <map>
    +# else
    +#  include <cpptl/smallmap.h>
    +# endif
    +# ifdef JSON_USE_CPPTL
    +#  include <cpptl/forwards.h>
    +# endif
    +
    +/** \brief JSON (JavaScript Object Notation).
    + */
    +namespace Json {
    +
    +   /** \brief Type of the value held by a Value object.
    +    */
    +   enum ValueType
    +   {
    +      nullValue = 0, ///< 'null' value
    +      intValue,      ///< signed integer value
    +      uintValue,     ///< unsigned integer value
    +      realValue,     ///< double value
    +      stringValue,   ///< UTF-8 string value
    +      booleanValue,  ///< bool value
    +      arrayValue,    ///< array value (ordered list)
    +      objectValue    ///< object value (collection of name/value pairs).
    +   };
    +
    +   enum CommentPlacement
    +   {
    +      commentBefore = 0,        ///< a comment placed on the line before a value
    +      commentAfterOnSameLine,   ///< a comment just after a value on the same line
    +      commentAfter,             ///< a comment on the line after a value (only make
sense for root value)
    +      numberOfCommentPlacement
    +   };
    +
    +//# ifdef JSON_USE_CPPTL
    +//   typedef CppTL::AnyEnumerator<const char *> EnumMemberNames;
    +//   typedef CppTL::AnyEnumerator<const Value &> EnumValues;
    +//# endif
    +
    +   /** \brief Lightweight wrapper to tag static string.
    +    *
    +    * Value constructor and objectValue member assignement takes advantage of the
    +    * StaticString and avoid the cost of string duplication when storing the
    +    * string or the member name.
    +    *
    +    * Example of usage:
    +    * \code
    +    * Json::Value aValue( StaticString("some text") );
    +    * Json::Value object;
    +    * static const StaticString code("code");
    +    * object[code] = 1234;
    +    * \endcode
    +    */
    +   class JSON_API StaticString
    +   {
    +   public:
    +      explicit StaticString( const char *czstring )
    +         : str_( czstring )
    +      {
    +      }
    +
    +      operator const char *() const
    +      {
    +         return str_;
    +      }
    +
    +      const char *c_str() const
    +      {
    +         return str_;
    +      }
    +
    +   private:
    +      const char *str_;
    +   };
    +
    +   /** \brief Represents a <a HREF="http://www.json.org">JSON</a> value.
    +    *
    +    * This class is a discriminated union wrapper that can represents a:
    +    * - signed integer [range: Value::minInt - Value::maxInt]
    +    * - unsigned integer (range: 0 - Value::maxUInt)
    +    * - double
    +    * - UTF-8 string
    +    * - boolean
    +    * - 'null'
    +    * - an ordered list of Value
    +    * - collection of name/value pairs (javascript object)
    +    *
    +    * The type of the held value is represented by a #ValueType and 
    +    * can be obtained using type().
    +    *
    +    * values of an #objectValue or #arrayValue can be accessed using operator[]() methods.

    +    * Non const methods will automatically create the a #nullValue element 
    +    * if it does not exist. 
    +    * The sequence of an #arrayValue will be automatically resize and initialized 
    +    * with #nullValue. resize() can be used to enlarge or truncate an #arrayValue.
    +    *
    +    * The get() methods can be used to obtanis default value in the case the required
element
    --- End diff --
    
    sp: obtanis


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message