#pragma once
#include <memory>
#include <string>

#include "rfid.h"

class RfIdLogDecorator :
    public IRfId
{
private:
    std::unique_ptr<IRfId> m_base;
    std::string            m_text;
public:
    RfIdLogDecorator(const std::string &text, IRfId *base);
    virtual ~RfIdLogDecorator(void);

    virtual bool    WriteID(const std::string &strID);
    virtual bool    ReadID(std::string *pResult);
    virtual bool    TestComm();
    virtual std::string GetErrorMessage() const;
    void            Log(const char *format, ...);
};
