9#ifndef SQUID_SRC_ADAPTATION_SERVICEGROUPS_H
10#define SQUID_SRC_ADAPTATION_SERVICEGROUPS_H
29 typedef std::vector<String>
Store;
31 typedef unsigned int Pos;
139 std::ostream &
print(std::ostream &os)
const;
153typedef std::vector<ServiceGroupPointer>
Groups;
#define RefCountable
The locking interface for use on Reference-Counted classes.
void error(char *format,...)
DynamicServiceGroup configuration to remember future dynamic chains.
a temporary service chain built upon another service request
static void Split(const ServiceFilter &filter, const String &ids, DynamicGroupCfg ¤t, DynamicGroupCfg &future)
separates dynamic services matching current location from future ones
a group of services that must be used one after another
virtual bool advance(Pos &pos) const
virtual bool replace(Pos &) const
information used to search for adaptation services
RefCount< ServiceGroup > Pointer
std::vector< String > Store
const bool allServicesSame
based on the first added service
bool wants(const ServiceFilter &filter) const
bool findLink(const ServiceFilter &filter, Pos &pos) const
find next to link after success, starting with pos
void checkUniqueness(const Pos checkedPos) const
checks that the service name or URI is not repeated later in the group
ServicePointer at(const Pos pos) const
Store removedServices
the disabled services in the case ecap or icap is disabled
VectPoint point
based on the first added service
void finalizeMsg(const char *msg, const String &culprit, bool error) const
emits a formatted warning or error message at the appropriate dbg level
bool findReplacement(const ServiceFilter &filter, Pos &pos) const
these methods control group iteration; used by ServicePlan
bool findService(const ServiceFilter &filter, Pos &pos) const
bool has(const Pos pos) const
< whether this group has a service at the specified pos
ServicePointer replacement(const ServiceFilter &filter)
next to try after failure
bool atEof
cached information for better performance
Pos pos
current service position within the group
std::ostream & print(std::ostream &os) const
ServicePointer next(const ServiceFilter &filter)
next in chain after success
ServiceGroupPointer group
the group we are iterating
ServicePointer current() const
returns nil if the plan is complete
virtual bool replace(Pos &pos) const
virtual bool advance(Pos &) const
virtual bool replace(Pos &) const
virtual bool advance(Pos &) const
std::vector< ServiceGroupPointer > Groups
std::ostream & operator<<(std::ostream &os, const Answer &answer)
ServiceGroupPointer FindGroup(const ServiceGroup::Id &id)