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