std::placeholders;
52shared_ptr<CPSGS_Reply> reply,
59this, _1, _2, _3, _4),
66this, _1, _2, _3, _4, _5),
68this, _1, _2, _3, _4, _5))
91shared_ptr<CPSGS_Reply> reply)
const 100 autostartup_data_state = app->GetStartupDataState();
102 if(request->NeedTrace()) {
104 "request because Cassandra DB is not available.\n"+
106request->GetStartTimestamp());
117shared_ptr<CPSGS_Reply> reply,
145 const string& message)
187 auto& bioseq_info_record = bioseq_resolution.GetBioseqInfo();
189bioseq_info_record.GetAccession(),
190bioseq_info_record.GetName(),
191bioseq_info_record.GetVersion());
192}
catch(
constexception & exc) {
193 PSG_WARNING(
"Cannot build CSeq_id out of the resolved input seq_id " 194 "due to: "+
string(exc.what()));
196 PSG_WARNING(
"Cannot build CSeq_id out of the resolved input seq_id " 197 "due to unknown reason");
208bioseq_resolution.GetBioseqInfo().GetSatKey(),
266 boolneed_to_check_blob_exclude_cache =
274 if(need_to_check_blob_exclude_cache) {
275 boolcompleted =
true;
277 if(app->GetExcludeBlobCache()->IsInCache(
280completed, completed_time)) {
282 boolfinish_processing =
true;
292sent_mks_ago < m_BlobRequest->m_ResendTimeoutMks) {
304app->GetExcludeBlobCache()->Remove(
307finish_processing =
false;
315 if(finish_processing) {
327 this, _1, _2, _3, _4, _5));
328 switch(populate_result) {
360shared_ptr<CCassConnection> cass_connection;
365 if(!cass_connection) {
376}
catch(
constexception & exc) {
392unique_ptr<CCassBlobFetch> fetch_details;
395unique_ptr<CBlobRecord> blob_record(
new CBlobRecord);
399 autoblob_prop_cache_lookup_result =
411std::move(blob_record),
413fetch_details->SetLoader(load_task);
422 "Blob properties are not found",
429 "Blob properties are not found due to a cache lookup error",
436fetch_details->RemoveFromExcludeBlobCache();
448fetch_details->SetLoader(load_task);
455 this, _1, _2, _3, _4, _5),
456fetch_details.get()));
468 "Cassandra request: "+
500 const string& message)
517 const unsigned char* chunk_data,
518 unsigned intdata_size,
527chunk_data, data_size, chunk_no);
582 if(details->InPeek()) {
585details->SetInPeek(
true);
586 x_Peek(details, need_wait);
587details->SetInPeek(
false);
604details->SetExcludeBlobCacheCompleted();
615 if(!fetch_details->GetLoader())
618 boolfinal_state =
false;
620 if(!fetch_details->ReadFinished()) {
621final_state = fetch_details->GetLoader()->Wait();
623fetch_details->SetReadFinished();
627 if(fetch_details->GetLoader()->HasError() &&
631 string error= fetch_details->GetLoader()->LastError();
642fetch_details->GetLoader()->ClearError();
643fetch_details->SetReadFinished();
675 const string& message)
const string kCassandraProcessorGroupName
const string kCassandraProcessorEvent
void SetDataReadyCB(shared_ptr< CCassDataCallbackReceiver > callback)
void SetPropsCallback(TBlobPropsCallback callback)
void SetErrorCB(TDataErrorCallback error_cb)
EPSGS_CacheLookupResult LookupBlobProp(IPSGS_Processor *processor, int sat, int sat_key, int64_t &last_modified, CBlobRecord &blob_record)
EPSGS_AccessionAdjustmentResult AdjustBioseqAccession(SBioseqResolution &bioseq_resolution)
void OnGetBlobChunk(bool cancelled, CCassBlobFetch *fetch_details, const unsigned char *chunk_data, unsigned int data_size, int chunk_no)
void OnGetBlobProp(CCassBlobFetch *fetch_details, CBlobRecord const &blob, bool is_found)
void PrepareServerErrorMessage(CCassBlobFetch *fetch_details, int code, EDiagSev severity, const string &message)
void OnGetBlobError(CCassBlobFetch *fetch_details, CRequestStatus::ECode status, int code, EDiagSev severity, const string &message)
void ReportFailureToGetCassConnection(void)
CRequestStatus::ECode CountError(CCassFetch *fetch_details, CRequestStatus::ECode status, int code, EDiagSev severity, const string &message, EPSGS_LoggingFlag logging_flag, EPSGS_StatusUpdateFlag status_update_flag)
void UpdateOverallStatus(CRequestStatus::ECode status)
bool IsCassandraProcessorEnabled(shared_ptr< CPSGS_Request > request) const
SCass_BlobId TranslateSatToKeyspace(CBioseqInfoRecord::TSat sat, CBioseqInfoRecord::TSatKey sat_key, const string &seq_id)
EPSGS_MyNCBILookupResult PopulateMyNCBIUser(TMyNCBIDataCB data_cb, TMyNCBIErrorCB error_cb)
void ReportSecureSatUnauthorized(const string &user_name)
list< unique_ptr< CCassFetch > > m_FetchDetails
@ ePSGS_FoundInNotFoundCache
@ ePSGS_IncludeHUPSetToNo
@ ePSGS_FoundInErrorCache
bool AreAllFinishedRead(void) const
bool IsMyNCBIFinished(void) const
void UnlockWaitingProcessor(void)
void CleanupMyNCBICache(void)
IPSGS_Processor::EPSGS_Status GetStatus(void) override
Tells the processor status (if it has finished or in progress)
void ReportMyNCBINotFound(void)
void ReportMyNCBIError(CRequestStatus::ECode status, const string &my_ncbi_message)
void SignalFinishProcessing(void)
optional< string > m_UserName
void x_OnMyNCBIData(const string &cookie, CPSG_MyNCBIRequest_WhoAmI::SUserInfo user_info)
void x_GetBlobFinalStage(void)
void OnGetBlobError(CCassBlobFetch *fetch_details, CRequestStatus::ECode status, int code, EDiagSev severity, const string &message)
virtual EPSGS_Status GetStatus(void)
Tells the processor status (if it has finished or in progress)
virtual string GetName(void) const
Tells the processor name (used in logging and tracing)
void x_Peek(bool need_wait)
virtual bool CanProcess(shared_ptr< CPSGS_Request > request, shared_ptr< CPSGS_Reply > reply) const
Tells if processor can process the given request.
void x_OnResolutionGoodData(void)
virtual ~CPSGS_GetProcessor()
void OnGetBlobProp(CCassBlobFetch *fetch_details, CBlobRecord const &blob, bool is_found)
virtual void Process(void)
Main processing function.
void x_SendBioseqInfo(SBioseqResolution &bioseq_resolution)
void OnGetBlobChunk(CCassBlobFetch *fetch_details, CBlobRecord const &blob, const unsigned char *chunk_data, unsigned int data_size, int chunk_no)
virtual void ProcessEvent(void)
Called when an event happened which may require to have some processing.
bool x_IsExcludedBlob(void) const
virtual IPSGS_Processor * CreateProcessor(shared_ptr< CPSGS_Request > request, shared_ptr< CPSGS_Reply > reply, TProcessorPriority priority) const
Create processor to fulfil PSG request using the data source.
void x_OnSeqIdResolveFinished(SBioseqResolution &&bioseq_resolution)
vector< SCass_BlobId > m_ExcludeBlobs
virtual string GetGroupName(void) const
Tells the processor group name.
void x_OnMyNCBIError(const string &cookie, CRequestStatus::ECode status, int code, EDiagSev severity, const string &message)
void x_OnSeqIdResolveError(CRequestStatus::ECode status, int code, EDiagSev severity, const string &message)
SPSGS_BlobBySeqIdRequest * m_BlobRequest
@ ePSGS_BlobBySeqIdRequest
void ResolveInputSeqId(void)
static CPubseqGatewayApp * GetInstance(void)
Interface class (and self-factory) for request processor objects that can retrieve data from a given ...
shared_ptr< CPSGS_Reply > m_Reply
EPSGS_Status
The GetStatus() method returns a processor current status.
EPSGS_StartProcessing SignalStartProcessing(void)
A processor should call the method when it decides that it successfully started processing the reques...
shared_ptr< CPSGS_Request > m_Request
static const string kGetProcessorName
EDiagSev
Severity level for the posted diagnostics.
@ eDiag_Error
Error message.
@ e500_InternalServerError
CSeq_id & Set(const CTempString &the_id, TParseFlags flags=fParse_AnyRaw)
Reassign based on flat specifications; arguments interpreted as with constructors.
E_Choice
Choice variants.
string ToJsonString(const CBioseqInfoRecord &bioseq_info, SPSGS_ResolveRequest::TPSGS_BioseqIncludeData include_data_flags, const string &custom_blob_id)
#define PSG_ERROR(message)
#define PSG_WARNING(message)
psg_clock_t::time_point psg_time_point_t
unsigned long GetTimespanToNowMks(const psg_time_point_t &t_point)
string GetCassStartupDataStateMessage(EPSGS_StartupDataState state)
EPSGS_ResolutionResult m_ResolutionResult
CBioseqInfoRecord & GetBioseqInfo(void)
bool AdjustName(shared_ptr< CPSGS_Request > request, shared_ptr< CPSGS_Reply > reply)
string ToString(void) const
CBioseqInfoRecord::TSat m_Sat
optional< SSatInfoEntry > m_Keyspace
optional< bool > m_IsSecureKeyspace
CBioseqInfoRecord::TSatKey m_SatKey
vector< string > m_ExcludeBlobs
unsigned long m_ResendTimeoutMks
EPSGS_CacheAndDbUse m_UseCache
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4