Files
interactive/fhs/ftsd/src/TOTOChecksum.h
T
2026-08-07 17:38:18 +09:00

75 lines
2.1 KiB
C++

/***************************************************************************
Totodisk Checksum Class (#27460, #27533)
-----------------------------------------
begin : 2016/05/11
copyright : (C) 2005 SolutionBox Inc.
author : huibong
email : storage.sd@solbox.com
version : 1.0
CopyRight(C) 2005 SolutionBox Inc. All Rights reserved.
Redistribution and use in source and binary forms, with or with out
modification, are not permitted in outside of SolutionBox Inc.
***************************************************************************/
#ifndef __TOTO_CHECKSUM_H__
#define __TOTO_CHECKSUM_H__
#include <unistd.h>
#include <string>
/// @brief CTotoChecksum class
/// 토토디스크 고객사 지원을 위한 클래스로서
/// 해당 고객사에서 제공한 파일의 Checksum 추출 기능 (java 코드) 을
/// 구현하기 위한 클래스임.
///
/// 본 클래스의 코드는
/// 토토디스크에서 제공한 Java 소스를 이용하여 최대한 유사하게 구현하였으며...
/// 비효율적인 코드가 존재하더라고.. 고객사 코드를 최대한 그대로 변환하려 한 것이므로....
/// 함부로 최적화 하면 절대 안된다....(허락 없이 수정시 옥상에서 던져버릴 것임)
///
/// 에러 상황은 GetErrorMessage() 함수를 통해 어떤이유로 에러가 발생했는지
/// 확인 할 수 있다.
///
class CTotoChecksum
{
public :
// 생성자
CTotoChecksum();
// 소멸자
~CTotoChecksum();
/// @brief 토토디스크 고객사 지원용 파일 Checksum 정보 추출 함수
/// @param szFileFullPath [in] 파일의 절대경로 값.
/// @param nFileTotalSize [in] 파일 크기 값.
/// @param szResult [out] Checksum 추출 결과값을 반환하기 위한 변수.
/// @return 성공은 return true, 그 외에는 return false
bool GetChecksum( const std::string &szFileFullPath, const unsigned long long nFileTotalSize, std::string& szResult );
/// @brief 각 함수 호출시 마지막에 난 에러메세지를 얻을 수 있다.
/// @return 마지막에 발생한 에러메세지.
std::string GetErrorMessage( void ) { return m_szErrorMessage; }
private:
// 토토에서 제공한 CRC 연산 함수.
int calcCRC32( unsigned char b, unsigned int iCrc32 );
private :
std::string m_szErrorMessage;
};
#endif //__TOTO_CHECKSUM_H__