Program Listing for File trace_fifo_posix.h#

Return to documentation for file (tracefifo\trace_fifo_posix.h)

#if !defined TRACE_FIFO_POSIX_H && defined __unix__
#define TRACE_FIFO_POSIX_H

#ifndef TRACE_FIFO_H
#error Do not include this file directly. Include trace_fifo.h instead.
#endif

class CTraceFifoPosix : public CTraceFifoBase
{
public:
    CTraceFifoPosix(uint32_t uiInstanceID = 1000u, size_t nSize = 16*1024);

    virtual ~CTraceFifoPosix();

    CTraceFifoPosix(const CTraceFifoPosix& rfifo) = delete;

    CTraceFifoPosix(CTraceFifoPosix&& rfifo);

    CTraceFifoPosix& operator=(const CTraceFifoPosix& rfifo) = delete;

    CTraceFifoPosix& operator=(CTraceFifoPosix&& rfifo);

    virtual bool Open(size_t nTimeout = 1000, uint32_t uiFlags = 0u) override;

    // Ignore cppcheck warning for not using dynamic binding when being called through the destructor.
    // cppcheck-suppress virtualCallInConstructor
    virtual void Close() override;

    virtual bool IsOpened() const override;

private:
    int     m_iFileDescr = 0;
};

using CTraceFifoImpl = CTraceFifoPosix;

#endif // !defined TRACE_FIFO_POSIX_H