#ifndef VENDOR_SAMSUNG_SECURITY_DRK_ETCCMD_H
#define VENDOR_SAMSUNG_SECURITY_DRK_ETCCMD_H

#include "systemConfig.h"
#include "BaseCmdHandler.h"
#include "HermesCommand.h"
#include "LockGuard.h"

namespace vendor   {
namespace samsung  {
namespace hardware {
namespace security {
namespace drk      {

class EtcCmdHandler : public BaseCmdHandler, HermesCommand
{
private:
    LockGuard       mlockGuard;

private:
    int32_t  encodeMessage(int32_t cmd, void *param, Bytes& out);
    int32_t  decodeMessage(int32_t cmd, Bytes& in, void *param);
    int32_t  fileCommand(int32_t cmd, Bytes& req, Bytes& resp);
    int32_t  checkFileStatus(char *filePath, uint32_t blobSize);

public:
    EtcCmdHandler() {};
    ~EtcCmdHandler() {};


    int32_t  CmdHandler(int32_t cmd, uint32_t cpid, Bytes& req, Bytes& resp);
};
}  // namespace drk
}  // namespace security
}  // namespace hardware
}  // namespace samsung
}  // namespace vendor

#endif
