/*************************************************************************** Cache »ý¼º ÀÛ¾÷À» ¼öÇàÇÏ´Â Thread class ----------------------------------------- begin : 2010/03/13 copyright : (C) 2010 Solbox Inc. author : storage dev team email : storage.sd@solbox.com version : 3.3 CopyRight(C) 2010 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 __CACHE_THREAD_H__ #define __CACHE_THREAD_H__ #include #include #include #include "ProcessStatus.h" #include "CacheData.h" #include "CacheJobList.h" #include "DataQueue.hpp" // CCacheThread // Àü´Þ¹ÞÀº Content ¿¡ ´ëÇØ °¢ FHS ¿Í Åë½ÅÀ» ÅëÇØ ½ÇÁ¦ Cache »ý¼ºÀ» ¼öÇà // - Cache Á¤º¸ ¹× FHS Á¤º¸¸¦ SocketControl À» ÀÌ¿ëÇÏ¿© ftsd ·Î Àü¼Û // - ó¸® °á°ú ¼ö½Å ÈÄ CompletQueue °á°ú ÀúÀåó¸® // ³»ºÎÀûÀ¸·Î Thread¸¦ »ç¿ë class CCacheThread { public: // »ý¼ºÀÚ CCacheThread( CProcessStatus* pProcessStatus , CCacheJobList* pJobList , CDataQueue* pQueueCacheComplete , CCacheData& dataCache ); ~CCacheThread(); // thread¸¦ »ý¼ºÇÏ¿© Cache »ý¼º ÀÛ¾÷À» ¼öÇà. bool Start(); private: // ÇÁ·Î¼¼½º »óÀÇ Queue, Thread »óŸ¦ °ü¸®ÇÏ´Â CProcessStatus °´Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅÍ // - »ý¼ºÀÚ¸¦ ÅëÇØ Àü´Þ¹ÞÀ½ CProcessStatus * m_pProcessStatus; // Cache »ý¼º °ü·Ã Job List °´Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅÍ // - »ý¼ºÀÚ¸¦ ÅëÇØ Àü´Þ¹ÞÀ½ CCacheJobList* m_pCacheJob; // Cache »ý¼º ¿Ï·á ÀúÀå Queue ¿¡ ´ëÇÑ Æ÷ÀÎÅÍ // - »ý¼ºÀÚ¸¦ ÅëÇØ Àü´Þ¹ÞÀ½ CDataQueue* m_pQueueCacheComplete; // Cache »ý¼º ´ë»ó content Á¤º¸ // - »ý¼ºÀÚ¸¦ ÅëÇØ Àü´Þ¹ÞÀ½ CCacheData m_dataCache; // ³»ºÎ Thread ¿¡ ´ëÇÑ ID pthread_t m_threadHandle; // ftsd ·Î ºÎÅÍ Á¤»ó ó¸®µÈ °á°ú Á¤º¸¸¦ ¼ö½ÅÇϱâ À§ÇÑ ¸â¹ö °´Ã¼ // - success fhs host, hash_name std::map m_mapSuccessFhs; // ftsd ·Î ºÎÅÍ ½ÇÆÐ ó¸®µÈ °á°ú Á¤º¸¸¦ ¼ö½ÅÇϱâ À§ÇÑ ¸â¹ö °´Ã¼ // - failed fhs host, error message std::map m_mapFailFhs; private: // ½º·¹µå ÇÔ¼ö static void* threadFunc( void* arg ); // ½ÇÁ¦ Cache »ý¼º ÀÛ¾÷À» ¼öÇà void Execute(); void DoSuccessProcess(); }; #endif //__CACHE_THREAD_H__