diff options
Diffstat (limited to '')
-rw-r--r-- | src/rgw/rgw_multi.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/rgw/rgw_multi.h b/src/rgw/rgw_multi.h new file mode 100644 index 000000000..f57c90e74 --- /dev/null +++ b/src/rgw/rgw_multi.h @@ -0,0 +1,62 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab ft=cpp + +#pragma once + +#include <map> +#include "rgw_xml.h" +#include "rgw_obj_types.h" +#include "rgw_obj_manifest.h" +#include "rgw_compression_types.h" +#include "common/dout.h" +#include "rgw_sal_fwd.h" + +#define MULTIPART_UPLOAD_ID_PREFIX_LEGACY "2/" +#define MULTIPART_UPLOAD_ID_PREFIX "2~" // must contain a unique char that may not come up in gen_rand_alpha() + +class RGWMultiCompleteUpload : public XMLObj +{ +public: + RGWMultiCompleteUpload() {} + ~RGWMultiCompleteUpload() override {} + bool xml_end(const char *el) override; + + std::map<int, std::string> parts; +}; + +class RGWMultiPart : public XMLObj +{ + std::string etag; + int num; +public: + RGWMultiPart() : num(0) {} + ~RGWMultiPart() override {} + bool xml_end(const char *el) override; + + std::string& get_etag() { return etag; } + int get_num() { return num; } +}; + +class RGWMultiPartNumber : public XMLObj +{ +public: + RGWMultiPartNumber() {} + ~RGWMultiPartNumber() override {} +}; + +class RGWMultiETag : public XMLObj +{ +public: + RGWMultiETag() {} + ~RGWMultiETag() override {} +}; + +class RGWMultiXMLParser : public RGWXMLParser +{ + XMLObj *alloc_obj(const char *el) override; +public: + RGWMultiXMLParser() {} + virtual ~RGWMultiXMLParser() override; +}; + +extern bool is_v2_upload_id(const std::string& upload_id); |