diff options
Diffstat (limited to 'src/profiling/SendCounterPacket.hpp')
-rw-r--r-- | src/profiling/SendCounterPacket.hpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/profiling/SendCounterPacket.hpp b/src/profiling/SendCounterPacket.hpp index 0fc3055dfd..3238b351a3 100644 --- a/src/profiling/SendCounterPacket.hpp +++ b/src/profiling/SendCounterPacket.hpp @@ -20,11 +20,14 @@ class SendCounterPacket : public ISendCounterPacket public: using IndexValuePairsVector = std::vector<std::pair<uint16_t, uint32_t>>; - SendCounterPacket(IBufferWrapper& buffer) : m_Buffer(buffer), m_ReadyToRead(false) {}; + SendCounterPacket(IBufferWrapper& buffer) + : m_Buffer(buffer), + m_ReadyToRead(false) + {} void SendStreamMetaDataPacket() override; - void SendCounterDirectoryPacket(const Category& category, const std::vector<Counter>& counters) override; + void SendCounterDirectoryPacket(const CounterDirectory& counterDirectory) override; void SendPeriodicCounterCapturePacket(uint64_t timestamp, const IndexValuePairsVector& values) override; @@ -37,6 +40,16 @@ public: static const unsigned int MAX_METADATA_PACKET_LENGTH = 4096; private: + template <typename ExceptionType> + void CancelOperationAndThrow(const std::string& errorMessage) + { + // Cancel the operation + m_Buffer.Commit(0); + + // Throw a runtime exception with the given error message + throw ExceptionType(errorMessage); + } + IBufferWrapper& m_Buffer; bool m_ReadyToRead; }; |