]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/mgr/ServiceTimesAction.cc
b6f229637b9af1ab28d1354f2cef82ca51b5916d
2 * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
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.
9 /* DEBUG: section 16 Cache Manager API */
12 #include "base/TextException.h"
13 #include "ipc/Messages.h"
14 #include "ipc/TypedMsgHdr.h"
15 #include "mgr/ServiceTimesAction.h"
19 void GetServiceTimesStats(Mgr::ServiceTimesActionData
& stats
);
20 void DumpServiceTimesStats(Mgr::ServiceTimesActionData
& stats
, StoreEntry
* sentry
);
22 Mgr::ServiceTimesActionData::ServiceTimesActionData()
24 memset(this, 0, sizeof(*this));
27 Mgr::ServiceTimesActionData
&
28 Mgr::ServiceTimesActionData::operator += (const ServiceTimesActionData
& stats
)
30 for (int i
= 0; i
< seriesSize
; ++i
) {
31 http_requests5
[i
] += stats
.http_requests5
[i
];
32 http_requests60
[i
] += stats
.http_requests60
[i
];
34 cache_misses5
[i
] += stats
.cache_misses5
[i
];
35 cache_misses60
[i
] += stats
.cache_misses60
[i
];
37 cache_hits5
[i
] += stats
.cache_hits5
[i
];
38 cache_hits60
[i
] += stats
.cache_hits60
[i
];
40 near_hits5
[i
] += stats
.near_hits5
[i
];
41 near_hits60
[i
] += stats
.near_hits60
[i
];
43 not_modified_replies5
[i
] += stats
.not_modified_replies5
[i
];
44 not_modified_replies60
[i
] += stats
.not_modified_replies60
[i
];
46 dns_lookups5
[i
] += stats
.dns_lookups5
[i
];
47 dns_lookups60
[i
] += stats
.dns_lookups60
[i
];
49 icp_queries5
[i
] += stats
.icp_queries5
[i
];
50 icp_queries60
[i
] += stats
.icp_queries60
[i
];
57 Mgr::ServiceTimesAction::Pointer
58 Mgr::ServiceTimesAction::Create(const CommandPointer
&cmd
)
60 return new ServiceTimesAction(cmd
);
63 Mgr::ServiceTimesAction::ServiceTimesAction(const CommandPointer
&aCmd
):
70 Mgr::ServiceTimesAction::add(const Action
& action
)
73 data
+= dynamic_cast<const ServiceTimesAction
&>(action
).data
;
77 Mgr::ServiceTimesAction::collect()
80 GetServiceTimesStats(data
);
84 Mgr::ServiceTimesAction::dump(StoreEntry
* entry
)
88 DumpServiceTimesStats(data
, entry
);
92 Mgr::ServiceTimesAction::pack(Ipc::TypedMsgHdr
& msg
) const
94 msg
.setType(Ipc::mtCacheMgrResponse
);
99 Mgr::ServiceTimesAction::unpack(const Ipc::TypedMsgHdr
& msg
)
101 msg
.checkType(Ipc::mtCacheMgrResponse
);