/****************************************************************************
                Thread class for Network stats send to cc_stat
                -----------------------------------------

    begin      : 2015/09/01
    copyright  : (C) 2005 Solbox Inc.
    author     : Dev Storage Team
	email      : huibong@solbox.com
	version    : 3.5

    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 __NETWORK_SEND_THREAD_H__
#define __NETWORK_SEND_THREAD_H__


#include <pthread.h>
#include <unistd.h>
#include <vector>

#include "GtsSendSocket.h"


/// @brief CNetworkSendThread
/// 본 클래스는 Thread 클래스로서...
/// 서비스별 Network 통계 정보를 합산하여 GTS 의 cc_statd 에 주기적으로 전송하는 기능을 수행한다.
class CNetworkSendThread
{
	public:
	
		// 생성 및 소멸자.
		CNetworkSendThread();
		~CNetworkSendThread();

		// 전송 작업 시작
		bool Start( void );
			
	private:
		
		// Thread function....
		static void * threadFunc( void * arg );

		// 실제 정보 전송을 담당하는 함수...
		void Execute( void );

	private:
		
		// 쓰레드 핸들
        pthread_t m_threadHandle;

		// DB 조회 정보를 저장할 Vector 객체
		std::vector<struct gts_send_stat_network> m_vecNetworkStat;


		// cc_statd 로 Data 전송을 담당할 Socket 처리 Class.
		CGtsSendSocket m_socketGts;
};

#endif /* __NETWORK_SEND_THREAD_H__ */

