VirtualBox

Changeset 73920 in vbox for trunk/include/iprt/cpp


Ignore:
Timestamp:
Aug 27, 2018 7:38:55 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
124642
Message:

iprt/rest: More work on the API code generation. bugref:9167

File:
1 edited

Legend:

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

    r73918 r73920  
    317317
    318318    /**
     319     * Convert from (header) string value.
     320     *
     321     * The default implementation of is a wrapper around deserializeFromJson().
     322     *
     323     * @returns IPRT status code.
     324     * @param   a_rValue    The string value string to parse.
     325     * @param   a_pszName   Field name or similar.
     326     * @param   a_pErrInfo  Where to return additional error info.  Optional.
     327     * @param   a_fFlags    kCollectionFormat_xxx.
     328     */
     329    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     330                                  uint32_t a_fFlags = kCollectionFormat_Unspecified);
     331
     332    /**
    319333     * Returns the object type name.
    320334     */
     
    345359    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    346360    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     361    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     362                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    347363    virtual const char *getType(void) RT_OVERRIDE;
    348364
     
    370386    RTCRestInt64 &operator=(RTCRestInt64 const &a_rThat);
    371387
    372         /* Overridden methods: */
     388    /* Overridden methods: */
    373389    virtual void resetToDefault() RT_OVERRIDE;
    374390    virtual RTCRestOutputBase &serializeAsJson(RTCRestOutputBase &a_rDst) const RT_OVERRIDE;
    375391    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    376392    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     393    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     394                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    377395    virtual const char *getType(void) RT_OVERRIDE;
    378396
     
    405423    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    406424    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     425    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     426                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    407427    virtual const char *getType(void) RT_OVERRIDE;
    408428
     
    435455    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    436456    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     457    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     458                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    437459    virtual const char *getType(void) RT_OVERRIDE;
    438460
     
    465487    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    466488    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     489    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     490                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    467491    virtual const char *getType(void) RT_OVERRIDE;
    468492
     
    495519    virtual int deserializeFromJson(RTCRestJsonCursor const &a_rCursor) RT_OVERRIDE;
    496520    virtual int toString(RTCString *a_pDst, uint32_t a_fFlags = 0) const RT_OVERRIDE;
     521    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     522                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    497523    virtual const char *getType(void) RT_OVERRIDE;
    498524};
     
    516542        return VERR_NOT_IMPLEMENTED;
    517543    }
     544    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     545                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    518546    virtual const char *getType(void) RT_OVERRIDE;
    519547};
     
    537565        return VERR_NOT_IMPLEMENTED;
    538566    }
     567    virtual int fromString(RTCString const &a_rValue, const char *a_pszName, PRTERRINFO a_pErrInfo = NULL,
     568                           uint32_t a_fFlags = kCollectionFormat_Unspecified) RT_OVERRIDE;
    539569    virtual const char *getType(void) RT_OVERRIDE;
    540570};
     
    606636public:
    607637    /** Default constructor. */
    608     RTCRestClientResponseBase()
    609         : m_rcStatus(VERR_WRONG_ORDER)
    610     {}
    611 
     638    RTCRestClientResponseBase();
    612639    /** Destructor. */
    613     virtual ~RTCRestClientResponseBase()
    614     {}
    615 
     640    virtual ~RTCRestClientResponseBase();
    616641    /** Copy constructor. */
    617     RTCRestClientResponseBase(RTCRestClientResponseBase const &a_rThat)
    618         : m_rcStatus(a_rThat.m_rcStatus)
    619     {}
    620 
     642    RTCRestClientResponseBase(RTCRestClientResponseBase const &a_rThat);
    621643    /** Copy assignment operator. */
    622     RTCRestClientResponseBase &operator=(RTCRestClientResponseBase const &a_rThat)
    623     {
    624         m_rcStatus = a_rThat.m_rcStatus;
    625         return *this;
    626     }
     644    RTCRestClientResponseBase &operator=(RTCRestClientResponseBase const &a_rThat);
    627645
    628646    /**
     
    636654     * @param   a_pppvBody  If a body callback handler is installed, set the value pointed to to NULL.
    637655     */
    638     virtual int receivePrepare(RTHTTP a_hHttp, void ***a_pppvHdr, void ***a_pppvBody)
    639     {
    640         RT_NOREF(a_hHttp, a_pppvHdr, a_pppvBody);
    641         return VINF_SUCCESS;
    642     }
     656    virtual int receivePrepare(RTHTTP a_hHttp, void ***a_pppvHdr, void ***a_pppvBody);
    643657
    644658    /**
     
    652666     * @note    Called before consumeHeaders() and consumeBody().
    653667     */
    654     virtual void receiveComplete(int a_rcStatus, RTHTTP a_hHttp)
    655     {
    656         RT_NOREF_PV(a_hHttp);
    657         m_rcStatus = a_rcStatus;
    658     }
     668    virtual void receiveComplete(int a_rcStatus, RTHTTP a_hHttp);
    659669
    660670    /**
    661671     * Callback that consumes HTTP header data from the server.
    662672     *
    663      * @param   a_pvData   Body data.
     673     * @param   a_pchData  Body data.
    664674     * @param   a_cbData   Amount of body data.
    665675     *
    666676     * @note    Called after receiveComplete()..
    667677     */
    668     virtual void consumeHeaders(const char *a_pvData, size_t a_cbData)
    669     {
    670         RT_NOREF(a_pvData, a_cbData);
    671     }
     678    virtual void consumeHeaders(const char *a_pchData, size_t a_cbData);
    672679
    673680    /**
    674681     * Callback that consumes HTTP body data from the server.
    675682     *
    676      * @param   a_pvData   Body data.
     683     * @param   a_pchData  Body data.
    677684     * @param   a_cbData   Amount of body data.
    678685     *
    679686     * @note    Called after consumeHeaders().
    680687     */
    681     virtual void consumeBody(const char *a_pvData, size_t a_cbData)
    682     {
    683         RT_NOREF(a_pvData, a_cbData);
    684     }
     688    virtual void consumeBody(const char *a_pchData, size_t a_cbData);
    685689
    686690    /**
     
    689693     * @returns IPRT status code.
    690694     */
    691     virtual void receiveFinal()
    692     {
    693     }
     695    virtual void receiveFinal();
    694696
    695697    /**
     
    699701    int getStatus() { return m_rcStatus; }
    700702
    701 private:
     703protected:
    702704    /** Negative numbers are IPRT errors, positive are HTTP status codes. */
    703705    int m_rcStatus;
     706
     707    /**
     708     * Helper that extracts a header field.
     709     *
     710     * @retval  VINF_SUCCESS
     711     * @retval  VERR_NOT_FOUND if not found.
     712     * @retval  VERR_NO_STR_MEMORY
     713     * @param   a_pszField  The header field header name.
     714     * @param   a_cchField  The length of the header field name.
     715     * @param   a_pchData   The header blob to search.
     716     * @param   a_cbData    The size of the header blob to search.
     717     * @param   a_pStrDst   Where to store the header value on successs.
     718     */
     719    int extractHeaderFromBlob(const char *a_pszField, size_t a_cchField, const char *a_pchData, size_t a_cbData,
     720                              RTCString *a_pStrDst);
    704721};
    705722
Note: See TracChangeset for help on using the changeset viewer.

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