#pragma once
+#include <cstdint>
#include <map>
#include <array>
#include <string>
{
none = 0,
ArchiveZone,
+ Filter,
};
class LCFlag {
}
}
- static constexpr std::array<LCFlag, 2> filter_flags =
- {
- LCFlag(LCFlagType::none, "none"),
- LCFlag(LCFlagType::ArchiveZone, "ArchiveZone"),
- };
+ static constexpr std::array<LCFlag, 3> filter_flags = {
+ LCFlag(LCFlagType::none, "none"),
+ LCFlag(LCFlagType::ArchiveZone, "ArchiveZone"),
+ LCFlag(LCFlagType::Filter, "Filter"),
+ };
protected:
std::string prefix;
public:
LCFilter() : flags(make_flag(LCFlagType::none))
- {}
+ {}
+
+ ~LCFilter()
+ {}
const std::string& get_prefix() const {
return prefix;
return flags;
}
+ void set_flag(LCFlagType flag) {
+ flags |= make_flag(flag);
+ }
+
bool empty() const {
return !(has_prefix() || has_tags() || has_flags() ||
has_size_rule());
if (!RGWXMLDecoder::decode_xml("Prefix", prefix, obj)) {
throw RGWXMLDecoder::err("missing Prefix in Filter");
}
+ } else {
+ filter_s3.set_flag(LCFlagType::Filter);
}
filter = (LCFilter)filter_s3;