QuantumLibrary
quantum_iqueue_statistics.h
1 /*
2 ** Copyright 2018 Bloomberg Finance L.P.
3 **
4 ** Licensed under the Apache License, Version 2.0 (the "License");
5 ** you may not use this file except in compliance with the License.
6 ** You may obtain a copy of the License at
7 **
8 ** http://www.apache.org/licenses/LICENSE-2.0
9 **
10 ** Unless required by applicable law or agreed to in writing, software
11 ** distributed under the License is distributed on an "AS IS" BASIS,
12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ** See the License for the specific language governing permissions and
14 ** limitations under the License.
15 */
16 #ifndef BLOOMBERG_QUANTUM_IQUEUE_STATISTICS_H
17 #define BLOOMBERG_QUANTUM_IQUEUE_STATISTICS_H
18 
19 #include <ostream>
20 
21 namespace Bloomberg {
22 namespace quantum {
23 
24 //==============================================================================================
25 // interface IQueueStatistics
26 //==============================================================================================
30 {
32  virtual ~IQueueStatistics(){};
33 
35  virtual void reset() = 0;
36 
38  virtual size_t numElements() const = 0;
39 
41  virtual void incNumElements() = 0;
42 
44  virtual void decNumElements() = 0;
45 
48  virtual size_t errorCount() const = 0;
49 
51  virtual void incErrorCount() = 0;
52 
55  virtual size_t sharedQueueErrorCount() const = 0;
56 
58  virtual void incSharedQueueErrorCount() = 0;
59 
62  virtual size_t completedCount() const = 0;
63 
65  virtual void incCompletedCount() = 0;
66 
69  virtual size_t sharedQueueCompletedCount() const = 0;
70 
72  virtual void incSharedQueueCompletedCount() = 0;
73 
76  virtual size_t postedCount() const = 0;
77 
79  virtual void incPostedCount() = 0;
80 
83  virtual size_t highPriorityCount() const = 0;
84 
86  virtual void incHighPriorityCount() = 0;
87 
90  virtual void print(std::ostream& out) const = 0;
91 };
92 
97 std::ostream& operator<<(std::ostream& out, const IQueueStatistics& stats);
98 
99 }}
100 
101 #endif //BLOOMBERG_QUANTUM_IQUEUE_STATISTICS_H
virtual size_t highPriorityCount() const =0
Count of all coroutine and IO tasks which were posted on this queue at higher priority.
Definition: quantum_buffer_impl.h:22
virtual void incSharedQueueCompletedCount()=0
Increment this counter.
virtual void incSharedQueueErrorCount()=0
Increment this counter.
virtual void incPostedCount()=0
Increment this counter.
virtual void incNumElements()=0
Increment this counter.
virtual void incHighPriorityCount()=0
Increment this counter.
virtual size_t numElements() const =0
Gets the current size of the queue.
virtual size_t errorCount() const =0
Count of all coroutine and IO task execution errors on this queue.
virtual ~IQueueStatistics()
Virtual destructor.
Definition: quantum_iqueue_statistics.h:32
virtual void print(std::ostream &out) const =0
Print to std::cout the value of all internal counters.
virtual size_t completedCount() const =0
Count of all coroutine and IO tasks which completed successfully.
virtual void incCompletedCount()=0
Increment this counter.
virtual void incErrorCount()=0
Increment this counter.
virtual size_t postedCount() const =0
Count of all coroutine and IO tasks which were posted on this queue.
virtual size_t sharedQueueErrorCount() const =0
Count of all IO tasks which were dequeued from the shared queue and failed.
std::ostream & operator<<(std::ostream &out, const IQueueStatistics &stats)
Overloads stream operator for IQueueStatistics object.
Definition: quantum_queue_statistics_impl.h:167
virtual void decNumElements()=0
Decrement this counter.
Interface to access and manipulate a QueueStatistics object.
Definition: quantum_iqueue_statistics.h:29
virtual size_t sharedQueueCompletedCount() const =0
Count of all IO tasks which were dequeued from the shared queue and completed successfully.
virtual void reset()=0
Reset all the counters to 0.