NCBI C++ ToolKit
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CCurVerReader Class Reference

Search Toolkit Book for CCurVerReader

#include "nc_storage_blob.hpp"
(Private to src/app/netcache.)

+ Inheritance diagram for CCurVerReader:
+ Collaboration diagram for CCurVerReader:

Public Member Functions

 CCurVerReader (CNCBlobVerManager *mgr)
 
virtual ~CCurVerReader (void)
 
- Public Member Functions inherited from CSrvTransitionTask
 CSrvTransitionTask (void)
 
virtual ~CSrvTransitionTask (void)
 
void RequestTransition (CSrvTransConsumer *consumer)
 Requests task's state transition with the provided consumer to be notified when transition is finished. More...
 
void CancelTransRequest (CSrvTransConsumer *consumer)
 Cancel transition request from the provided consumer. More...
 
- Public Member Functions inherited from CSrvTask
 CSrvTask (void)
 
void SetRunnable (bool boost=false)
 Set this task "runnable", i.e. More...
 
void RunAfter (Uint4 delay_sec)
 This call is basically equivalent to SetRunnable() but with guarantee that task will be scheduled for execution no earlier than delay_sec later (approximately, can be up to a second less if measured in absolute wall time). More...
 
virtual void Terminate (void)
 Stops task's execution and deletes it. More...
 
void SetPriority (Uint4 prty)
 Set and retrieve task's priority. More...
 
Uint4 GetPriority (void)
 
void CreateNewDiagCtx (void)
 Create new diagnostic context for this task to work in. More...
 
void SetDiagCtx (CRequestContext *ctx)
 Set diagnostic context for this task to work in. More...
 
CRequestContextGetDiagCtx (void)
 Get current diagnostic context for the task. More...
 
void ReleaseDiagCtx (void)
 Releases current diagnostic context of the task. More...
 
virtual ~CSrvTask (void)
 
virtual void InternalRunSlice (TSrvThreadNum thr_num)
 This is the real time slice execution method called from TaskServer. More...
 

Private Member Functions

virtual void ExecuteSlice (TSrvThreadNum thr_num)
 This is the main method to do all work this task should do. More...
 

Private Attributes

CNCBlobVerManagerm_VerMgr
 

Additional Inherited Members

- Static Public Member Functions inherited from CSrvTask
static void PrintState (CSrvSocketTask &task)
 
- Public Attributes inherited from CSrvTask
TSrvTaskListHook m_TaskListHook
 Hook to put this task into TSrvTaskList. More...
 
TSrvThreadNum m_LastThread
 Thread number where this task was executed last time. More...
 
TSrvTaskFlags m_TaskFlags
 Bit-OR of flags for this task. More...
 
int m_LastActive
 Time (in seconds) when the task was active last time, i.e. More...
 
Uint4 m_Priority
 Task's priority. More...
 
CRequestContextm_DiagCtx
 Current diagnostic context for this task. More...
 
CRequestContext ** m_DiagChain
 Nested diagnostic contexts of this task. More...
 
size_t m_DiagChainSize
 
STimerTicketm_Timer
 Timer ticket assigned to this task when it calls RunAfter(). More...
 
CSrvTaskTerminator m_Terminator
 Object that will delete this task after call to Terminate(). More...
 
- Protected Member Functions inherited from CSrvTransitionTask
void FinishTransition (void)
 Finish the transition process and change task's state from "Transition" to "Final" with notification sent to all consumers. More...
 
bool IsTransStateFinal (void)
 Checks if "Final" state was already reached. More...
 

Detailed Description

Definition at line 255 of file nc_storage_blob.hpp.

Constructor & Destructor Documentation

◆ CCurVerReader()

CCurVerReader::CCurVerReader ( CNCBlobVerManager mgr)

Definition at line 979 of file nc_storage_blob.cpp.

◆ ~CCurVerReader()

CCurVerReader::~CCurVerReader ( void  )
virtual

Definition at line 987 of file nc_storage_blob.cpp.

Member Function Documentation

◆ ExecuteSlice()

void CCurVerReader::ExecuteSlice ( TSrvThreadNum  thr_num)
privatevirtual

This is the main method to do all work this task should do.

This method will be called periodically while somebody calls SetRunnable() or RunAfter() on this task. But number of calls to this method won't match number of calls to SetRunnable() – if several calls to SetRunnable() are made before ExecuteSlice() had a chance to execute it will be called only once. Task's code inside ExecuteSlice() should understand itself how much work it needs to do and call SetRunnable() again if needed (or do all the work before returning from ExecuteSlice()). Parameter thr_num is number of thread on which ExecuteSlice() is called.

Implements CSrvTask.

Definition at line 991 of file nc_storage_blob.cpp.

References SNCBlobVerData::chunk_size, SNCCacheData::chunk_size, SNCBlobVerData::chunks, SNCBlobVerData::cnt_chunks, SNCBlobVerData::coord, SNCCacheData::coord, SNCBlobVerData::create_time, SNCBlobSummary::create_time, SNCBlobVerData::cur_chunk_num, CSrvTime::CurSecs(), CNCBlobVerManager::DeleteVersion(), SNCDataCoord::empty(), Error(), CSrvTransitionTask::FinishTransition(), SNCBlobVerData::is_cur_version, CSrvTransitionTask::IsTransStateFinal(), CNCBlobKeyLight::KeyForLogs(), kVerManagerSize, SNCBlobVerData::last_access_time, CNCBlobVerManager::m_CacheData, CNCBlobVerManager::m_CurVersion, CNCBlobVerManager::m_Key, m_VerMgr, SNCBlobVerData::map_size, SNCCacheData::map_size, SNCBlobVerData::meta_mem, NULL, CNCBlobStorage::ReadBlobInfo(), s_AddCurrentMem(), s_CalcVerDataSize(), SNCBlobVerData::size, SNCBlobSummary::size, and SRV_LOG.

Member Data Documentation

◆ m_VerMgr

CNCBlobVerManager* CCurVerReader::m_VerMgr
private

Definition at line 265 of file nc_storage_blob.hpp.

Referenced by ExecuteSlice().


The documentation for this class was generated from the following files:
Modified on Thu Apr 25 08:20:51 2024 by modify_doxy.py rev. 669887