1 #ifndef WGS_PROCESSOR__HPP
2 #define WGS_PROCESSOR__HPP
67 virtual bool CanProcess(shared_ptr<CPSGS_Request> request,
68 shared_ptr<CPSGS_Reply> reply)
const override;
70 shared_ptr<CPSGS_Reply> reply,
74 void Cancel(
void)
override;
76 string GetName(
void)
const override;
97 shared_ptr<ncbi::CThreadPool> thread_pool,
98 shared_ptr<CPSGS_Request> request,
99 shared_ptr<CPSGS_Reply> reply,
122 const objects::CID2_Reply_Data&
data);
135 const objects::CID2_Reply_Data&
data);
142 const objects::CAsnBinData& obj,
145 static void x_SendError(shared_ptr<CPSGS_Reply> reply,
147 static void x_SendError(shared_ptr<CPSGS_Reply> reply,
148 const string&
msg,
const exception& exc);
153 return obj.IsSetBlob_state() ? obj.GetBlob_state() : 0;
void x_SendResult(const string &data_to_send, EOutputFormat output_format)
void x_SendChunkBlobData(const string &id2_info, TID2ChunkId chunk_id, const objects::CID2_Reply_Data &data)
void x_ProcessBlobBySatSatKeyRequest(void)
void OnGotBlobBySeqId(void)
void GetBlobBySeqId(void)
void x_ProcessResolveRequest(void)
vector< string > TBlobIds
void x_InitClient(void) const
static void x_SendError(shared_ptr< CPSGS_Reply > reply, const string &msg)
void x_SendBlobProps(const string &psg_blob_id, CBlobRecord &blob_props)
EPSGS_Status GetStatus(void) override
Tells the processor status (if it has finished or in progress)
EOutputFormat x_GetOutputFormat(void)
string GetName(void) const override
Tells the processor name (used in logging and tracing)
void Process(void) override
Main processing function.
bool x_CheckExcludedCache(void)
void x_ProcessTSEChunkRequest(void)
void x_Finish(EPSGS_Status status)
string GetGroupName(void) const override
Tells the processor group name.
void x_SendBlobData(const string &psg_blob_id, const objects::CID2_Reply_Data &data)
CRef< objects::CSeq_id > m_SeqId
unsigned long m_ResendTimeoutMks
void x_WriteData(objects::CID2_Reply_Data &data, const objects::CAsnBinData &obj, bool compress) const
void OnGotBlobByBlobId(void)
void x_UnlockRequest(void)
virtual bool CanProcess(shared_ptr< CPSGS_Request > request, shared_ptr< CPSGS_Reply > reply) const override
Tells if processor can process the given request.
SPSGS_ResolveRequest::EPSGS_OutputFormat EOutputFormat
static int x_GetBlobState(const C &obj)
SPSGS_ResolveRequest::TPSGS_BioseqIncludeData TBioseqInfoFlags
shared_ptr< CWGSClient > m_Client
void x_RegisterTimingNotFound(EPSGOperation operation)
shared_ptr< ncbi::CThreadPool > m_ThreadPool
void OnResolvedSeqId(void)
static string GetPSGId2Info(const CID2_Blob_Id &tse_id, CWGSClient::TID2SplitVersion split_version)
shared_ptr< SWGSData > m_WGSData
void GetBlobByBlobId(void)
void x_ProcessBlobBySeqIdRequest(void)
void x_SendSplitInfo(void)
unsigned long m_SentMksAgo
void x_SendForbidden(void)
~CPSGS_WGSProcessor(void) override
IPSGS_Processor * CreateProcessor(shared_ptr< CPSGS_Request > request, shared_ptr< CPSGS_Reply > reply, TProcessorPriority priority) const override
Create processor to fulfil PSG request using the data source.
void x_SendBlobForbidden(const string &psg_blob_id)
void Cancel(void) override
The infrastructure request to cancel processing.
void x_SetExcludedCacheCompleted(void)
void x_RegisterTiming(psg_time_point_t start, EPSGOperation operation, EPSGOperationStatus status, size_t blob_size)
void x_WaitForOtherProcessors(void)
void x_RemoveFromExcludedCache(void)
bool m_AddedToExcludedCache
bool x_SignalStartProcessing()
void x_SendChunkBlobProps(const string &id2_info, TID2ChunkId chunk_id, CBlobRecord &blob_props)
void x_SendMainEntry(void)
void x_SendBioseqInfo(void)
shared_ptr< SWGSProcessor_Config > m_Config
EOutputFormat m_OutputFormat
void x_RegisterTimingFound(psg_time_point_t start, EPSGOperation operation, const objects::CID2_Reply_Data &data)
bool x_IsEnabled(CPSGS_Request &request) const
Main class implementing functionality of pool of threads.
Interface class (and self-factory) for request processor objects that can retrieve data from a given ...
EPSGS_Status
The GetStatus() method returns a processor current status.
psg_clock_t::time_point psg_time_point_t
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
static CNamedPipeClient * client
int TPSGS_BioseqIncludeData
const string kWGSProcessorEvent