AsyncCbdataCalls.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_BASE_ASYNCCBDATACALLS_H
10 #define SQUID_BASE_ASYNCCBDATACALLS_H
11 
12 #include "base/AsyncCall.h"
13 #include "base/CbcPointer.h"
14 
15 // dialer to run cbdata callback functions as Async Calls
16 // to ease the transition of these cbdata objects to full Jobs
17 template<class Argument1>
19 {
20 public:
21  typedef void Handler(Argument1 *);
22 
23  UnaryCbdataDialer(Handler *aHandler, Argument1 *aArg) :
24  arg1(aArg),
25  handler(aHandler)
26  {}
27 
28  virtual bool canDial(AsyncCall &) { return arg1.valid(); }
29  void dial(AsyncCall &) { handler(arg1.get()); }
30  virtual void print(std::ostream &os) const { os << '(' << arg1 << ')'; }
31 
32 public:
35 };
36 
37 // helper function to simplify Dialer creation.
38 template <class Argument1>
41 {
43 }
44 
45 #endif
46 
Cbc * valid() const
was set and is valid
Definition: CbcPointer.h:41
UnaryCbdataDialer(Handler *aHandler, Argument1 *aArg)
void dial(AsyncCall &)
static void handler(int signo)
Definition: purge.cc:860
void Handler(Argument1 *)
UnaryCbdataDialer< Argument1 > cbdataDialer(typename UnaryCbdataDialer< Argument1 >::Handler *handler, Argument1 *arg1)
CbcPointer< Argument1 > arg1
virtual bool canDial(AsyncCall &)
Cbc * get() const
a temporary valid raw Cbc pointer or NULL
Definition: CbcPointer.h:162
virtual void print(std::ostream &os) const

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors