]> git.ipfire.org Git - thirdparty/squid.git/blame - src/DiskIO/DiskDaemon/DiskdAction.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / DiskIO / DiskDaemon / DiskdAction.h
CommitLineData
8822ebee 1/*
8822ebee
AR
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"
8822ebee 10#include "mgr/Action.h"
602d9612 11#include "mgr/forward.h"
8822ebee 12
8822ebee
AR
13/// store disk daemon stats
14class DiskdActionData
15{
16public:
17 DiskdActionData();
18 DiskdActionData& operator += (const DiskdActionData& stats);
19
20public:
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
48class DiskdAction: public Mgr::Action
49{
50protected:
51 DiskdAction(const Mgr::CommandPointer &aCmd);
52
53public:
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
60protected:
61 /* Action API */
62 virtual void collect();
63 virtual void dump(StoreEntry* entry);
64
65private:
66 DiskdActionData data;
67};
68
69#endif /* SQUID_DISKD_ACTION_H */