/*************************************************************************** ContentList.cpp ----------------------------------------- begin : 2015/05/29 copyright : (C) 2005 SolutionBox Inc. author : Service 1 Team email : svc1@solbox.com 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. ***************************************************************************/ #include "TransferStatDataList.h" #include "MutexLock.hpp" //////////////////////////////////////////////////////////////////////////// // // CTransferStatDataList Class // //////////////////////////////////////////////////////////////////////////// CTransferStatDataList::CTransferStatDataList() { pthread_mutex_init(&m_mutex, NULL); } CTransferStatDataList::~CTransferStatDataList() { ProtectedMutex mutex(m_mutex); pthread_mutex_destroy(&m_mutex); } void CTransferStatDataList::Push( CTransferStatData& statData ) { ProtectedMutex mutex(m_mutex); // µ¿ÀÏÇÑ ÆÄÀÏ¿¡ ´ëÇØ¼­ insert ¹æÁö ¹× ¸Þ¸ð¸® Àý¾à ¸ñÀûÀ¸·Î map »ç¿ë m_TransferStatMap.insert(std::map< std::string, CTransferStatData>::value_type(statData.GetFilenameHash(), CTransferStatData(statData))); } void CTransferStatDataList::Pop(CTransferStatData & data) { ProtectedMutex mutex(m_mutex); //CTransferStatData data; // Å¥°¡ ºñ¾úÀ¸¸é ºó µ¥ÀÌÅÍ ¹Ýȯ. if (m_TransferStatMap.empty() == true) { LOG( LDBG, "no element in the queue of TransferStatDataList." ); return; } std::map< std::string, CTransferStatData>::iterator it = m_TransferStatMap.begin(); data.SetTransferStatData( it->second.GetData()); m_TransferStatMap.erase(it); return; } unsigned int CTransferStatDataList::GetSize() { ProtectedMutex mutex(m_mutex); unsigned int r = 0; r = m_TransferStatMap.size(); return r; } void CTransferStatDataList::Clear() { ProtectedMutex mutex(m_mutex); while (m_TransferStatMap.size() > 0) { m_TransferStatMap.erase(m_TransferStatMap.begin()); } }