]> git.ipfire.org Git - thirdparty/squid.git/blob - src/DiskIO/DiskDaemon/DiskdAction.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / DiskIO / DiskDaemon / DiskdAction.h
1 /*
2 * $Id$
3 *
4 * DEBUG: section 79 Squid-side DISKD I/O functions.
5 *
6 */
7
8 #ifndef SQUID_DISKD_ACTION_H
9 #define SQUID_DISKD_ACTION_H
10
11 #include "ipc/forward.h"
12 #include "mgr/forward.h"
13 #include "mgr/Action.h"
14
15 /// store disk daemon stats
16 class DiskdActionData
17 {
18 public:
19 DiskdActionData();
20 DiskdActionData& operator += (const DiskdActionData& stats);
21
22 public:
23 double sent_count;
24 double recv_count;
25 double max_away;
26 double max_shmuse;
27 double open_fail_queue_len;
28 double block_queue_len;
29 double open_ops;
30 double open_success;
31 double open_fail;
32 double create_ops;
33 double create_success;
34 double create_fail;
35 double close_ops;
36 double close_success;
37 double close_fail;
38 double unlink_ops;
39 double unlink_success;
40 double unlink_fail;
41 double read_ops;
42 double read_success;
43 double read_fail;
44 double write_ops;
45 double write_success;
46 double write_fail;
47 };
48
49 /// implement aggregated 'diskd' action
50 class DiskdAction: public Mgr::Action
51 {
52 protected:
53 DiskdAction(const Mgr::CommandPointer &aCmd);
54
55 public:
56 static Pointer Create(const Mgr::CommandPointer &aCmd);
57 /* Action API */
58 virtual void add(const Mgr::Action& action);
59 virtual void pack(Ipc::TypedMsgHdr& hdrMsg) const;
60 virtual void unpack(const Ipc::TypedMsgHdr& hdrMsg);
61
62 protected:
63 /* Action API */
64 virtual void collect();
65 virtual void dump(StoreEntry* entry);
66
67 private:
68 DiskdActionData data;
69 };
70
71 #endif /* SQUID_DISKD_ACTION_H */