19 #ifndef PAGESPEED_KERNEL_BASE_FAST_WILDCARD_GROUP_H_
20 #define PAGESPEED_KERNEL_BASE_FAST_WILDCARD_GROUP_H_
28 namespace net_instaweb {
102 : rolling_hash_length_(kUncompiled) { }
104 : rolling_hash_length_(kUncompiled) {
108 ~FastWildcardGroup();
109 FastWildcardGroup& operator=(
const FastWildcardGroup& other) {
116 bool Match(
const StringPiece& str,
bool allow_by_default)
const;
120 void Allow(
const StringPiece& wildcard);
124 void Disallow(
const StringPiece& wildcard);
126 void CopyFrom(
const FastWildcardGroup& src);
127 void AppendFrom(
const FastWildcardGroup& src);
136 bool empty()
const {
return wildcards_.empty(); }
140 static const int32 kUncompiled = -1;
141 static const int32 kDontHash = 0;
145 inline int& pattern_hash_index(uint64 rolling_hash)
const;
146 void Compile()
const;
147 void CompileNonTrivial()
const;
152 std::vector<Wildcard*> wildcards_;
153 std::vector<bool> allow_;
156 mutable std::vector<uint64> rolling_hashes_;
157 mutable std::vector<int> effective_indices_;
158 mutable std::vector<int> wildcard_only_indices_;
159 mutable std::vector<int> pattern_hash_index_;
160 mutable AtomicInt32 rolling_hash_length_;
Definition: fast_wildcard_group.h:94
Definition: signature.h:42
static const int kMinPatterns
Definition: fast_wildcard_group.h:99
void Allow(const StringPiece &wildcard)
std::string GoogleString
PAGESPEED_KERNEL_BASE_STRING_H_.
Definition: string.h:24
bool Match(const StringPiece &str, bool allow_by_default) const
void Merge(const FastWildcardGroup &src)
Alias for use of CopyOnWrite.
Definition: fast_wildcard_group.h:130
void Disallow(const StringPiece &wildcard)
int num_wildcards() const
Return the number of configured wildcards.
Definition: fast_wildcard_group.h:135