]> git.ipfire.org Git - thirdparty/squid.git/blob - src/mgr/StoreIoAction.h
Source Format Enforcement (#532)
[thirdparty/squid.git] / src / mgr / StoreIoAction.h
1 /*
2 * Copyright (C) 1996-2020 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 /* DEBUG: section 16 Cache Manager API */
10
11 #ifndef SQUID_MGR_STORE_IO_ACTION_H
12 #define SQUID_MGR_STORE_IO_ACTION_H
13
14 #include "mgr/Action.h"
15
16 namespace Mgr
17 {
18
19 /// Store IO interface data
20 class StoreIoActionData
21 {
22 public:
23 StoreIoActionData();
24 StoreIoActionData& operator += (const StoreIoActionData& stats);
25
26 public:
27 double create_calls;
28 double create_select_fail;
29 double create_create_fail;
30 double create_success;
31 };
32
33 /// implement aggregated 'store_io' action
34 class StoreIoAction: public Action
35 {
36 protected:
37 StoreIoAction(const CommandPointer &cmd);
38
39 public:
40 static Pointer Create(const CommandPointer &cmd);
41 /* Action API */
42 virtual void add(const Action& action);
43 virtual void pack(Ipc::TypedMsgHdr& msg) const;
44 virtual void unpack(const Ipc::TypedMsgHdr& msg);
45
46 protected:
47 /* Action API */
48 virtual void collect();
49 virtual void dump(StoreEntry* entry);
50
51 private:
52 StoreIoActionData data;
53 };
54
55 } // namespace Mgr
56
57 #endif /* SQUID_MGR_STORE_IO_ACTION_H */
58