/****************************************************************************
                exec system Wrapper Class
                -----------------------------------------
    begin      : 2014/09/02
    copyright  : (C) 2005 Solbox Inc.
    author     : Storage Dev Team	                
    email      : storage.sd@solbox.com
    version    : 3.4

    CopyRight(C) 2005 Solbox Inc. All Rights reserved.
    Redistribution and use in source and binary forms, with or with out
    modification, are not permitted in outside of Solbox Inc.
*****************************************************************************/

#ifndef __EXEC_CALL_H__
#define __EXEC_CALL_H__

#include "SyncList.h"

class CExecCall
{
public:
	enum Call_TYPE
	{
		DIFF_SCRIPT	= 0,
		RC_CMOVE		= 1
	};

	CExecCall(CSyncInfo & info);
	~CExecCall();

	// 외부 명령어 수행 함수
	// @param     t : 수행 명령어 종류(Call_TYPE 참조)
    //		 called : 수행 명령어 완료 대기(true: 수행 명령어 종료 대기, flase : 명령만 수행)
	// @return 0 : 정상 수행, 0 이외 : 비정상 수행됨
	int Call(Call_TYPE t, bool called = true);
	
	// 외부 명령인 wc -l 수행 함수
	// @return 0 <= : filename 대한 wc 수행 결과 ,  0 > : 비정상 수행됨
	int GetFileLine(const char * filename);

private:
	int DIFF(bool called = true);
	int RCCMove(bool called = true);

	CSyncInfo	m_info;
};


#endif /* __EXEC_CALL_H__ */
