/*
- * $Id$
+ * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
*/
#ifndef SQUID_ASYNCCALL_H
#define SQUID_ASYNCCALL_H
-//#include "cbdata.h"
+#include "base/CodeContext.h"
#include "base/InstanceId.h"
#include "event.h"
-//#include "TextException.h"
+#include "RefCount.h"
/**
\defgroup AsynCallsAPI Async-Calls API
class CallDialer;
class AsyncCallQueue;
-/**
- \todo add unique call IDs
- \todo CBDATA_CLASS2 kids
- \ingroup AsyncCallsAPI
- */
class AsyncCall: public RefCountable
{
public:
public:
const char *const name;
+
+ /// what the callee is expected to work on
+ CodeContext::Pointer codeContext;
+
const int debugSection;
const int debugLevel;
const InstanceId<AsyncCall> id;
AsyncCall::Pointer theNext; // used exclusively by AsyncCallQueue
private:
- const char *isCanceled; // set to the cancelation reason by cancel()
+ const char *isCanceled; // set to the cancellation reason by cancel()
// not implemented to prevent nil calls from being passed around and unknowingly scheduled, for now.
AsyncCall();
public:
AsyncCallT(int aDebugSection, int aDebugLevel, const char *aName,
const Dialer &aDialer): AsyncCall(aDebugSection, aDebugLevel, aName),
- dialer(aDialer) {}
+ dialer(aDialer) {}
AsyncCallT(const AsyncCallT<Dialer> &o):
- AsyncCall(o.debugSection, o.debugLevel, o.name),
- dialer(o.dialer) {}
+ AsyncCall(o.debugSection, o.debugLevel, o.name),
+ dialer(o.dialer) {}
~AsyncCallT() {}
}
/** Call scheduling helper. Use ScheduleCallHere if you can. */
-extern bool ScheduleCall(const char *fileName, int fileLine, AsyncCall::Pointer &call);
+bool ScheduleCall(const char *fileName, int fileLine, AsyncCall::Pointer &call);
/** Call scheduling helper. */
#define ScheduleCallHere(call) ScheduleCall(__FILE__, __LINE__, (call))
-
#endif /* SQUID_ASYNCCALL_H */
+