#include <df.h>


Definition at line 444 of file df.h.
Public Member Functions | |
| blk_NetWriter (df_BlockManager &a_mgr, i_UploadAgent_ptr a_uploadAgt) | |
| virtual | ~blk_NetWriter () |
Protected Member Functions | |
| virtual void | Run (void *a_arg) |
Protected Attributes | |
| df_BlockManager & | m_blkManager |
| df_MgrReader | m_mgrReader |
| i_UploadAgent_var | m_uploadAgent |
Private Attributes | |
| log_CLASSID_m | |
| blk_NetWriter::blk_NetWriter | ( | df_BlockManager & | a_mgr, | |
| i_UploadAgent_ptr | a_uploadAgt | |||
| ) |
Definition at line 34 of file blk_netwriter.cpp.
00036 : m_blkManager(a_mgr), 00037 m_mgrReader(a_mgr), 00038 m_uploadAgent( i_UploadAgent::_duplicate(a_uploadAgt) ) { 00039 // Empty 00040 }
| blk_NetWriter::~blk_NetWriter | ( | ) | [virtual] |
Definition at line 43 of file blk_netwriter.cpp.
References log_FUNC_m.
00043 { 00044 log_FUNC_m(~blk_NetWriter); 00045 }
| void blk_NetWriter::Run | ( | void * | a_arg | ) | [protected, virtual] |
Reimplemented from cmn_Thread.
Definition at line 47 of file blk_netwriter.cpp.
References dbg_DETAIL, dbg_LOW, dbg_NORM, df_BlockManager::GetBlocksWritten(), ivd_BaseException::GetDescription(), ivd_BaseException::GetError(), df_MgrReader::GetFull(), df_MgrReader::GetReaderIdx(), ipc_EXEC_m, ivd_Error, log_DBG_INT_m, log_DBG_m, log_ERR_m, log_FUNC_m, m_blkManager, m_mgrReader, m_uploadAgent, NULL, df_MgrReader::Release(), and df_MgrReader::SetError().
00047 { 00048 log_FUNC_m(Run); 00049 00050 UInt64_t blksFromMgr = 0; 00051 00052 try { 00053 log_DBG_m(dbg_NORM, m_mgrReader.GetReaderIdx() << " Writer thread started."); 00054 00055 const df_DataBlock *blk = NULL; 00056 while ( (blk = m_mgrReader.GetFull() ) != NULL) { 00057 blksFromMgr++; 00058 log_DBG_INT_m(dbg_DETAIL, m_mgrReader.GetReaderIdx() << " Got block. Writing."); 00059 00060 try { 00061 i_DataBlock_t dataBlock( 00062 blk->GetUsedSize(), 00063 blk->GetUsedSize(), 00064 blk->GetData(), 00065 0); 00066 00067 ipc_EXEC_m( 00068 m_uploadAgent->Write( 00069 dataBlock, 00070 blk->GetBlockSize() ); 00071 ); 00072 } 00073 catch (ivd_SysError &ie) { 00074 m_mgrReader.SetError( 00075 new ivd_SysError(ie.GetError(), ie.GetDescription()) ); 00076 throw; 00077 } 00078 catch (ivd_Error &ie) { 00079 m_mgrReader.SetError( 00080 new ivd_Error(ie.GetError(), ie.GetDescription()) ); 00081 throw; 00082 } 00083 catch (ivd_Exception &ie) { 00084 m_mgrReader.SetError( 00085 new ivd_Error(ie.GetError(), ie.GetDescription()) ); 00086 throw; 00087 } 00088 m_mgrReader.Release(); 00089 } 00090 } 00091 catch (ivd_Error &ie) { 00092 log_DBG_m(dbg_LOW, 00093 "Problems writing over network. Thread going down." << endl << 00094 "Error: " << ie); 00095 } 00096 catch (ivd_Exception &ie) { 00097 log_DBG_m(dbg_LOW, 00098 "Problems writing over network. Thread going down." << endl << 00099 "Error: " << ie); 00100 } 00101 if (m_blkManager.GetBlocksWritten() != blksFromMgr) { 00102 log_ERR_m( 00103 "Written: " << m_blkManager.GetBlocksWritten() << 00104 " Read : " << blksFromMgr); 00105 } 00106 log_DBG_m(dbg_NORM, 00107 m_mgrReader.GetReaderIdx() << 00108 " End of data. Blocks: " << blksFromMgr); 00109 }

df_BlockManager& blk_NetWriter::m_blkManager [protected] |
df_MgrReader blk_NetWriter::m_mgrReader [protected] |
i_UploadAgent_var blk_NetWriter::m_uploadAgent [protected] |
blk_NetWriter::log_CLASSID_m [private] |
1.5.6