/***************************************************************************
                Areca Library Event Data Class
                -----------------------------------------
    begin      : 2010/05/21
    copyright  : (C) 2005 SolutionBox Inc.
    author     : Service 1 Team
    email      : svc1@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 __EVENT_DATA__
#define __EVENT_DATA__

#include <pthread.h>
#include <string>
#include <time.h>

/// @brief CEventData 
/// EventData 는 Areca library로부터 받아오는 raid event 정보를 저장한다.
/// 내부적으로 Thread를 사용하고있다. 
class CEventData 
{
	private:
		int m_nEventCategory;
		int m_nEventId;

	public:
		/// @brief Areca Library에서 얻어온 데이터의 시간값을 저장한다. 
		time_t m_evtTime;
		std::string m_szEventData;

    public:
        /// @brief 생성자
        CEventData(){};

        /// @brief 소멸자
        ~CEventData(){};

		inline void SetEventType( int eventCategory, int evnetId )
		{
			m_nEventCategory = eventCategory;
			m_nEventId = evnetId;
		}

		inline int GetEventCategory() { return m_nEventCategory; };
		inline int GetEventId() { return m_nEventId; };

		/// @brief Areca Library에서 얻어온 이벤트 데이터를 저장한다.
		///< 데이터의 형태로 반복여부를 확인하여 중복 반복시 최초 1개의 데이터만을 알림하도록 설계되었다.
		
		inline bool operator==(const CEventData& t)
		{
			return ( (t.m_evtTime == m_evtTime) && (t.m_szEventData == m_szEventData) );
		}
};
#endif // __EVENT_DATA__
