6 #ifndef SQUID_ECAP_SERVICE_REP_H
7 #define SQUID_ECAP_SERVICE_REP_H
9 #include "adaptation/Service.h"
10 #include "adaptation/forward.h"
11 #include <libecap/common/forward.h>
12 #include <libecap/common/memory.h>
14 namespace Adaptation
{
17 /* The eCAP service representative maintains information about a single eCAP
18 service that Squid communicates with. One eCAP module may register many
21 class ServiceRep
: public Adaptation::Service
24 ServiceRep(const Adaptation::ServiceConfig
&config
);
25 virtual ~ServiceRep();
27 typedef libecap::shared_ptr
<libecap::adapter::Service
> AdapterService
;
28 void noteService(const AdapterService
&s
);
30 virtual void finalize();
32 // call when the service is no longer needed or valid
33 virtual void invalidate();
35 virtual bool probed() const;
36 virtual bool up() const;
38 Adaptation::Initiate
*makeXactLauncher(Adaptation::Initiator
*, HttpMsg
*virginHeader
, HttpRequest
*virginCause
);
40 // the methods below can only be called on an up() service
41 virtual bool wantsUrl(const String
&urlPath
) const;
43 // called by transactions to report service failure
44 virtual void noteFailure();
46 virtual const char *status() const;
49 AdapterService theService
; // the actual adaptation service we represent
53 } // namespace Adaptation
55 #endif /* SQUID_ECAP_SERVICE_REP_H */