/***************************************************************************
                Process 상태 정보 저장 및 console 출력 처리 class
                -----------------------------------------
    begin      : 2014/09/24
    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 __PROCESS_STATUS_H__
#define __PROCESS_STATUS_H__

#include <pthread.h>


// CProcessStatus class
// - 프로세스 의 Client 수, 각 Mode 별 수행 수 정보를 저장
// - 해당 정보를 console 상에 표시하는 역활을 수행한다.
class CProcessStatus
{
	public :

		// 생성자		
		CProcessStatus();

		// 소멸자
		~CProcessStatus();
				
		// thread를 생성하여 프로세스 출력 상태 갱신 작업을 수행.
		bool Start();
		
		// Client 수를 1 증가 처리
		void PlusClientCount(void);		
		
		// Client 수를 1 감소 처리
		void MinusClientCount(void);
		

	private :

		// 스레드 함수
		static void* threadFunc( void* arg );

		// 현재 프로세스 표시 정보 업데이트 
		void Execute( void );


	private:

		// 쓰레드 핸들
		pthread_t m_threadHandle;
		

		// Lock 처리 관련
		pthread_mutex_t m_mxClientThread;
		

		////// 프로세스 title 로 모니터 대상 정보 /////////////

		// 접속 Client 수
		int m_nCurrentClientCount;
	
};

#endif //__PROCESS_STATUS_H__
