Program Listing for File Exception.h

Return to documentation for file (axr.sdk/Exception.h)

// Copyright (C) AcceleratXR, Inc. All rights reserved.
#pragma once

#include <memory>
#include <map>

#include <cpprest/details/basic_types.h>
#include <cpprest/http_msg.h>

namespace axr {
namespace sdk {


class Exception : public web::http::http_exception
{
public:
    Exception( int errorCode
        , const utility::char_t* message
        , std::shared_ptr<std::istream> content = nullptr );
    Exception( int errorCode
        , const utility::string_t& message
        , std::shared_ptr<std::istream> content = nullptr );
    Exception( int errorCode
        , const utility::char_t* message
        , std::map<utility::string_t, utility::string_t>& headers
        , std::shared_ptr<std::istream> content = nullptr );
    Exception( int errorCode
        , const utility::string_t& message
        , std::map<utility::string_t, utility::string_t>& headers
        , std::shared_ptr<std::istream> content = nullptr );
    virtual ~Exception();

    std::map<utility::string_t, utility::string_t>& GetHeaders();
    std::shared_ptr<std::istream> GetContent() const;

protected:
    std::shared_ptr<std::istream> m_Content;
    std::map<utility::string_t, utility::string_t> m_Headers;
};

} // namespace axr
} // namespace sdk