VirtualBox

Changeset 74425 in vbox for trunk/include/iprt


Ignore:
Timestamp:
Sep 23, 2018 3:41:48 PM (6 years ago)
Author:
vboxsync
Message:

IPRT/rest: Missed RT_NOEXCEPT in two place. Went wild adding RT_NOEXCEPT everywhere possible. bugref:9167

Location:
trunk/include/iprt/cpp
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/cpp/restanyobject.h

    r74402 r74425  
    5353public:
    5454    /** Default constructor. */
    55     RTCRestAnyObject();
     55    RTCRestAnyObject() RT_NOEXCEPT;
    5656    /** Destructor. */
    5757    virtual ~RTCRestAnyObject();
     
    6363
    6464    /** Safe copy assignment method. */
    65     int assignCopy(RTCRestAnyObject const &a_rThat);
     65    int assignCopy(RTCRestAnyObject const &a_rThat) RT_NOEXCEPT;
    6666    /** Safe copy assignment method, boolean variant. */
    67     int assignCopy(RTCRestBool const &a_rThat);
     67    int assignCopy(RTCRestBool const &a_rThat) RT_NOEXCEPT;
    6868    /** Safe copy assignment method, int64_t variant. */
    69     int assignCopy(RTCRestInt64 const &a_rThat);
     69    int assignCopy(RTCRestInt64 const &a_rThat) RT_NOEXCEPT;
    7070    /** Safe copy assignment method, int32_t variant. */
    71     int assignCopy(RTCRestInt32 const &a_rThat);
     71    int assignCopy(RTCRestInt32 const &a_rThat) RT_NOEXCEPT;
    7272    /** Safe copy assignment method, int16_t variant. */
    73     int assignCopy(RTCRestInt16 const &a_rThat);
     73    int assignCopy(RTCRestInt16 const &a_rThat) RT_NOEXCEPT;
    7474    /** Safe copy assignment method, double variant. */
    75     int assignCopy(RTCRestDouble const &a_rThat);
     75    int assignCopy(RTCRestDouble const &a_rThat) RT_NOEXCEPT;
    7676    /** Safe copy assignment method, string variant. */
    77     int assignCopy(RTCRestString const &a_rThat);
     77    int assignCopy(RTCRestString const &a_rThat) RT_NOEXCEPT;
    7878    /** Safe copy assignment method, array variant. */
    79     int assignCopy(RTCRestArray<RTCRestAnyObject> const &a_rThat);
     79    int assignCopy(RTCRestArray<RTCRestAnyObject> const &a_rThat) RT_NOEXCEPT;
    8080    /** Safe copy assignment method, string map variant. */
    81     int assignCopy(RTCRestStringMap<RTCRestAnyObject> const &a_rThat);
     81    int assignCopy(RTCRestStringMap<RTCRestAnyObject> const &a_rThat) RT_NOEXCEPT;
    8282
    8383    /** Safe value assignment method, boolean variant. */
    84     int assignValue(bool a_fValue);
     84    int assignValue(bool a_fValue) RT_NOEXCEPT;
    8585    /** Safe value assignment method, int64_t variant. */
    86     int assignValue(int64_t a_iValue);
     86    int assignValue(int64_t a_iValue) RT_NOEXCEPT;
    8787    /** Safe value assignment method, int32_t variant. */
    88     int assignValue(int32_t a_iValue);
     88    int assignValue(int32_t a_iValue) RT_NOEXCEPT;
    8989    /** Safe value assignment method, int16_t variant. */
    90     int assignValue(int16_t a_iValue);
     90    int assignValue(int16_t a_iValue) RT_NOEXCEPT;
    9191    /** Safe value assignment method, double variant. */
    92     int assignValue(double a_iValue);
     92    int assignValue(double a_iValue) RT_NOEXCEPT;
    9393    /** Safe value assignment method, string variant. */
    94     int assignValue(RTCString const &a_rValue);
     94    int assignValue(RTCString const &a_rValue) RT_NOEXCEPT;
    9595    /** Safe value assignment method, C-string variant. */
    96     int assignValue(const char *a_pszValue);
     96    int assignValue(const char *a_pszValue) RT_NOEXCEPT;
    9797
    9898    /** Make a clone of this object. */
    99     inline RTCRestAnyObject *clone() const { return (RTCRestAnyObject *)baseClone(); }
     99    inline RTCRestAnyObject *clone() const RT_NOEXCEPT { return (RTCRestAnyObject *)baseClone(); }
    100100
    101101    /* Overridden methods: */
    102     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    103     virtual int setNull(void) RT_OVERRIDE;
    104     virtual int resetToDefault() RT_OVERRIDE;
    105     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    106     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    107     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
     102    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     103    virtual int setNull(void) RT_NOEXCEPT RT_OVERRIDE;
     104    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     105    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     106    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     107    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
    108108    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    109                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    110     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    111     virtual const char *typeName(void) const RT_OVERRIDE;
     109                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     110    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     111    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    112112
    113113    /** Factory method. */
    114     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
     114    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
    115115    /** Deserialization w/ instantiation. */
    116116    static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
  • trunk/include/iprt/cpp/restarray.h

    r74402 r74425  
    4242public:
    4343    /** Default destructor. */
    44     RTCRestArrayBase();
     44    RTCRestArrayBase() RT_NOEXCEPT;
    4545    /** Destructor. */
    4646    virtual ~RTCRestArrayBase();
    4747
    4848    /* Overridden methods: */
    49     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    50     virtual int resetToDefault() RT_OVERRIDE;
    51     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    52     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    53     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
     49    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     50    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     51    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     52    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     53    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
    5454    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    55                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    56     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    57     virtual const char *typeName(void) const RT_OVERRIDE;
     55                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     56    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     57    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    5858
    5959    /**
    6060     * Clear the content of the map.
    6161     */
    62     void clear();
     62    void clear() RT_NOEXCEPT;
    6363
    6464    /**
     
    6767     * @return   True if there is more than zero items, false otherwise.
    6868     */
    69     inline bool isEmpty() const
     69    inline bool isEmpty() const RT_NOEXCEPT
    7070    {
    7171        return m_cElements == 0;
     
    7575     * Gets the number of entries in the map.
    7676     */
    77     inline size_t size() const
     77    inline size_t size() const RT_NOEXCEPT
    7878    {
    7979        return m_cElements;
     
    8686     * @param   a_idx           The array index.
    8787     */
    88     inline RTCRestObjectBase *atBase(size_t a_idx)
     88    inline RTCRestObjectBase *atBase(size_t a_idx) RT_NOEXCEPT
    8989    {
    9090        if (a_idx < m_cElements)
     
    9999     * @param   a_idx           The array index.
    100100     */
    101     inline RTCRestObjectBase const *atBase(size_t a_idx) const
     101    inline RTCRestObjectBase const *atBase(size_t a_idx) const RT_NOEXCEPT
    102102    {
    103103        if (a_idx < m_cElements)
     
    112112     *                      The value ~(size_t)0 is an alias for the final element.
    113113     */
    114     bool removeAt(size_t a_idx);
     114    bool removeAt(size_t a_idx) RT_NOEXCEPT;
    115115
    116116    /**
     
    120120     * @param   a_cEnsureCapacity   The number of elements to ensure capacity to hold.
    121121     */
    122     int ensureCapacity(size_t a_cEnsureCapacity);
     122    int ensureCapacity(size_t a_cEnsureCapacity) RT_NOEXCEPT;
    123123
    124124
     
    137137     * @returns Pointer to new array on success, NULL if out of memory.
    138138     */
    139     virtual RTCRestArrayBase *createClone(void) const = 0;
     139    virtual RTCRestArrayBase *createClone(void) const RT_NOEXCEPT = 0;
    140140
    141141    /**
     
    144144     * @returns Pointer to new value object on success, NULL if out of memory.
    145145     */
    146     virtual RTCRestObjectBase *createValue(void) = 0;
     146    virtual RTCRestObjectBase *createValue(void) RT_NOEXCEPT = 0;
    147147
    148148    /**
    149149     * For accessing the static deserializeInstanceFromJson() method of the value.
    150150     */
    151     virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) = 0;
    152 
    153     /**
    154      * Worker for the copy constructor and the assignment operator.
     151    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT = 0;
     152
     153    /**
     154     * Worker for the copy assignment method and copyArrayWorkerMayThrow().
    155155     *
    156156     * This will use createEntryCopy to do the copying.
     
    159159     * @param   a_rThat     The array to copy.  Caller makes 100% sure the it has
    160160     *                      the same type as the destination.
    161      * @param   a_fThrow    Whether to throw error.
    162      */
    163     int copyArrayWorker(RTCRestArrayBase const &a_rThat, bool a_fThrow);
     161     */
     162    int copyArrayWorkerNoThrow(RTCRestArrayBase const &a_rThat) RT_NOEXCEPT;
     163
     164    /**
     165     * Wrapper around copyArrayWorkerNoThrow for the copy constructor and the
     166     * assignment operator.
     167     */
     168    void copyArrayWorkerMayThrow(RTCRestArrayBase const &a_rThat);
    164169
    165170    /**
     
    172177     * @param   a_fReplace      Whether to replace existing entry rather than insert.
    173178     */
    174     int insertWorker(size_t a_idx, RTCRestObjectBase *a_pValue, bool a_fReplace);
     179    int insertWorker(size_t a_idx, RTCRestObjectBase *a_pValue, bool a_fReplace) RT_NOEXCEPT;
    175180
    176181    /**
     
    183188     * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
    184189     */
    185     int insertCopyWorker(size_t a_idx, RTCRestObjectBase const &a_rValue, bool a_fReplace);
     190    int insertCopyWorker(size_t a_idx, RTCRestObjectBase const &a_rValue, bool a_fReplace) RT_NOEXCEPT;
    186191
    187192private:
     
    201206public:
    202207    /** Default constructor - empty array. */
    203     RTCRestArray()
     208    RTCRestArray() RT_NOEXCEPT
    204209        : RTCRestArrayBase()
    205210    {
     
    215220        : RTCRestArrayBase()
    216221    {
    217         copyArrayWorker(a_rThat, true /*fThrow*/);
     222        copyArrayWorkerMayThrow(a_rThat);
    218223    }
    219224
     
    221226    inline RTCRestArray &operator=(RTCRestArray const &a_rThat)
    222227    {
    223         copyArrayWorker(a_rThat, true /*fThrow*/);
     228        copyArrayWorkerMayThrow(a_rThat);
    224229        return *this;
    225230    }
    226231
    227232    /** Safe copy assignment method. */
    228     inline int assignCopy(RTCRestArray const &a_rThat)
    229     {
    230         return copyArrayWorker(a_rThat, false /*fThrow*/);
     233    inline int assignCopy(RTCRestArray const &a_rThat) RT_NOEXCEPT
     234    {
     235        return copyArrayWorkerNoThrow(a_rThat);
    231236    }
    232237
    233238    /** Make a clone of this object. */
    234     inline RTCRestArray *clone() const
     239    inline RTCRestArray *clone() const RT_NOEXCEPT
    235240    {
    236241        return (RTCRestArray *)baseClone();
     
    238243
    239244    /** Factory method. */
    240     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void)
     245    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT
    241246    {
    242247        return new (std::nothrow) RTCRestArray<ElementType>();
     
    244249
    245250    /** Factory method for elements. */
    246     static DECLCALLBACK(RTCRestObjectBase *) createElementInstance(void)
     251    static DECLCALLBACK(RTCRestObjectBase *) createElementInstance(void) RT_NOEXCEPT
    247252    {
    248253        return new (std::nothrow) ElementType();
     
    250255
    251256    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
    252     static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
     257    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
    253258    {
    254259        *a_ppInstance = new (std::nothrow) RTCRestArray<ElementType>();
     
    267272     * @param   a_pThat         The object to insert.  The array takes ownership of the object on success.
    268273     */
    269     inline int insert(size_t a_idx, ElementType *a_pThat)
     274    inline int insert(size_t a_idx, ElementType *a_pThat) RT_NOEXCEPT
    270275    {
    271276        return insertWorker(a_idx, a_pThat, false /*a_fReplace*/);
     
    280285     * @param   a_rThat         The object to insert a copy of.
    281286     */
    282     inline int insertCopy(size_t a_idx, ElementType const &a_rThat)
     287    inline int insertCopy(size_t a_idx, ElementType const &a_rThat) RT_NOEXCEPT
    283288    {
    284289        return insertCopyWorker(a_idx, a_rThat, false /*a_fReplace*/);
     
    292297     * @param   a_pThat         The object to insert.  The array takes ownership of the object on success.
    293298     */
    294     inline int append(ElementType *a_pThat)
     299    inline int append(ElementType *a_pThat) RT_NOEXCEPT
    295300    {
    296301        return insertWorker(~(size_t)0, a_pThat, false /*a_fReplace*/);
     
    304309     * @param   a_rThat         The object to insert a copy of.
    305310     */
    306     inline int appendCopy(ElementType const &a_rThat)
     311    inline int appendCopy(ElementType const &a_rThat) RT_NOEXCEPT
    307312    {
    308313        return insertCopyWorker(~(size_t)0, a_rThat, false /*a_fReplace*/);
     
    316321     * @param   a_pThat         The object to insert.  The array takes ownership of the object on success.
    317322     */
    318     inline int prepend(ElementType *a_pThat)
     323    inline int prepend(ElementType *a_pThat) RT_NOEXCEPT
    319324    {
    320325        return insertWorker(0, a_pThat, false /*a_fReplace*/);
     
    328333     * @param   a_rThat         The object to insert a copy of.
    329334     */
    330     inline int prependCopy(ElementType const &a_rThat)
     335    inline int prependCopy(ElementType const &a_rThat) RT_NOEXCEPT
    331336    {
    332337        return insertCopyWorker(0, a_rThat, false /*a_fReplace*/);
     
    341346     * @param   a_pThat         The replacement object.  The array takes ownership of the object on success.
    342347     */
    343     inline int replace(size_t a_idx, ElementType *a_pThat)
     348    inline int replace(size_t a_idx, ElementType *a_pThat) RT_NOEXCEPT
    344349    {
    345350        return insertWorker(a_idx, a_pThat, true /*a_fReplace*/);
     
    354359     * @param   a_rThat         The object to insert a copy of.
    355360     */
    356     inline int replaceCopy(size_t a_idx, ElementType const &a_rThat)
     361    inline int replaceCopy(size_t a_idx, ElementType const &a_rThat) RT_NOEXCEPT
    357362    {
    358363        return insertCopyWorker(a_idx, a_rThat, true /*a_fReplace*/);
     
    365370     * @param   a_idx           The array index.
    366371     */
    367     inline ElementType *at(size_t a_idx)
     372    inline ElementType *at(size_t a_idx) RT_NOEXCEPT
    368373    {
    369374        if (a_idx < m_cElements)
     
    378383     * @param   a_idx           The array index.
    379384     */
    380     inline ElementType const *at(size_t a_idx) const
     385    inline ElementType const *at(size_t a_idx) const RT_NOEXCEPT
    381386    {
    382387        if (a_idx < m_cElements)
     
    389394     * @returns The first object, NULL if empty.
    390395     */
    391     inline ElementType *first()
     396    inline ElementType *first() RT_NOEXCEPT
    392397    {
    393398        return at(0);
     
    398403     * @returns The first object, NULL if empty.
    399404     */
    400     inline ElementType const *first() const
     405    inline ElementType const *first() const RT_NOEXCEPT
    401406    {
    402407        return at(0);
     
    407412     * @returns The last object, NULL if empty.
    408413     */
    409     inline ElementType *last()
     414    inline ElementType *last() RT_NOEXCEPT
    410415    {
    411416        return at(m_cElements - 1);
     
    416421     * @returns The last object, NULL if empty.
    417422     */
    418     inline ElementType const *last() const
     423    inline ElementType const *last() const RT_NOEXCEPT
    419424    {
    420425        return at(m_cElements - 1);
     
    423428
    424429protected:
    425     virtual RTCRestArrayBase *createClone(void) const RT_OVERRIDE
     430    virtual RTCRestArrayBase *createClone(void) const RT_NOEXCEPT RT_OVERRIDE
    426431    {
    427432        return new (std::nothrow) RTCRestArray();
    428433    }
    429434
    430     virtual RTCRestObjectBase *createValue(void) RT_OVERRIDE
     435    virtual RTCRestObjectBase *createValue(void) RT_NOEXCEPT RT_OVERRIDE
    431436    {
    432437        return new (std::nothrow) ElementType();
    433438    }
    434439
    435     virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_OVERRIDE
     440    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT RT_OVERRIDE
    436441    {
    437442        return ElementType::deserializeInstanceFromJson(a_rCursor, a_ppInstance);
  • trunk/include/iprt/cpp/restbase.h

    r74414 r74425  
    6161    RTCRestJsonPrimaryCursor           *m_pPrimary;
    6262
    63     RTCRestJsonCursor(struct RTCRestJsonCursor const &a_rParent)
     63    RTCRestJsonCursor(struct RTCRestJsonCursor const &a_rParent) RT_NOEXCEPT
    6464        : m_hValue(NIL_RTJSONVAL), m_pszName(NULL), m_pParent(&a_rParent), m_pPrimary(a_rParent.m_pPrimary)
    6565    { }
    6666
    67     RTCRestJsonCursor(RTJSONVAL hValue, const char *pszName, struct RTCRestJsonCursor *pParent)
     67    RTCRestJsonCursor(RTJSONVAL hValue, const char *pszName, struct RTCRestJsonCursor *pParent) RT_NOEXCEPT
    6868        : m_hValue(hValue), m_pszName(pszName), m_pParent(pParent), m_pPrimary(pParent->m_pPrimary)
    6969    { }
    7070
    71     RTCRestJsonCursor(RTJSONVAL hValue, const char *pszName)
     71    RTCRestJsonCursor(RTJSONVAL hValue, const char *pszName) RT_NOEXCEPT
    7272        : m_hValue(hValue), m_pszName(pszName), m_pParent(NULL), m_pPrimary(NULL)
    7373    { }
     
    9696
    9797    /** Creates a primary json cursor with optiona error info. */
    98     RTCRestJsonPrimaryCursor(RTJSONVAL hValue, const char *pszName, PRTERRINFO pErrInfo = NULL)
     98    RTCRestJsonPrimaryCursor(RTJSONVAL hValue, const char *pszName, PRTERRINFO pErrInfo = NULL) RT_NOEXCEPT
    9999        : m_Cursor(hValue, pszName)
    100100        , m_pErrInfo(pErrInfo)
     
    115115     * @param   ...             Format string arguments.
    116116     */
    117     virtual int addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...);
     117    virtual int addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...) RT_NOEXCEPT;
    118118
    119119    /**
     
    123123     * @param   a_rCursor       The cursor for the field.
    124124     */
    125     virtual int unknownField(RTCRestJsonCursor const &a_rCursor);
     125    virtual int unknownField(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT;
    126126
    127127    /**
     
    133133     * @param   a_cbDst         Size of the destination buffer.
    134134     */
    135     virtual char *getPath(RTCRestJsonCursor const &a_rCursor, char *a_pszDst, size_t a_cbDst) const;
     135    virtual char *getPath(RTCRestJsonCursor const &a_rCursor, char *a_pszDst, size_t a_cbDst) const RT_NOEXCEPT;
    136136};
    137137
     
    146146{
    147147public:
    148     RTCRestObjectBase();
    149     RTCRestObjectBase(RTCRestObjectBase const &a_rThat);
     148    RTCRestObjectBase() RT_NOEXCEPT;
     149    RTCRestObjectBase(RTCRestObjectBase const &a_rThat) RT_NOEXCEPT;
    150150    virtual ~RTCRestObjectBase();
    151151
     
    155155     * @returns Pointer to copy.
    156156     */
    157     virtual RTCRestObjectBase *baseClone() const = 0;
     157    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT = 0;
    158158
    159159    /**
     
    161161     * @returns true if null, false if not.
    162162     */
    163     inline bool isNull(void) const { return m_fNullIndicator; };
     163    inline bool isNull(void) const RT_NOEXCEPT { return m_fNullIndicator; };
    164164
    165165    /**
     
    167167     * @returns IPRT status code (from resetToDefault).
    168168     */
    169     virtual int setNull(void);
     169    virtual int setNull(void) RT_NOEXCEPT;
    170170
    171171    /**
     
    173173     * @remarks Only really important for strings.
    174174     */
    175     virtual void setNotNull(void);
     175    virtual void setNotNull(void) RT_NOEXCEPT;
    176176
    177177    /**
     
    179179     * @returns IPRT status code.
    180180     */
    181     virtual int resetToDefault() = 0;
     181    virtual int resetToDefault() RT_NOEXCEPT = 0;
    182182
    183183    /**
     
    187187     * @param   a_rDst      The destination for the serialization.
    188188     */
    189     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const = 0;
     189    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT = 0;
    190190
    191191    /**
     
    195195     * @param   a_rCursor    The JSON cursor.
    196196     */
    197     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) = 0;
     197    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT = 0;
    198198
    199199    /**
     
    242242     * @param   a_fFlags    kCollectionFormat_xxx.
    243243     */
    244     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const;
     244    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT;
    245245
    246246    /**
     
    263263     */
    264264    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    265                            uint32_t a_fFlags = kCollectionFormat_Unspecified);
     265                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT;
    266266
    267267    /** Type classification */
     
    288288     * Returns the object type class.
    289289     */
    290     virtual kTypeClass typeClass(void) const = 0;
     290    virtual kTypeClass typeClass(void) const RT_NOEXCEPT = 0;
    291291
    292292    /**
    293293     * Returns the object type name.
    294294     */
    295     virtual const char *typeName(void) const = 0;
     295    virtual const char *typeName(void) const RT_NOEXCEPT = 0;
    296296
    297297protected:
     
    314314public:
    315315    /** Default constructor. */
    316     RTCRestBool();
     316    RTCRestBool() RT_NOEXCEPT;
    317317    /** Copy constructor. */
    318     RTCRestBool(RTCRestBool const &a_rThat);
     318    RTCRestBool(RTCRestBool const &a_rThat) RT_NOEXCEPT;
    319319    /** From value constructor. */
    320     RTCRestBool(bool fValue);
     320    RTCRestBool(bool fValue) RT_NOEXCEPT;
    321321    /** Destructor. */
    322322    virtual ~RTCRestBool();
    323323    /** Copy assignment operator. */
    324     RTCRestBool &operator=(RTCRestBool const &a_rThat);
    325     /** Safe copy assignment method. */
    326     int assignCopy(RTCRestBool const &a_rThat);
     324    RTCRestBool &operator=(RTCRestBool const &a_rThat) RT_NOEXCEPT;
     325    /** Safe copy assignment method. */
     326    int assignCopy(RTCRestBool const &a_rThat) RT_NOEXCEPT;
    327327    /** Assign value and clear null indicator. */
    328     void assignValue(bool a_fValue);
     328    void assignValue(bool a_fValue) RT_NOEXCEPT;
    329329    /** Make a clone of this object. */
    330     inline RTCRestBool *clone() const { return (RTCRestBool *)baseClone(); }
     330    inline RTCRestBool *clone() const RT_NOEXCEPT { return (RTCRestBool *)baseClone(); }
    331331
    332332    /* Overridden methods: */
    333     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    334     virtual int resetToDefault() RT_OVERRIDE;
    335     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    336     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    337     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     333    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     334    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     335    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     336    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     337    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
    338338    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    339                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    340     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    341     virtual const char *typeName(void) const RT_OVERRIDE;
     339                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     340    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     341    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    342342
    343343    /** Factory method. */
    344     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
    345     /** Deserialization w/ instantiation. */
    346     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
     344    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     345    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
     346    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
    347347
    348348public:
     
    359359public:
    360360    /** Default constructor. */
    361     RTCRestInt64();
     361    RTCRestInt64() RT_NOEXCEPT;
    362362    /** Copy constructor. */
    363     RTCRestInt64(RTCRestInt64 const &a_rThat);
     363    RTCRestInt64(RTCRestInt64 const &a_rThat) RT_NOEXCEPT;
    364364    /** From value constructor. */
    365     RTCRestInt64(int64_t a_iValue);
     365    RTCRestInt64(int64_t a_iValue) RT_NOEXCEPT;
    366366    /** Destructor. */
    367367    virtual ~RTCRestInt64();
    368368    /** Copy assignment operator. */
    369     RTCRestInt64 &operator=(RTCRestInt64 const &a_rThat);
    370     /** Safe copy assignment method. */
    371     int assignCopy(RTCRestInt64 const &a_rThat);
     369    RTCRestInt64 &operator=(RTCRestInt64 const &a_rThat) RT_NOEXCEPT;
     370    /** Safe copy assignment method. */
     371    int assignCopy(RTCRestInt64 const &a_rThat) RT_NOEXCEPT;
    372372    /** Assign value and clear null indicator. */
    373     void assignValue(int64_t a_iValue);
     373    void assignValue(int64_t a_iValue) RT_NOEXCEPT;
    374374    /** Make a clone of this object. */
    375     inline RTCRestInt64 *clone() const { return (RTCRestInt64 *)baseClone(); }
     375    inline RTCRestInt64 *clone() const RT_NOEXCEPT { return (RTCRestInt64 *)baseClone(); }
    376376
    377377    /* Overridden methods: */
    378     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    379     virtual int resetToDefault() RT_OVERRIDE;
    380     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    381     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    382     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     378    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     379    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     380    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     381    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     382    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
    383383    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    384                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    385     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    386     virtual const char *typeName(void) const RT_OVERRIDE;
     384                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     385    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     386    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    387387
    388388    /** Factory method. */
    389     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
    390     /** Deserialization w/ instantiation. */
    391     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
     389    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     390    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
     391    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
    392392
    393393public:
     
    404404public:
    405405    /** Default constructor. */
    406     RTCRestInt32();
     406    RTCRestInt32() RT_NOEXCEPT;
    407407    /** Copy constructor. */
    408     RTCRestInt32(RTCRestInt32 const &a_rThat);
     408    RTCRestInt32(RTCRestInt32 const &a_rThat) RT_NOEXCEPT;
    409409    /** From value constructor. */
    410     RTCRestInt32(int32_t iValue);
     410    RTCRestInt32(int32_t iValue) RT_NOEXCEPT;
    411411    /** Destructor. */
    412     virtual ~RTCRestInt32();
     412    virtual ~RTCRestInt32() RT_NOEXCEPT;
    413413    /** Copy assignment operator. */
    414     RTCRestInt32 &operator=(RTCRestInt32 const &a_rThat);
    415     /** Safe copy assignment method. */
    416     int assignCopy(RTCRestInt32 const &a_rThat);
     414    RTCRestInt32 &operator=(RTCRestInt32 const &a_rThat) RT_NOEXCEPT;
     415    /** Safe copy assignment method. */
     416    int assignCopy(RTCRestInt32 const &a_rThat) RT_NOEXCEPT;
    417417    /** Assign value and clear null indicator. */
    418     void assignValue(int32_t a_iValue);
     418    void assignValue(int32_t a_iValue) RT_NOEXCEPT;
    419419    /** Make a clone of this object. */
    420420    inline RTCRestInt32 *clone() const { return (RTCRestInt32 *)baseClone(); }
    421421
    422422    /* Overridden methods: */
    423     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    424     virtual int resetToDefault() RT_OVERRIDE;
    425     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    426     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    427     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     423    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     424    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     425    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     426    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     427    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
    428428    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    429                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    430     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    431     virtual const char *typeName(void) const RT_OVERRIDE;
     429                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     430    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     431    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    432432
    433433    /** Factory method. */
    434     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
    435     /** Deserialization w/ instantiation. */
    436     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
     434    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     435    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
     436    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
    437437
    438438public:
     
    449449public:
    450450    /** Default constructor. */
    451     RTCRestInt16();
     451    RTCRestInt16() RT_NOEXCEPT;
    452452    /** Copy constructor. */
    453     RTCRestInt16(RTCRestInt16 const &a_rThat);
     453    RTCRestInt16(RTCRestInt16 const &a_rThat) RT_NOEXCEPT;
    454454    /** From value constructor. */
    455     RTCRestInt16(int16_t iValue);
     455    RTCRestInt16(int16_t iValue) RT_NOEXCEPT;
    456456    /** Destructor. */
    457457    virtual ~RTCRestInt16();
    458458    /** Copy assignment operator. */
    459     RTCRestInt16 &operator=(RTCRestInt16 const &a_rThat);
    460     /** Safe copy assignment method. */
    461     int assignCopy(RTCRestInt16 const &a_rThat);
     459    RTCRestInt16 &operator=(RTCRestInt16 const &a_rThat) RT_NOEXCEPT;
     460    /** Safe copy assignment method. */
     461    int assignCopy(RTCRestInt16 const &a_rThat) RT_NOEXCEPT;
    462462    /** Assign value and clear null indicator. */
    463     void assignValue(int16_t a_iValue);
     463    void assignValue(int16_t a_iValue) RT_NOEXCEPT;
    464464    /** Make a clone of this object. */
    465     inline RTCRestInt16 *clone() const { return (RTCRestInt16 *)baseClone(); }
     465    inline RTCRestInt16 *clone() const RT_NOEXCEPT { return (RTCRestInt16 *)baseClone(); }
    466466
    467467    /* Overridden methods: */
    468     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    469     virtual int resetToDefault() RT_OVERRIDE;
    470     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    471     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    472     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     468    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     469    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     470    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     471    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     472    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
    473473    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    474                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    475     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    476     virtual const char *typeName(void) const RT_OVERRIDE;
     474                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     475    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     476    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    477477
    478478    /** Factory method. */
    479     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
    480     /** Deserialization w/ instantiation. */
    481     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
     479    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     480    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
     481    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
    482482
    483483public:
     
    494494public:
    495495    /** Default constructor. */
    496     RTCRestDouble();
     496    RTCRestDouble() RT_NOEXCEPT;
    497497    /** Copy constructor. */
    498     RTCRestDouble(RTCRestDouble const &a_rThat);
     498    RTCRestDouble(RTCRestDouble const &a_rThat) RT_NOEXCEPT;
    499499    /** From value constructor. */
    500     RTCRestDouble(double rdValue);
     500    RTCRestDouble(double rdValue) RT_NOEXCEPT;
    501501    /** Destructor. */
    502502    virtual ~RTCRestDouble();
    503503    /** Copy assignment operator. */
    504     RTCRestDouble &operator=(RTCRestDouble const &a_rThat);
    505     /** Safe copy assignment method. */
    506     int assignCopy(RTCRestDouble const &a_rThat);
     504    RTCRestDouble &operator=(RTCRestDouble const &a_rThat) RT_NOEXCEPT;
     505    /** Safe copy assignment method. */
     506    int assignCopy(RTCRestDouble const &a_rThat) RT_NOEXCEPT;
    507507    /** Assign value and clear null indicator. */
    508     void assignValue(double a_rdValue);
     508    void assignValue(double a_rdValue) RT_NOEXCEPT;
    509509    /** Make a clone of this object. */
    510     inline RTCRestDouble *clone() const { return (RTCRestDouble *)baseClone(); }
     510    inline RTCRestDouble *clone() const RT_NOEXCEPT { return (RTCRestDouble *)baseClone(); }
    511511
    512512    /* Overridden methods: */
    513     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    514     virtual int resetToDefault() RT_OVERRIDE;
    515     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    516     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    517     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     513    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     514    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     515    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     516    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     517    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
    518518    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    519                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    520     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    521     virtual const char *typeName(void) const RT_OVERRIDE;
     519                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     520    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     521    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    522522
    523523    /** Factory method. */
    524     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
    525     /** Deserialization w/ instantiation. */
    526     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
     524    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     525    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
     526    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
    527527
    528528public:
     
    539539public:
    540540    /** Default constructor. */
    541     RTCRestString();
     541    RTCRestString() RT_NOEXCEPT;
    542542    /** Destructor. */
    543543    virtual ~RTCRestString();
     
    550550    RTCRestString(const char *a_pszSrc);
    551551    /** Safe copy assignment method. */
    552     int assignCopy(RTCRestString const &a_rThat);
    553     /** Safe copy assignment method. */
    554     int assignCopy(RTCString const &a_rThat);
    555     /** Safe copy assignment method. */
    556     int assignCopy(const char *a_pszThat);
     552    int assignCopy(RTCRestString const &a_rThat) RT_NOEXCEPT;
     553    /** Safe copy assignment method. */
     554    int assignCopy(RTCString const &a_rThat) RT_NOEXCEPT;
     555    /** Safe copy assignment method. */
     556    int assignCopy(const char *a_pszThat) RT_NOEXCEPT;
    557557    /** Make a clone of this object. */
    558     inline RTCRestString *clone() const { return (RTCRestString *)baseClone(); }
     558    inline RTCRestString *clone() const RT_NOEXCEPT { return (RTCRestString *)baseClone(); }
    559559
    560560    /* Overridden methods: */
    561     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    562     virtual int setNull(void) RT_OVERRIDE; /* (ambigious, so overrider it to make sure.) */
    563     virtual int resetToDefault() RT_OVERRIDE;
    564     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    565     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    566     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
     561    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     562    virtual int setNull(void) RT_NOEXCEPT RT_OVERRIDE; /* (ambigious, so overrider it to make sure.) */
     563    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     564    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     565    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     566    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
    567567    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    568                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    569     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    570     virtual const char *typeName(void) const RT_OVERRIDE;
     568                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     569    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     570    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    571571
    572572    /** Factory method. */
    573     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
    574     /** Deserialization w/ instantiation. */
    575     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
     573    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     574    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
     575    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
    576576
    577577    /** @name RTCString assignment methods we need to replace to manage the null indicator
     
    615615    /** Default constructor.
    616616     * @note The result is a null-object.   */
    617     RTCRestDate();
     617    RTCRestDate() RT_NOEXCEPT;
    618618    /** Copy constructor. */
    619619    RTCRestDate(RTCRestDate const &a_rThat);
     
    623623    RTCRestDate &operator=(RTCRestDate const &a_rThat);
    624624    /** Safe copy assignment method. */
    625     int assignCopy(RTCRestDate const &a_rThat);
     625    int assignCopy(RTCRestDate const &a_rThat) RT_NOEXCEPT;
    626626    /** Make a clone of this object. */
    627     inline RTCRestDate *clone() const { return (RTCRestDate *)baseClone(); }
     627    inline RTCRestDate *clone() const  RT_NOEXCEPT{ return (RTCRestDate *)baseClone(); }
    628628
    629629    /* Overridden methods: */
    630     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    631     virtual int resetToDefault() RT_OVERRIDE;
    632     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    633     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    634     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     630    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     631    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     632    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     633    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     634    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_NOEXCEPT RT_OVERRIDE;
    635635    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    636                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    637     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    638     virtual const char *typeName(void) const RT_OVERRIDE;
     636                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     637    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     638    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    639639
    640640    /** Factory method. */
    641     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
    642     /** Deserialization w/ instantiation. */
    643     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
     641    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     642    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
     643    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
    644644
    645645    /** Date formats. */
     
    664664     * @param   a_enmFormat     The date format to use when formatting it.
    665665     */
    666     int assignValue(PCRTTIMESPEC a_pTimeSpec, kFormat a_enmFormat);
    667     int assignValueRfc2822(PCRTTIMESPEC a_pTimeSpec); /**< Convenience method for email/whatnot. */
    668     int assignValueRfc7131(PCRTTIMESPEC a_pTimeSpec); /**< Convenience method for HTTP date. */
    669     int assignValueRfc3339(PCRTTIMESPEC a_pTimeSpec); /**< Convenience method for ISO-8601 timstamp. */
     666    int assignValue(PCRTTIMESPEC a_pTimeSpec, kFormat a_enmFormat) RT_NOEXCEPT;
     667    int assignValueRfc2822(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT; /**< Convenience method for email/whatnot. */
     668    int assignValueRfc7131(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT; /**< Convenience method for HTTP date. */
     669    int assignValueRfc3339(PCRTTIMESPEC a_pTimeSpec) RT_NOEXCEPT; /**< Convenience method for ISO-8601 timstamp. */
    670670
    671671    /**
     
    676676     * @param   a_enmFormat     The date format to use when formatting it.
    677677     */
    678     int assignNow(kFormat a_enmFormat);
    679     int assignNowRfc2822(); /**< Convenience method for email/whatnot. */
    680     int assignNowRfc7131(); /**< Convenience method for HTTP date. */
    681     int assignNowRfc3339(); /**< Convenience method for ISO-8601 timstamp. */
     678    int assignNow(kFormat a_enmFormat) RT_NOEXCEPT;
     679    int assignNowRfc2822() RT_NOEXCEPT; /**< Convenience method for email/whatnot. */
     680    int assignNowRfc7131() RT_NOEXCEPT; /**< Convenience method for HTTP date. */
     681    int assignNowRfc3339() RT_NOEXCEPT; /**< Convenience method for ISO-8601 timstamp. */
    682682
    683683    /**
     
    688688     * @param   a_enmFormat     The date format to try/set.
    689689     */
    690     int setFormat(kFormat a_enmFormat);
     690    int setFormat(kFormat a_enmFormat) RT_NOEXCEPT;
    691691
    692692    /** Check if the value is okay (m_TimeSpec & m_Exploded). */
    693     inline bool              isOkay() const             { return m_fTimeSpecOkay; }
     693    inline bool              isOkay() const RT_NOEXCEPT         { return m_fTimeSpecOkay; }
    694694    /** Get the timespec value. */
    695     inline RTTIMESPEC const &getTimeSpec() const        { return m_TimeSpec; }
     695    inline RTTIMESPEC const &getTimeSpec() const RT_NOEXCEPT    { return m_TimeSpec; }
    696696    /** Get the exploded time. */
    697     inline RTTIME const     &getExploded() const        { return m_Exploded; }
     697    inline RTTIME const     &getExploded() const RT_NOEXCEPT    { return m_Exploded; }
    698698    /** Gets the format. */
    699     inline kFormat           getFormat() const          { return m_enmFormat; }
     699    inline kFormat           getFormat() const RT_NOEXCEPT      { return m_enmFormat; }
    700700    /** Get the formatted/raw string value. */
    701     inline RTCString const  &getString() const          { return m_strFormatted; }
     701    inline RTCString const  &getString() const RT_NOEXCEPT      { return m_strFormatted; }
    702702
    703703    /** Get nanoseconds since unix epoch. */
    704     inline int64_t           getEpochNano() const       { return RTTimeSpecGetNano(&m_TimeSpec); }
     704    inline int64_t           getEpochNano() const RT_NOEXCEPT   { return RTTimeSpecGetNano(&m_TimeSpec); }
    705705    /** Get seconds since unix epoch. */
    706     inline int64_t           getEpochSeconds() const   { return RTTimeSpecGetSeconds(&m_TimeSpec); }
     706    inline int64_t           getEpochSeconds() const RT_NOEXCEPT { return RTTimeSpecGetSeconds(&m_TimeSpec); }
    707707    /** Checks if UTC time. */
    708     inline bool              isUtc() const             { return (m_Exploded.fFlags & RTTIME_FLAGS_TYPE_MASK) != RTTIME_FLAGS_TYPE_LOCAL; }
     708    inline bool              isUtc() const RT_NOEXCEPT { return (m_Exploded.fFlags & RTTIME_FLAGS_TYPE_MASK) != RTTIME_FLAGS_TYPE_LOCAL; }
    709709    /** Checks if local time. */
    710     inline bool              isLocal() const           { return (m_Exploded.fFlags & RTTIME_FLAGS_TYPE_MASK) == RTTIME_FLAGS_TYPE_LOCAL; }
     710    inline bool              isLocal() const RT_NOEXCEPT { return (m_Exploded.fFlags & RTTIME_FLAGS_TYPE_MASK) == RTTIME_FLAGS_TYPE_LOCAL; }
    711711
    712712protected:
     
    732732     * @param   a_enmFormat The format to use.
    733733     */
    734     int explodeAndFormat(kFormat a_enmFormat);
     734    int explodeAndFormat(kFormat a_enmFormat) RT_NOEXCEPT;
    735735
    736736    /**
     
    742742     * @param   a_enmFormat The format to use.
    743743     */
    744     int format(kFormat a_enmFormat);
     744    int format(kFormat a_enmFormat) RT_NOEXCEPT;
    745745
    746746    /**
     
    752752     * @param   enmFormat   Specific format to try, kFormat_Invalid (default) to try guess it.
    753753     */
    754     int decodeFormattedString(kFormat enmFormat = kFormat_Invalid);
     754    int decodeFormattedString(kFormat enmFormat = kFormat_Invalid) RT_NOEXCEPT;
    755755};
    756756
     
    775775
    776776    /** Default constructor. */
    777     RTCRestStringEnumBase();
     777    RTCRestStringEnumBase() RT_NOEXCEPT;
    778778    /** Destructor. */
    779779    virtual ~RTCRestStringEnumBase();
     
    785785
    786786    /** Safe copy assignment method. */
    787     int assignCopy(RTCRestStringEnumBase const &a_rThat);
    788     /** Safe copy assignment method. */
    789     inline int assignCopy(RTCString const &a_rThat)    { return setByString(a_rThat); }
    790     /** Safe copy assignment method. */
    791     inline int assignCopy(const char *a_pszThat)       { return setByString(a_pszThat); }
     787    int assignCopy(RTCRestStringEnumBase const &a_rThat) RT_NOEXCEPT;
     788    /** Safe copy assignment method. */
     789    inline int assignCopy(RTCString const &a_rThat) RT_NOEXCEPT    { return setByString(a_rThat); }
     790    /** Safe copy assignment method. */
     791    inline int assignCopy(const char *a_pszThat) RT_NOEXCEPT       { return setByString(a_pszThat); }
    792792
    793793    /* Overridden methods: */
    794     virtual int resetToDefault() RT_OVERRIDE;
    795     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    796     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    797     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
     794    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     795    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     796    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     797    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
    798798    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    799                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    800     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
     799                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     800    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
    801801
    802802    /**
     
    809809     * @param   a_cchValue      The string value length.  Optional.
    810810     */
    811     int setByString(const char *a_pszValue, size_t a_cchValue = RTSTR_MAX);
     811    int setByString(const char *a_pszValue, size_t a_cchValue = RTSTR_MAX) RT_NOEXCEPT;
    812812
    813813    /**
     
    819819     * @param   a_rValue        The string value.
    820820     */
    821     int setByString(RTCString const &a_rValue);
     821    int setByString(RTCString const &a_rValue) RT_NOEXCEPT;
    822822
    823823    /**
    824824     * Gets the string value.
    825825     */
    826     const char *getString() const;
     826    const char *getString() const RT_NOEXCEPT;
    827827
    828828    /** Maps the given string value to an enum. */
    829     int stringToEnum(const char *a_pszValue, size_t a_cchValue = RTSTR_MAX);
     829    int stringToEnum(const char *a_pszValue, size_t a_cchValue = RTSTR_MAX) RT_NOEXCEPT;
    830830    /** Maps the given string value to an enum. */
    831     int stringToEnum(RTCString const &a_rStrValue);
     831    int stringToEnum(RTCString const &a_rStrValue) RT_NOEXCEPT;
    832832    /** Maps the given string value to an enum. */
    833     const char *enumToString(int a_iEnumValue, size_t *a_pcchString);
     833    const char *enumToString(int a_iEnumValue, size_t *a_pcchString) RT_NOEXCEPT;
    834834
    835835
     
    847847     * @param   a_iEnumValue    The enum value to set.
    848848     */
    849     bool                setWorker(int a_iEnumValue);
     849    bool                setWorker(int a_iEnumValue) RT_NOEXCEPT;
    850850
    851851    /** Helper for implementing RTCRestObjectBase::clone(). */
    852     RTCRestObjectBase  *cloneWorker(RTCRestStringEnumBase *a_pDst) const;
     852    RTCRestObjectBase  *cloneWorker(RTCRestStringEnumBase *a_pDst) const RT_NOEXCEPT;
    853853
    854854    /**
     
    858858     * @param   pcEntries   Where to return the translation table size.
    859859     */
    860     virtual ENUMMAPENTRY const *getMappingTable(size_t *pcEntries) const = 0;
     860    virtual ENUMMAPENTRY const *getMappingTable(size_t *pcEntries) const RT_NOEXCEPT = 0;
    861861};
    862862
     
    874874
    875875    /** Default constructor */
    876     RTCRestStringEnum() : RTCRestStringEnumBase() { }
     876    RTCRestStringEnum() RT_NOEXCEPT : RTCRestStringEnumBase() { }
    877877    /** Constructor with initial enum value. */
    878     RTCRestStringEnum(Type a_enmValue) : RTCRestStringEnumBase() { set(a_enmValue); }
     878    RTCRestStringEnum(Type a_enmValue) RT_NOEXCEPT : RTCRestStringEnumBase() { set(a_enmValue); }
    879879    /** Constructor with string default. */
    880880    RTCRestStringEnum(const char *a_pszDefault) : RTCRestStringEnumBase() { setByString(a_pszDefault); }
     
    882882    RTCRestStringEnum(RTCRestStringEnum const &a_rThat) : RTCRestStringEnumBase(a_rThat) { }
    883883    /** Make a clone of this object. */
    884     inline RTCRestStringEnum *clone() const { return (RTCRestStringEnum *)baseClone(); }
    885 
    886     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE { return cloneWorker(new (std::nothrow) RTCRestStringEnum()); }
     884    inline RTCRestStringEnum *clone() const RT_NOEXCEPT { return (RTCRestStringEnum *)baseClone(); }
     885
     886    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE
     887    {
     888        return cloneWorker(new (std::nothrow) RTCRestStringEnum());
     889    }
    887890
    888891    /**
     
    892895     *          no value has been assigned yet.
    893896     */
    894     Type get() const { return (Type)m_iEnumValue; }
     897    Type get() const RT_NOEXCEPT { return (Type)m_iEnumValue; }
    895898
    896899    /**
     
    900903     * @param   a_enmType   The new value.
    901904     */
    902     bool set(Type a_enmType) { return setWorker((int)a_enmType); }
    903 
    904     virtual const char *typeName(void) const RT_OVERRIDE { return "RTCRestStringEnum<EnumType>"; }
     905    bool set(Type a_enmType) RT_NOEXCEPT { return setWorker((int)a_enmType); }
     906
     907    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE { return "RTCRestStringEnum<EnumType>"; }
    905908
    906909    /** Factory method. */
    907     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void)
     910    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT
    908911    {
    909912        return new (std::nothrow) RTCRestStringEnum();
     
    911914
    912915    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
    913     static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
     916    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
    914917    {
    915918        *a_ppInstance = new (std::nothrow) RTCRestStringEnum();
     
    925928    static const size_t       s_cMappingTable;
    926929
    927     virtual ENUMMAPENTRY const *getMappingTable(size_t *pcEntries) const RT_OVERRIDE
     930    virtual ENUMMAPENTRY const *getMappingTable(size_t *pcEntries) const RT_NOEXCEPT RT_OVERRIDE
    928931    {
    929932        *pcEntries = s_cMappingTable;
     
    943946public:
    944947    /** Default constructor. */
    945     RTCRestBinary();
     948    RTCRestBinary() RT_NOEXCEPT;
    946949    /** Destructor. */
    947950    virtual ~RTCRestBinary();
    948951
    949952    /** Safe copy assignment method. */
    950     virtual int assignCopy(RTCRestBinary const &a_rThat);
     953    virtual int assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT;
    951954    /** Safe buffer copy method. */
    952     virtual int assignCopy(void const *a_pvData, size_t a_cbData);
     955    virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT;
    953956
    954957    /** Use the specified data buffer directly. */
    955     virtual int assignReadOnly(void const *a_pvData, size_t a_cbData);
     958    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT;
    956959    /** Use the specified data buffer directly. */
    957     virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf);
     960    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT;
    958961    /** Frees the data held by the object and resets it default state. */
    959     virtual void freeData();
     962    virtual void freeData() RT_NOEXCEPT;
    960963
    961964    /** Returns a pointer to the data blob. */
    962     inline const uint8_t  *getPtr()  const { return m_pbData; }
     965    inline const uint8_t  *getPtr()  const RT_NOEXCEPT { return m_pbData; }
    963966    /** Gets the size of the data. */
    964     inline size_t          getSize() const { return m_cbData; }
     967    inline size_t          getSize() const RT_NOEXCEPT { return m_cbData; }
    965968
    966969    /** Make a clone of this object. */
    967     inline RTCRestBinary  *clone() const { return (RTCRestBinary *)baseClone(); }
     970    inline RTCRestBinary  *clone() const RT_NOEXCEPT { return (RTCRestBinary *)baseClone(); }
    968971
    969972    /* Overridden methods: */
    970     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    971     virtual int setNull(void) RT_OVERRIDE;
    972     virtual int resetToDefault(void) RT_OVERRIDE;
    973     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    974     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    975     virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
     973    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     974    virtual int setNull(void) RT_NOEXCEPT RT_OVERRIDE;
     975    virtual int resetToDefault(void) RT_NOEXCEPT RT_OVERRIDE;
     976    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     977    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     978    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
    976979    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    977                            uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    978     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    979     virtual const char *typeName(void) const RT_OVERRIDE;
     980                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     981    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     982    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    980983
    981984    /** Factory method. */
    982     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
    983     /** Deserialization w/ instantiation. */
    984     static FNDESERIALIZEINSTANCEFROMJSON deserializeInstanceFromJson;
     985    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
     986    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
     987    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT;
    985988
    986989protected:
     
    10091012{
    10101013public:
    1011     RTCRestDataObject();
    1012     RTCRestDataObject(RTCRestDataObject const &a_rThat);
     1014    RTCRestDataObject() RT_NOEXCEPT;
     1015    RTCRestDataObject(RTCRestDataObject const &a_rThat) RT_NOEXCEPT;
    10131016    virtual ~RTCRestDataObject();
    10141017
    10151018    /* Overridden methods:*/
    1016     virtual int resetToDefault() RT_OVERRIDE;
    1017     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    1018     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    1019     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
     1019    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     1020    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     1021    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
     1022    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
    10201023
    10211024    /**
     
    10251028     * @param   a_rDst      The destination for the serialization.
    10261029     */
    1027     virtual RTCRestOutputBase &serializeMembersAsJson(RTCRestOutputBase &a_rDst) const;
     1030    virtual RTCRestOutputBase &serializeMembersAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT;
    10281031
    10291032    /**
     
    10371040     * @param   a_cchName   The length of a_rCursor.m_pszName.
    10381041     */
    1039     virtual int deserializeMemberFromJson(RTCRestJsonCursor const &a_rCursor, size_t a_cchName);
     1042    virtual int deserializeMemberFromJson(RTCRestJsonCursor const &a_rCursor, size_t a_cchName) RT_NOEXCEPT;
    10401043
    10411044protected:
     
    10441047
    10451048    /** Copy assignment operator. */
    1046     RTCRestDataObject &operator=(RTCRestDataObject const &a_rThat);
    1047 
    1048     /** Safe copy assignment method. */
    1049     virtual int assignCopy(RTCRestDataObject const &a_rThat);
     1049    RTCRestDataObject &operator=(RTCRestDataObject const &a_rThat) RT_NOEXCEPT;
     1050
     1051    /** Safe copy assignment method. */
     1052    virtual int assignCopy(RTCRestDataObject const &a_rThat) RT_NOEXCEPT;
    10501053};
    10511054
     
    10571060{
    10581061public:
    1059     RTCRestPolyDataObject();
    1060     RTCRestPolyDataObject(RTCRestPolyDataObject const &a_rThat);
     1062    RTCRestPolyDataObject() RT_NOEXCEPT;
     1063    RTCRestPolyDataObject(RTCRestPolyDataObject const &a_rThat) RT_NOEXCEPT;
    10611064    virtual ~RTCRestPolyDataObject();
    10621065
    10631066    /* Overridden methods:*/
    1064     virtual int resetToDefault() RT_OVERRIDE;
     1067    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
    10651068
    10661069    /** Checks if the instance is of a child class (@c true) or of the parent (@c false). */
    1067     virtual bool isChild() const;
     1070    virtual bool isChild() const RT_NOEXCEPT;
    10681071
    10691072protected:
    10701073
    10711074    /** Copy assignment operator. */
    1072     RTCRestPolyDataObject &operator=(RTCRestPolyDataObject const &a_rThat);
     1075    RTCRestPolyDataObject &operator=(RTCRestPolyDataObject const &a_rThat) RT_NOEXCEPT;
    10731076};
    10741077
  • trunk/include/iprt/cpp/restclient.h

    r74414 r74425  
    4646public:
    4747    /** Default constructor. */
    48     RTCRestBinaryParameter();
     48    RTCRestBinaryParameter() RT_NOEXCEPT;
    4949
    5050    /** Safe copy assignment method. */
    51     virtual int assignCopy(RTCRestBinaryParameter const &a_rThat);
     51    virtual int assignCopy(RTCRestBinaryParameter const &a_rThat) RT_NOEXCEPT;
    5252    /** Safe copy assignment method.
    5353      * @note Resets callbacks and ASSUMES that @a a_cbData is the content length. */
    54     virtual int assignCopy(RTCRestBinary const &a_rThat) RT_OVERRIDE;
     54    virtual int assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT RT_OVERRIDE;
    5555    /** Safe copy assignment method.
    5656     * @note Resets callbacks and ASSUMES that @a a_cbData is the content length. */
    57     virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_OVERRIDE;
     57    virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT RT_OVERRIDE;
    5858
    5959    /**
    6060     * Use the specified data buffer directly.
    6161     * @note Resets callbacks and ASSUMES that @a a_cbData is the content length. */
    62     virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_OVERRIDE;
     62    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT RT_OVERRIDE;
    6363    /**
    6464     * Use the specified data buffer directly.
    6565     * @note This will assert and work like assignReadOnly. */
    66     virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_OVERRIDE;
     66    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT RT_OVERRIDE;
    6767
    6868    /** Make a clone of this object. */
    69     inline RTCRestBinaryParameter *clone() const { return (RTCRestBinaryParameter *)baseClone(); }
     69    inline RTCRestBinaryParameter *clone() const RT_NOEXCEPT { return (RTCRestBinaryParameter *)baseClone(); }
    7070
    7171    /* Overridden methods: */
    72     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    73     virtual int resetToDefault() RT_OVERRIDE;
    74     virtual const char *typeName(void) const RT_OVERRIDE;
     72    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     73    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     74    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    7575
    7676    /** Factory method. */
    77     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
     77    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
    7878
    7979    /**
    8080     * Retrieves the callback data.
    8181     */
    82     inline void *getCallbackData() const { return m_pvCallbackData; }
     82    inline void *getCallbackData() const RT_NOEXCEPT { return m_pvCallbackData; }
    8383
    8484    /**
     
    8989     *                              If NULL, no content type is set.
    9090     */
    91     int setContentType(const char *a_pszContentType);
     91    int setContentType(const char *a_pszContentType) RT_NOEXCEPT;
    9292
    9393    /**
    9494     * Gets the content type that was set.
    9595     */
    96     inline RTCString const &getContentType() const { return m_strContentType; }
     96    inline RTCString const &getContentType() const RT_NOEXCEPT { return m_strContentType; }
    9797
    9898    /**
    9999     * Gets the content-length value (UINT64_MAX if not available).
    100100     */
    101     inline uint64_t getContentLength() const { return m_cbContentLength; }
     101    inline uint64_t getContentLength() const RT_NOEXCEPT { return m_cbContentLength; }
    102102
    103103    /**
     
    118118     */
    119119    typedef DECLCALLBACK(int) FNPRODUCER(RTCRestBinaryParameter *a_pThis, void *a_pvDst, size_t a_cbDst,
    120                                          uint64_t a_offContent, size_t *a_pcbActual);
     120                                         uint64_t a_offContent, size_t *a_pcbActual) /*RT_NOEXCEPT*/;
    121121    /** Pointer to a byte producer callback. */
    122122    typedef FNPRODUCER *PFNPRODUCER;
     
    134134     * @note    This will drop any buffer previously registered using setUploadData().
    135135     */
    136     void setProducerCallback(PFNPRODUCER a_pfnProducer, void *a_pvCallbackData = NULL, uint64_t a_cbContentLength = UINT64_MAX);
     136    void setProducerCallback(PFNPRODUCER a_pfnProducer, void *a_pvCallbackData = NULL, uint64_t a_cbContentLength = UINT64_MAX) RT_NOEXCEPT;
    137137
    138138    /**
     
    143143     * @internal
    144144     */
    145     virtual int xmitPrepare(RTHTTP a_hHttp) const;
     145    virtual int xmitPrepare(RTHTTP a_hHttp) const RT_NOEXCEPT;
    146146
    147147    /**
     
    151151     * @internal
    152152     */
    153     virtual void xmitComplete(RTHTTP a_hHttp) const;
     153    virtual void xmitComplete(RTHTTP a_hHttp) const RT_NOEXCEPT;
    154154
    155155protected:
     
    164164    void       *m_pvCallbackData;
    165165
    166     /** Callback for use with RTHttpSetUploadCallback. */
    167     static FNRTHTTPUPLOADCALLBACK   xmitHttpCallback;
     166    /** @copydoc FNRTHTTPUPLOADCALLBACK */
     167    static DECLCALLBACK(int) xmitHttpCallback(RTHTTP hHttp, void *pvBuf, size_t cbBuf, uint64_t offContent,
     168                                              size_t *pcbActual, void *pvUser) RT_NOEXCEPT;
    168169
    169170private:
     
    183184public:
    184185    /** Default constructor. */
    185     RTCRestBinaryResponse();
     186    RTCRestBinaryResponse() RT_NOEXCEPT;
    186187
    187188    /** Safe copy assignment method. */
    188     virtual int assignCopy(RTCRestBinaryResponse const &a_rThat);
     189    virtual int assignCopy(RTCRestBinaryResponse const &a_rThat) RT_NOEXCEPT;
    189190    /** Safe copy assignment method. */
    190     virtual int assignCopy(RTCRestBinary const &a_rThat) RT_OVERRIDE;
     191    virtual int assignCopy(RTCRestBinary const &a_rThat) RT_NOEXCEPT RT_OVERRIDE;
    191192    /** Safe copy assignment method.
    192193     * @note This will assert and fail as it makes no sense for a download.  */
    193     virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_OVERRIDE;
     194    virtual int assignCopy(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT RT_OVERRIDE;
    194195
    195196    /**
     
    197198     * @note This will assert and fail as it makes no sense for a download.
    198199     */
    199     virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_OVERRIDE;
     200    virtual int assignReadOnly(void const *a_pvData, size_t a_cbData) RT_NOEXCEPT RT_OVERRIDE;
    200201    /**
    201202     * Use the specified data buffer directly.
    202203     * @note This will drop any previously registered producer callback and user data.
    203204     */
    204     virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_OVERRIDE;
     205    virtual int assignWriteable(void *a_pvBuf, size_t a_cbBuf) RT_NOEXCEPT RT_OVERRIDE;
    205206
    206207    /** Make a clone of this object. */
    207     inline RTCRestBinaryResponse *clone() const { return (RTCRestBinaryResponse *)baseClone(); }
     208    inline RTCRestBinaryResponse *clone() const RT_NOEXCEPT { return (RTCRestBinaryResponse *)baseClone(); }
    208209
    209210    /* Overridden methods: */
    210     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    211     virtual int resetToDefault() RT_OVERRIDE;
    212     virtual const char *typeName(void) const RT_OVERRIDE;
     211    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     212    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     213    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    213214
    214215    /** Factory method. */
    215     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void);
     216    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT;
    216217
    217218    /**
    218219     * Retrieves the callback data.
    219220     */
    220     inline void *getCallbackData() const { return m_pvCallbackData; }
     221    inline void *getCallbackData() const RT_NOEXCEPT { return m_pvCallbackData; }
    221222
    222223    /**
     
    230231     *                          32-bit hosts and 128MiB for 64-bit).
    231232     */
    232     void setMaxDownloadSize(size_t a_cbMaxDownload);
     233    void setMaxDownloadSize(size_t a_cbMaxDownload) RT_NOEXCEPT;
    233234
    234235    /**
    235236     * Gets the content-length value (UINT64_MAX if not available).
    236237     */
    237     inline uint64_t getContentLength() const { return m_cbContentLength; }
     238    inline uint64_t getContentLength() const RT_NOEXCEPT { return m_cbContentLength; }
    238239
    239240    /**
     
    255256     */
    256257    typedef DECLCALLBACK(int) FNCONSUMER(RTCRestBinaryResponse *a_pThis, const void *a_pvSrc, size_t a_cbSrc,
    257                                          uint32_t a_uHttpStatus, uint64_t a_offContent, uint64_t a_cbContent);
     258                                         uint32_t a_uHttpStatus, uint64_t a_offContent, uint64_t a_cbContent) /*RT_NOEXCEPT*/;
    258259    /** Pointer to a byte consumer callback. */
    259260    typedef FNCONSUMER *PFNCONSUMER;
     
    267268     *                              using getCallbackData().
    268269     */
    269     void setConsumerCallback(PFNCONSUMER a_pfnConsumer, void *a_pvCallbackData = NULL);
     270    void setConsumerCallback(PFNCONSUMER a_pfnConsumer, void *a_pvCallbackData = NULL) RT_NOEXCEPT;
    270271
    271272    /**
     
    277278     * @internal
    278279     */
    279     virtual int receivePrepare(RTHTTP a_hHttp, uint32_t a_fCallbackFlags);
     280    virtual int receivePrepare(RTHTTP a_hHttp, uint32_t a_fCallbackFlags) RT_NOEXCEPT;
    280281
    281282    /**
     
    285286     * @internal
    286287     */
    287     virtual void receiveComplete(RTHTTP a_hHttp);
     288    virtual void receiveComplete(RTHTTP a_hHttp) RT_NOEXCEPT;
    288289
    289290protected:
     
    300301    size_t      m_cbMaxDownload;
    301302
    302     /** Callback for use with RTHttpSetDownloadCallback. */
    303     static FNRTHTTPDOWNLOADCALLBACK receiveHttpCallback;
     303    /** @copydoc FNRTHTTPDOWNLOADCALLBACK. */
     304    static DECLCALLBACK(int) receiveHttpCallback(RTHTTP hHttp, void const *pvBuf, size_t cbBuf, uint32_t uHttpStatus,
     305                                                 uint64_t offContent, uint64_t cbContent, void *pvUser) RT_NOEXCEPT;
    304306
    305307private:
     
    331333{
    332334public:
    333     RTCRestClientRequestBase();
     335    RTCRestClientRequestBase() RT_NOEXCEPT;
    334336    virtual ~RTCRestClientRequestBase();
    335     RTCRestClientRequestBase(RTCRestClientRequestBase const &a_rThat);
    336     RTCRestClientRequestBase &operator=(RTCRestClientRequestBase const &a_rThat);
     337    RTCRestClientRequestBase(RTCRestClientRequestBase const &a_rThat) RT_NOEXCEPT;
     338    RTCRestClientRequestBase &operator=(RTCRestClientRequestBase const &a_rThat) RT_NOEXCEPT;
    337339
    338340    /**
     
    340342     * @returns IPRT status code.
    341343     */
    342     virtual int resetToDefault() = 0;
     344    virtual int resetToDefault() RT_NOEXCEPT = 0;
    343345
    344346    /**
     
    351353     * @param   a_pStrBody  Where to set body parameters.
    352354     */
    353     virtual int xmitPrepare(RTCString *a_pStrPath, RTCString *a_pStrQuery, RTHTTP a_hHttp, RTCString *a_pStrBody) const = 0;
     355    virtual int xmitPrepare(RTCString *a_pStrPath, RTCString *a_pStrQuery, RTHTTP a_hHttp, RTCString *a_pStrBody) const RT_NOEXCEPT = 0;
    354356
    355357    /**
     
    359361     * @param   a_hHttp     The HTTP handle the request was performed on.
    360362     */
    361     virtual void xmitComplete(int a_rcStatus, RTHTTP a_hHttp) const = 0;
     363    virtual void xmitComplete(int a_rcStatus, RTHTTP a_hHttp) const RT_NOEXCEPT = 0;
    362364
    363365    /**
    364366     * Checks if there are were any assignment errors.
    365367     */
    366     inline bool hasAssignmentErrors() const { return m_fErrorSet != 0; }
     368    inline bool hasAssignmentErrors() const RT_NOEXCEPT { return m_fErrorSet != 0; }
    367369
    368370protected:
     
    400402     */
    401403    int doPathParameters(RTCString *a_pStrPath, const char *a_pszPathTemplate, size_t a_cchPathTemplate,
    402                          PATHPARAMDESC const *a_paPathParams, PATHPARAMSTATE *a_paPathParamStates, size_t a_cPathParams) const;
     404                         PATHPARAMDESC const *a_paPathParams, PATHPARAMSTATE *a_paPathParamStates, size_t a_cPathParams) const RT_NOEXCEPT;
    403405
    404406    /** Query parameter descriptor. */
     
    421423     */
    422424    int doQueryParameters(RTCString *a_pStrQuery, QUERYPARAMDESC const *a_paQueryParams,
    423                           RTCRestObjectBase const **a_papQueryParamObjs, size_t a_cQueryParams) const;
     425                          RTCRestObjectBase const **a_papQueryParamObjs, size_t a_cQueryParams) const RT_NOEXCEPT;
    424426
    425427    /** Header parameter descriptor. */
     
    443445     */
    444446    int doHeaderParameters(RTHTTP a_hHttp, HEADERPARAMDESC const *a_paHeaderParams,
    445                            RTCRestObjectBase const **a_papHeaderParamObjs, size_t a_cHeaderParams) const;
     447                           RTCRestObjectBase const **a_papHeaderParamObjs, size_t a_cHeaderParams) const RT_NOEXCEPT;
    446448};
    447449
     
    454456public:
    455457    /** Default constructor. */
    456     RTCRestClientResponseBase();
     458    RTCRestClientResponseBase() RT_NOEXCEPT;
    457459    /** Destructor. */
    458460    virtual ~RTCRestClientResponseBase();
     
    465467     * Resets the object state.
    466468     */
    467     virtual void reset(void);
     469    virtual void reset(void) RT_NOEXCEPT;
    468470
    469471    /**
     
    477479     * @param   a_hHttp     The HTTP handle to prepare for receiving.
    478480     */
    479     virtual int receivePrepare(RTHTTP a_hHttp);
     481    virtual int receivePrepare(RTHTTP a_hHttp) RT_NOEXCEPT;
    480482
    481483    /**
     
    489491     * @note    Called before consumeBody() but after consumeHeader().
    490492     */
    491     virtual void receiveComplete(int a_rcStatus, RTHTTP a_hHttp);
     493    virtual void receiveComplete(int a_rcStatus, RTHTTP a_hHttp) RT_NOEXCEPT;
    492494
    493495    /**
     
    499501     * @note    Called after consumeHeader().
    500502     */
    501     virtual void consumeBody(const char *a_pchData, size_t a_cbData);
     503    virtual void consumeBody(const char *a_pchData, size_t a_cbData) RT_NOEXCEPT;
    502504
    503505    /**
     
    506508     * @returns IPRT status code.
    507509     */
    508     virtual void receiveFinal();
     510    virtual void receiveFinal() RT_NOEXCEPT;
    509511
    510512    /**
     
    512514     * @returns Negative numbers are IPRT errors, positive are HTTP status codes.
    513515     */
    514     inline int getStatus() { return m_rcStatus; }
     516    inline int getStatus() const RT_NOEXCEPT { return m_rcStatus; }
    515517
    516518    /**
     
    518520     * @returns HTTP status code or VERR_NOT_AVAILABLE.
    519521     */
    520     inline int getHttpStatus() { return m_rcHttp; }
     522    inline int getHttpStatus() const RT_NOEXCEPT { return m_rcHttp; }
    521523
    522524    /**
    523525     * Getter for m_pErrInfo.
    524526     */
    525     inline PCRTERRINFO getErrInfo(void) const { return m_pErrInfo; }
     527    inline PCRTERRINFO getErrInfo(void) const RT_NOEXCEPT { return m_pErrInfo; }
    526528
    527529    /**
    528530     * Getter for m_strContentType.
    529531     */
    530     inline RTCString const &getContentType(void) const { return m_strContentType; }
     532    inline RTCString const &getContentType(void) const RT_NOEXCEPT { return m_strContentType; }
    531533
    532534
     
    541543    RTCString   m_strContentType;
    542544
    543     PRTERRINFO  getErrInfoInternal(void);
    544     void        deleteErrInfo(void);
    545     void        copyErrInfo(PCRTERRINFO pErrInfo);
     545    PRTERRINFO  getErrInfoInternal(void) RT_NOEXCEPT;
     546    void        deleteErrInfo(void) RT_NOEXCEPT;
     547    void        copyErrInfo(PCRTERRINFO pErrInfo) RT_NOEXCEPT;
    546548
    547549    /**
     
    556558     * @param   ...         Message arguments.
    557559     */
    558     int addError(int a_rc, const char *a_pszFormat, ...);
     560    int addError(int a_rc, const char *a_pszFormat, ...) RT_NOEXCEPT;
    559561
    560562    /**
     
    570572     */
    571573    int deserializeHeader(RTCRestObjectBase *a_pObj, const char *a_pchValue, size_t a_cchValue,
    572                           uint32_t a_fFlags, const char *a_pszErrorTag);
     574                          uint32_t a_fFlags, const char *a_pszErrorTag) RT_NOEXCEPT;
    573575
    574576    /**
     
    587589     */
    588590    int deserializeHeaderIntoMap(RTCRestStringMapBase *a_pMap, const char *a_pchField, size_t a_cchField,
    589                                  const char *a_pchValue, size_t a_cchValue, uint32_t a_fFlags, const char *a_pszErrorTag);
     591                                 const char *a_pchValue, size_t a_cchValue, uint32_t a_fFlags, const char *a_pszErrorTag) RT_NOEXCEPT;
    590592
    591593    /**
     
    597599     * @param   a_pszBodyName   The name of the body parameter.
    598600     */
    599     void deserializeBody(const char *a_pchData, size_t a_cbData, const char *a_pszBodyName);
     601    void deserializeBody(const char *a_pchData, size_t a_cbData, const char *a_pszBodyName) RT_NOEXCEPT;
    600602
    601603    /**
     
    604606     * @param   a_rCursor       The JSON cursor.
    605607     */
    606     virtual void deserializeBodyFromJsonCursor(RTCRestJsonCursor const &a_rCursor);
     608    virtual void deserializeBodyFromJsonCursor(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT;
    607609
    608610    /**
     
    613615    public:
    614616        RTCRestClientResponseBase *m_pThat; /**< Pointer to response object. */
    615         PrimaryJsonCursorForBody(RTJSONVAL hValue, const char *pszName, RTCRestClientResponseBase *a_pThat);
    616         virtual int addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...) RT_OVERRIDE;
    617         virtual int unknownField(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
     617        PrimaryJsonCursorForBody(RTJSONVAL hValue, const char *pszName, RTCRestClientResponseBase *a_pThat) RT_NOEXCEPT;
     618        virtual int addError(RTCRestJsonCursor const &a_rCursor, int a_rc, const char *a_pszFormat, ...) RT_NOEXCEPT RT_OVERRIDE;
     619        virtual int unknownField(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
    618620    };
    619621
     
    634636     */
    635637    virtual int consumeHeader(uint32_t a_uMatchWord, const char *a_pchField, size_t a_cchField,
    636                               const char *a_pchValue, size_t a_cchValue);
     638                              const char *a_pchValue, size_t a_cchValue) RT_NOEXCEPT;
    637639
    638640private:
    639641    /** Callback for use with RTHttpSetHeaderCallback. */
    640     static FNRTHTTPHEADERCALLBACK receiveHttpHeaderCallback;
     642    static DECLCALLBACK(int) receiveHttpHeaderCallback(RTHTTP hHttp, uint32_t uMatchWord, const char *pchField, size_t cchField,
     643                                                       const char *pchValue, size_t cchValue, void *pvUser) RT_NOEXCEPT;
    641644};
    642645
     
    648651{
    649652public:
    650     RTCRestClientApiBase();
     653    RTCRestClientApiBase() RT_NOEXCEPT;
    651654    virtual ~RTCRestClientApiBase();
    652655
     
    656659     * Gets the server URL.
    657660     */
    658     const char *getServerUrl(void) const;
     661    const char *getServerUrl(void) const RT_NOEXCEPT;
    659662
    660663    /**
     
    663666     * @param   a_pszUrl        The new server URL.  NULL/empty to reset to default.
    664667     */
    665     int setServerUrl(const char *a_pszUrl);
     668    int setServerUrl(const char *a_pszUrl) RT_NOEXCEPT;
    666669
    667670    /**
     
    670673     * @param   a_pszScheme     The new scheme.  Does not accept NULL or empty string.
    671674     */
    672     int setServerScheme(const char *a_pszScheme);
     675    int setServerScheme(const char *a_pszScheme) RT_NOEXCEPT;
    673676
    674677    /**
     
    677680     * @param   a_pszAuthority  The new authority.  Does not accept NULL or empty string.
    678681     */
    679     int setServerAuthority(const char *a_pszAuthority);
     682    int setServerAuthority(const char *a_pszAuthority) RT_NOEXCEPT;
    680683
    681684    /**
     
    684687     * @param   a_pszBasePath   The new base path.  Does not accept NULL or empty string.
    685688     */
    686     int setServerBasePath(const char *a_pszBasePath);
     689    int setServerBasePath(const char *a_pszBasePath) RT_NOEXCEPT;
    687690
    688691    /**
     
    690693     * @returns Server URL.
    691694     */
    692     virtual const char *getDefaultServerUrl() const = 0;
     695    virtual const char *getDefaultServerUrl() const RT_NOEXCEPT = 0;
    693696
    694697    /**
     
    696699     * @returns Host string (start of URL).
    697700     */
    698     virtual const char *getDefaultServerBasePath() const = 0;
     701    virtual const char *getDefaultServerBasePath() const RT_NOEXCEPT = 0;
    699702    /** @} */
    700703
     
    720723     * @returns IPRT status code.
    721724     */
    722     virtual int reinitHttpInstance();
     725    virtual int reinitHttpInstance() RT_NOEXCEPT;
    723726
    724727    /**
     
    735738     */
    736739    virtual int xmitReady(RTHTTP a_hHttp, RTCString const &a_rStrFullUrl, RTHTTPMETHOD a_enmHttpMethod,
    737                           RTCString const &a_rStrXmitBody, uint32_t a_fFlags);
     740                          RTCString const &a_rStrXmitBody, uint32_t a_fFlags) RT_NOEXCEPT;
    738741
    739742    /**
     
    748751     */
    749752    virtual int doCall(RTCRestClientRequestBase const &a_rRequest, RTHTTPMETHOD a_enmHttpMethod,
    750                        RTCRestClientResponseBase *a_pResponse, const char *a_pszMethod, uint32_t a_fFlags);
     753                       RTCRestClientResponseBase *a_pResponse, const char *a_pszMethod, uint32_t a_fFlags) RT_NOEXCEPT;
    751754
    752755    /**
     
    766769     */
    767770    int ociSignRequest(RTHTTP a_hHttp, RTCString const &a_rStrFullUrl, RTHTTPMETHOD a_enmHttpMethod,
    768                        RTCString const &a_rStrXmitBody, uint32_t a_fFlags, RTCRKEY a_hKey, RTCString const &a_rStrKeyId);
     771                       RTCString const &a_rStrXmitBody, uint32_t a_fFlags, RTCRKEY a_hKey, RTCString const &a_rStrKeyId) RT_NOEXCEPT;
    769772
    770773    /**
     
    778781     * @param   a_cchSrc        The length of the new component.
    779782     */
    780     int setServerUrlPart(const char *a_pszServerUrl, size_t a_offDst, size_t a_cchDst, const char *a_pszSrc, size_t a_cchSrc);
     783    int setServerUrlPart(const char *a_pszServerUrl, size_t a_offDst, size_t a_cchDst, const char *a_pszSrc, size_t a_cchSrc) RT_NOEXCEPT;
    781784};
    782785
  • trunk/include/iprt/cpp/restoutput.h

    r74415 r74425  
    4545{
    4646public:
    47     RTCRestOutputBase();
     47    RTCRestOutputBase() RT_NOEXCEPT;
    4848    virtual ~RTCRestOutputBase();
    4949
     
    5555     * @param   a_cchToWrite    The length of the string
    5656     */
    57     virtual size_t output(const char *a_pchString, size_t a_cchToWrite) = 0;
     57    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_NOEXCEPT = 0;
    5858
    5959    /**
     
    6464     * @param   ...         Argument specfied in @a pszFormat.
    6565     */
    66     inline size_t printf(const char *pszFormat, ...) RT_IPRT_FORMAT_ATTR(2, 3)
     66    inline size_t printf(const char *pszFormat, ...) RT_NOEXCEPT RT_IPRT_FORMAT_ATTR(2, 3)
    6767    {
    6868        va_list va;
     
    8080     * @param   va          Argument specfied in @a pszFormat.
    8181     */
    82     size_t vprintf(const char *pszFormat, va_list va) RT_IPRT_FORMAT_ATTR(2, 0);
     82    size_t vprintf(const char *pszFormat, va_list va) RT_NOEXCEPT RT_IPRT_FORMAT_ATTR(2, 0);
    8383
    8484    /**
     
    8686     * @returns Previous output state.  Pass to endArray() when done.
    8787     */
    88     virtual uint32_t beginArray();
     88    virtual uint32_t beginArray() RT_NOEXCEPT;
    8989
    9090    /**
     
    9292     * @param   a_uOldState     Previous output state (returned by beginArray()).
    9393     */
    94     virtual void endArray(uint32_t a_uOldState);
     94    virtual void endArray(uint32_t a_uOldState) RT_NOEXCEPT;
    9595
    9696    /**
     
    9898     * @returns Previous output state.  Pass to endObject() when done.
    9999     */
    100     virtual uint32_t beginObject();
     100    virtual uint32_t beginObject() RT_NOEXCEPT;
    101101
    102102    /**
     
    104104     * @param   a_uOldState     Previous output state (returned by beginObject()).
    105105     */
    106     virtual void endObject(uint32_t a_uOldState);
     106    virtual void endObject(uint32_t a_uOldState) RT_NOEXCEPT;
    107107
    108108    /**
     
    110110     * This is called before a value, not after.
    111111     */
    112     virtual void valueSeparator();
     112    virtual void valueSeparator() RT_NOEXCEPT;
    113113
    114114    /**
    115115     * Outputs a value separator, name and name separator.
    116116     */
    117     virtual void valueSeparatorAndName(const char *a_pszName, size_t a_cchName);
     117    virtual void valueSeparatorAndName(const char *a_pszName, size_t a_cchName) RT_NOEXCEPT;
    118118
    119119    /** Outputs a null-value. */
    120     void nullValue();
     120    void nullValue() RT_NOEXCEPT;
    121121
    122122protected:
     
    125125
    126126    /** @callback_method_impl{FNRTSTROUTPUT} */
    127     static DECLCALLBACK(size_t) printfOutputCallback(void *pvArg, const char *pachChars, size_t cbChars);
     127    static DECLCALLBACK(size_t) printfOutputCallback(void *pvArg, const char *pachChars, size_t cbChars) RT_NOEXCEPT;
    128128};
    129129
     
    135135{
    136136public:
    137     RTCRestOutputPrettyBase();
     137    RTCRestOutputPrettyBase() RT_NOEXCEPT;
    138138    virtual ~RTCRestOutputPrettyBase();
    139139
     
    142142     * @returns Previous output state.  Pass to endArray() when done.
    143143     */
    144     virtual uint32_t beginArray() RT_OVERRIDE;
     144    virtual uint32_t beginArray() RT_NOEXCEPT RT_OVERRIDE;
    145145
    146146    /**
     
    148148     * @param   a_uOldState     Previous output state (returned by beginArray()).
    149149     */
    150     virtual void endArray(uint32_t a_uOldState) RT_OVERRIDE;
     150    virtual void endArray(uint32_t a_uOldState) RT_NOEXCEPT RT_OVERRIDE;
    151151
    152152    /**
     
    154154     * @returns Previous output state.  Pass to endObject() when done.
    155155     */
    156     virtual uint32_t beginObject() RT_OVERRIDE;
     156    virtual uint32_t beginObject() RT_NOEXCEPT RT_OVERRIDE;
    157157
    158158    /**
     
    160160     * @param   a_uOldState     Previous output state (returned by beginObject()).
    161161     */
    162     virtual void endObject(uint32_t a_uOldState) RT_OVERRIDE;
     162    virtual void endObject(uint32_t a_uOldState) RT_NOEXCEPT RT_OVERRIDE;
    163163
    164164    /**
     
    166166     * This is called before a value, not after.
    167167     */
    168     virtual void valueSeparator() RT_OVERRIDE;
     168    virtual void valueSeparator() RT_NOEXCEPT RT_OVERRIDE;
    169169
    170170    /**
    171171     * Outputs a value separator, name and name separator.
    172172     */
    173     virtual void valueSeparatorAndName(const char *a_pszName, size_t a_cchName) RT_OVERRIDE;
     173    virtual void valueSeparatorAndName(const char *a_pszName, size_t a_cchName) RT_NOEXCEPT RT_OVERRIDE;
    174174
    175175protected:
    176176    /** Helper for outputting the correct amount of indentation. */
    177     void outputIndentation();
     177    void outputIndentation() RT_NOEXCEPT;
    178178};
    179179
     
    192192     *                      nuke the string content before starting the output.
    193193     */
    194     RTCRestOutputToString(RTCString *a_pDst, bool a_fAppend = false);
     194    RTCRestOutputToString(RTCString *a_pDst, bool a_fAppend = false) RT_NOEXCEPT;
    195195    virtual ~RTCRestOutputToString();
    196196
    197     virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_OVERRIDE;
     197    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_NOEXCEPT RT_OVERRIDE;
    198198
    199199    /**
     
    206206     *          more output afterwards.
    207207     */
    208     virtual RTCString *finalize();
     208    virtual RTCString *finalize() RT_NOEXCEPT;
    209209
    210210protected:
     
    233233     *                      nuke the string content before starting the output.
    234234     */
    235     RTCRestOutputPrettyToString(RTCString *a_pDst, bool a_fAppend = false);
     235    RTCRestOutputPrettyToString(RTCString *a_pDst, bool a_fAppend = false) RT_NOEXCEPT;
    236236    virtual ~RTCRestOutputPrettyToString();
    237237
    238     virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_OVERRIDE;
     238    virtual size_t output(const char *a_pchString, size_t a_cchToWrite) RT_NOEXCEPT RT_OVERRIDE;
    239239
    240240    /**
     
    247247     *          more output afterwards.
    248248     */
    249     virtual RTCString *finalize();
     249    virtual RTCString *finalize() RT_NOEXCEPT;
    250250
    251251protected:
  • trunk/include/iprt/cpp/reststringmap.h

    r74402 r74425  
    4444public:
    4545    /** Default destructor. */
    46     RTCRestStringMapBase();
     46    RTCRestStringMapBase() RT_NOEXCEPT;
    4747    /** Copy constructor. */
    4848    RTCRestStringMapBase(RTCRestStringMapBase const &a_rThat);
     
    5353
    5454    /* Overridden methods: */
    55     virtual RTCRestObjectBase *baseClone() const RT_OVERRIDE;
    56     virtual int resetToDefault() RT_OVERRIDE;
    57     virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    58     virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
     55    virtual RTCRestObjectBase *baseClone() const RT_NOEXCEPT RT_OVERRIDE;
     56    virtual int resetToDefault() RT_NOEXCEPT RT_OVERRIDE;
     57    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_NOEXCEPT RT_OVERRIDE;
     58    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_NOEXCEPT RT_OVERRIDE;
    5959    // later?
    60     //virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_OVERRIDE;
     60    //virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = kCollectionFormat_Unspecified) const RT_NOEXCEPT RT_OVERRIDE;
    6161    //virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
    62     //                       uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    63     virtual kTypeClass typeClass(void) const RT_OVERRIDE;
    64     virtual const char *typeName(void) const RT_OVERRIDE;
     62    //                       uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_NOEXCEPT RT_OVERRIDE;
     63    virtual kTypeClass typeClass(void) const RT_NOEXCEPT RT_OVERRIDE;
     64    virtual const char *typeName(void) const RT_NOEXCEPT RT_OVERRIDE;
    6565
    6666    /**
    6767     * Clear the content of the map.
    6868     */
    69     void clear();
     69    void clear() RT_NOEXCEPT;
    7070
    7171    /**
    7272     * Checks if the map is empty.
    7373     */
    74     inline bool isEmpty() const { return m_cEntries == 0; }
     74    inline bool isEmpty() const RT_NOEXCEPT { return m_cEntries == 0; }
    7575
    7676    /**
    7777     * Gets the number of entries in the map.
    7878     */
    79     size_t size() const;
     79    size_t size() const RT_NOEXCEPT;
    8080
    8181    /**
     
    8484     * @param   a_pszKey   The key to check fo.
    8585     */
    86     bool containsKey(const char *a_pszKey) const;
     86    bool containsKey(const char *a_pszKey) const RT_NOEXCEPT;
    8787
    8888    /**
     
    9191     * @param   a_rStrKey   The key to check fo.
    9292     */
    93     bool containsKey(RTCString const &a_rStrKey) const;
     93    bool containsKey(RTCString const &a_rStrKey) const RT_NOEXCEPT;
    9494
    9595    /**
     
    9898     * @param   a_pszKey    The key to remove.
    9999     */
    100     bool remove(const char *a_pszKey);
     100    bool remove(const char *a_pszKey) RT_NOEXCEPT;
    101101
    102102    /**
     
    105105     * @param   a_rStrKey   The key to remove.
    106106     */
    107     bool remove(RTCString const &a_rStrKey);
     107    bool remove(RTCString const &a_rStrKey) RT_NOEXCEPT;
    108108
    109109    /**
     
    117117     * @param   a_fReplace  Whether to replace or fail on key collision.
    118118     */
    119     int putNewValue(RTCRestObjectBase **a_ppValue, const char *a_pszKey, size_t a_cchKey = RTSTR_MAX, bool a_fReplace = false);
     119    int putNewValue(RTCRestObjectBase **a_ppValue, const char *a_pszKey, size_t a_cchKey = RTSTR_MAX, bool a_fReplace = false) RT_NOEXCEPT;
    120120
    121121    /**
     
    128128     * @param   a_fReplace  Whether to replace or fail on key collision.
    129129     */
    130     int putNewValue(RTCRestObjectBase **a_ppValue, RTCString const &a_rStrKey, bool a_fReplace = false);
     130    int putNewValue(RTCRestObjectBase **a_ppValue, RTCString const &a_rStrKey, bool a_fReplace = false) RT_NOEXCEPT;
    131131
    132132protected:
     
    159159    private:
    160160        MapEntry            *m_pCur;
    161         ConstIterator();
     161        ConstIterator() RT_NOEXCEPT;
    162162    protected:
    163         ConstIterator(MapEntry *a_pEntry) : m_pCur(a_pEntry) { }
     163        ConstIterator(MapEntry *a_pEntry) RT_NOEXCEPT : m_pCur(a_pEntry) { }
    164164    public:
    165         ConstIterator(ConstIterator const &a_rThat) : m_pCur(a_rThat.m_pCur) { }
     165        ConstIterator(ConstIterator const &a_rThat) RT_NOEXCEPT : m_pCur(a_rThat.m_pCur) { }
    166166
    167167        /** Gets the key string. */
    168         inline RTCString const         &getKey()   { return m_pCur->strKey; }
     168        inline RTCString const         &getKey() RT_NOEXCEPT   { return m_pCur->strKey; }
    169169        /** Gets poitner to the value object. */
    170         inline RTCRestObjectBase const *getValue() { return m_pCur->pValue; }
     170        inline RTCRestObjectBase const *getValue() RT_NOEXCEPT { return m_pCur->pValue; }
    171171
    172172        /** Advance to the next map entry. */
    173         inline ConstIterator &operator++()
     173        inline ConstIterator &operator++() RT_NOEXCEPT
    174174        {
    175175            m_pCur = RTListNodeGetNextCpp(&m_pCur->ListEntry, MapEntry, ListEntry);
     
    178178
    179179        /** Advance to the previous map entry. */
    180         inline ConstIterator &operator--()
     180        inline ConstIterator &operator--() RT_NOEXCEPT
    181181        {
    182182            m_pCur = RTListNodeGetPrevCpp(&m_pCur->ListEntry, MapEntry, ListEntry);
     
    185185
    186186        /** Compare equal. */
    187         inline bool operator==(ConstIterator const &a_rThat) { return m_pCur == a_rThat.m_pCur; }
     187        inline bool operator==(ConstIterator const &a_rThat) RT_NOEXCEPT { return m_pCur == a_rThat.m_pCur; }
    188188        /** Compare not equal. */
    189         inline bool operator!=(ConstIterator const &a_rThat) { return m_pCur != a_rThat.m_pCur; }
     189        inline bool operator!=(ConstIterator const &a_rThat) RT_NOEXCEPT { return m_pCur != a_rThat.m_pCur; }
    190190
    191191        /* Map class must be friend so it can use the MapEntry constructor. */
     
    194194
    195195    /** Returns iterator for the first map entry (unless it's empty and it's also the end). */
    196     inline ConstIterator begin() const
     196    inline ConstIterator begin() const RT_NOEXCEPT
    197197    {
    198198        if (!RTListIsEmpty(&m_ListHead))
     
    201201    }
    202202    /** Returns iterator for the last map entry (unless it's empty and it's also the end). */
    203     inline ConstIterator last() const
     203    inline ConstIterator last() const RT_NOEXCEPT
    204204    {
    205205        if (!RTListIsEmpty(&m_ListHead))
     
    208208    }
    209209    /** Returns the end iterator.  This does not ever refer to an actual map entry. */
    210     inline ConstIterator end() const
     210    inline ConstIterator end() const RT_NOEXCEPT
    211211    {
    212212        return ConstIterator(RT_FROM_CPP_MEMBER(&m_ListHead, MapEntry, ListEntry));
     
    221221     * @returns Pointer to new map object on success, NULL if out of memory.
    222222     */
    223     virtual RTCRestStringMapBase *createClone(void) const = 0;
     223    virtual RTCRestStringMapBase *createClone(void) const RT_NOEXCEPT = 0;
    224224
    225225    /**
     
    228228     * @returns Pointer to new value object on success, NULL if out of memory.
    229229     */
    230     virtual RTCRestObjectBase *createValue(void) = 0;
     230    virtual RTCRestObjectBase *createValue(void) RT_NOEXCEPT = 0;
    231231
    232232    /**
    233233     * For accessing the static deserializeInstanceFromJson() method of the value.
    234234     */
    235     virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) = 0;
    236 
    237     /**
    238      * Worker for the copy constructor and the assignment operator.
     235    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT = 0;
     236
     237    /**
     238     * Worker for the copy assignment method and copyMapWorkerMayThrow.
    239239     *
    240240     * This will use createEntryCopy to do the copying.
     
    243243     * @param   a_rThat     The map to copy.  Caller makes 100% sure the it has
    244244     *                      the same type as the destination.
    245      * @param   a_fThrow    Whether to throw error.
    246      */
    247     int copyMapWorker(RTCRestStringMapBase const &a_rThat, bool a_fThrow);
     245     */
     246    int copyMapWorkerNoThrow(RTCRestStringMapBase const &a_rThat) RT_NOEXCEPT;
     247
     248    /**
     249     * Wrapper around copyMapWorkerNoThrow() that throws allocation errors, making
     250     * it suitable for copy constructors and assignment operators.
     251     */
     252    void copyMapWorkerMayThrow(RTCRestStringMapBase const &a_rThat);
    248253
    249254    /**
     
    257262     * @param   a_cchKey        The key length, the whole string by default.
    258263     */
    259     int putWorker(const char *a_pszKey, RTCRestObjectBase *a_pValue, bool a_fReplace, size_t a_cchKey = RTSTR_MAX);
     264    int putWorker(const char *a_pszKey, RTCRestObjectBase *a_pValue, bool a_fReplace, size_t a_cchKey = RTSTR_MAX) RT_NOEXCEPT;
    260265
    261266    /**
     
    269274     * @param   a_cchKey        The key length, the whole string by default.
    270275     */
    271     int putCopyWorker(const char *a_pszKey, RTCRestObjectBase const &a_rValue, bool a_fReplace, size_t a_cchKey = RTSTR_MAX);
     276    int putCopyWorker(const char *a_pszKey, RTCRestObjectBase const &a_rValue, bool a_fReplace, size_t a_cchKey = RTSTR_MAX) RT_NOEXCEPT;
    272277
    273278    /**
     
    277282     * @param   a_pszKey        The key which value to look up.
    278283     */
    279     RTCRestObjectBase *getWorker(const char *a_pszKey);
     284    RTCRestObjectBase *getWorker(const char *a_pszKey) RT_NOEXCEPT;
    280285
    281286    /**
     
    285290     * @param   a_pszKey        The key which value to look up.
    286291     */
    287     RTCRestObjectBase const *getWorker(const char *a_pszKey) const;
     292    RTCRestObjectBase const *getWorker(const char *a_pszKey) const RT_NOEXCEPT;
    288293
    289294private:
    290     static DECLCALLBACK(int) stringSpaceDestructorCallback(PRTSTRSPACECORE pStr, void *pvUser);
     295    static DECLCALLBACK(int) stringSpaceDestructorCallback(PRTSTRSPACECORE pStr, void *pvUser) RT_NOEXCEPT;
    291296};
    292297
     
    299304public:
    300305    /** Default constructor, creates emtpy map. */
    301     RTCRestStringMap()
     306    RTCRestStringMap() RT_NOEXCEPT
    302307        : RTCRestStringMapBase()
    303308    {}
     
    307312        : RTCRestStringMapBase()
    308313    {
    309         copyMapWorker(a_rThat, true /*a_fThrow*/);
     314        copyMapWorkerMayThrow(a_rThat);
    310315    }
    311316
     
    319324    RTCRestStringMap &operator=(RTCRestStringMap const &a_rThat)
    320325    {
    321         copyMapWorker(a_rThat, true /*a_fThrow*/);
     326        copyMapWorkerMayThrow(a_rThat);
    322327        return *this;
    323328    }
    324329
    325330    /** Safe copy assignment method. */
    326     int assignCopy(RTCRestStringMap const &a_rThat)
    327     {
    328         return copyMapWorker(a_rThat, false /*a_fThrow*/);
     331    int assignCopy(RTCRestStringMap const &a_rThat) RT_NOEXCEPT
     332    {
     333        return copyMapWorkerNoThrow(a_rThat);
    329334    }
    330335
    331336    /** Make a clone of this object. */
    332     inline RTCRestStringMap *clone() const
     337    inline RTCRestStringMap *clone() const RT_NOEXCEPT
    333338    {
    334339        return (RTCRestStringMap *)baseClone();
     
    336341
    337342    /** Factory method. */
    338     static DECLCALLBACK(RTCRestObjectBase *) createInstance(void)
     343    static DECLCALLBACK(RTCRestObjectBase *) createInstance(void) RT_NOEXCEPT
    339344    {
    340345        return new (std::nothrow) RTCRestStringMap<ValueType>();
     
    342347
    343348    /** Factory method for values. */
    344     static DECLCALLBACK(RTCRestObjectBase *) createValueInstance(void)
     349    static DECLCALLBACK(RTCRestObjectBase *) createValueInstance(void) RT_NOEXCEPT
    345350    {
    346351        return new (std::nothrow) ValueType();
     
    348353
    349354    /** @copydoc RTCRestObjectBase::FNDESERIALIZEINSTANCEFROMJSON */
    350     static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance)
     355    static DECLCALLBACK(int) deserializeInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT
    351356    {
    352357        *a_ppInstance = new (std::nothrow) RTCRestStringMap<ValueType>();
     
    365370     * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
    366371     */
    367     inline int put(const char *a_pszKey, ValueType *a_pValue, bool a_fReplace = false)
     372    inline int put(const char *a_pszKey, ValueType *a_pValue, bool a_fReplace = false) RT_NOEXCEPT
    368373    {
    369374        return putWorker(a_pszKey, a_pValue, a_fReplace);
     
    379384     * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
    380385     */
    381     inline int put(RTCString const &a_rStrKey, ValueType *a_pValue, bool a_fReplace = false)
     386    inline int put(RTCString const &a_rStrKey, ValueType *a_pValue, bool a_fReplace = false) RT_NOEXCEPT
    382387    {
    383388        return putWorker(a_rStrKey.c_str(), a_pValue, a_fReplace, a_rStrKey.length());
     
    393398     * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
    394399     */
    395     inline int putCopy(const char *a_pszKey, const ValueType &a_rValue, bool a_fReplace = false)
     400    inline int putCopy(const char *a_pszKey, const ValueType &a_rValue, bool a_fReplace = false) RT_NOEXCEPT
    396401    {
    397402        return putCopyWorker(a_pszKey, a_rValue, a_fReplace);
     
    407412     * @param   a_fReplace      Whether to replace existing key-value pair with matching key.
    408413     */
    409     inline int putCopy(RTCString const &a_rStrKey, const ValueType &a_rValue, bool a_fReplace = false)
     414    inline int putCopy(RTCString const &a_rStrKey, const ValueType &a_rValue, bool a_fReplace = false) RT_NOEXCEPT
    410415    {
    411416        return putCopyWorker(a_rStrKey.c_str(), a_rValue, a_fReplace, a_rStrKey.length());
     
    418423     * @param   a_pszKey        The key which value to look up.
    419424     */
    420     inline ValueType *get(const char *a_pszKey)
     425    inline ValueType *get(const char *a_pszKey) RT_NOEXCEPT
    421426    {
    422427        return (ValueType *)getWorker(a_pszKey);
     
    429434     * @param   a_rStrKey       The key which value to look up.
    430435     */
    431     inline ValueType *get(RTCString const &a_rStrKey)
     436    inline ValueType *get(RTCString const &a_rStrKey) RT_NOEXCEPT
    432437    {
    433438        return (ValueType *)getWorker(a_rStrKey.c_str());
     
    440445     * @param   a_pszKey        The key which value to look up.
    441446     */
    442     inline ValueType const *get(const char *a_pszKey) const
     447    inline ValueType const *get(const char *a_pszKey) const RT_NOEXCEPT
    443448    {
    444449        return (ValueType const *)getWorker(a_pszKey);
     
    451456     * @param   a_rStrKey       The key which value to look up.
    452457     */
    453     inline ValueType const *get(RTCString const &a_rStrKey) const
     458    inline ValueType const *get(RTCString const &a_rStrKey) const RT_NOEXCEPT
    454459    {
    455460        return (ValueType const *)getWorker(a_rStrKey.c_str());
     
    459464
    460465protected:
    461     virtual RTCRestStringMapBase *createClone(void) const RT_OVERRIDE
     466    virtual RTCRestStringMapBase *createClone(void) const RT_NOEXCEPT RT_OVERRIDE
    462467    {
    463468        return new (std::nothrow) RTCRestStringMap();
    464469    }
    465470
    466     virtual RTCRestObjectBase *createValue(void) RT_OVERRIDE
     471    virtual RTCRestObjectBase *createValue(void) RT_NOEXCEPT RT_OVERRIDE
    467472    {
    468473        return new (std::nothrow) ValueType();
    469474    }
    470475
    471     virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_OVERRIDE
     476    virtual int deserializeValueInstanceFromJson(RTCRestJsonCursor const &a_rCursor, RTCRestObjectBase **a_ppInstance) RT_NOEXCEPT RT_OVERRIDE
    472477    {
    473478        return ValueType::deserializeInstanceFromJson(a_rCursor, a_ppInstance);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette