75 lines
2.1 KiB
C++
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__
|
|
|