Program Listing for File MultipartFormData.h

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

// Copyright (C) AcceleratXR, Inc. All rights reserved.
//
// Author: Jean-Philippe Steinmetz <info@acceleratxr.com>
//
// NOTE: This file was auto generated by the AcceleratXR code generator.
// https://gitlab.com/AcceleratXR/Core/code_generator.git
#pragma once

#include "../Exception.h"
#include "IHttpBody.h"
#include "HttpContent.h"

#include <vector>
#include <map>
#include <memory>

#include <cpprest/details/basic_types.h>

namespace axr {
namespace sdk {
namespace net {

class  MultipartFormData
    : public IHttpBody
{
public:
    MultipartFormData();
    MultipartFormData(const utility::string_t& boundary);
    virtual ~MultipartFormData();

    virtual void Add(std::shared_ptr<HttpContent> content);
    virtual utility::string_t GetBoundary();
    virtual std::shared_ptr<HttpContent> GetContent(const utility::string_t& name) const;
    virtual bool HasContent(const utility::string_t& name) const;
    virtual void WriteTo(std::ostream& stream) override;
    virtual void WriteTo(json::StringWriter& target) override
    {
        throw Exception(500, _XPLATSTR("Not supported."));
    }

protected:
    std::vector<std::shared_ptr<HttpContent>> m_Contents;
    utility::string_t m_Boundary;
    std::map<utility::string_t, std::shared_ptr<HttpContent>> m_ContentLookup;
};

} // namespace net
} // namespace axr
} // namespace sdk