40 #if defined(NCBI_OS_UNIX)
44 #ifndef SKIP_DOXYGEN_PROCESSING
54 om->GetRegisteredNames(loader_names);
58 if(
om->RevokeDataLoader(*loader_name)){
59 _TRACE(
"Unregistered Data Loader: " + *loader_name);
62 _TRACE(
"Failed to Unregistered Data Loader: " + *loader_name);
66 _TRACE(
"Failed to unregister data loader: " + *loader_name);
81 m_NodeNum(node_num), m_NcbiArgs(ncbi_args), m_Args(args),
82 m_Bah(bah), m_QueryIndex(query_index), m_NumOfQueries(num_queries),
83 m_QueriesLength(0), m_DataLoaderPrefix(
kEmptyStr)
122 m_OutputStream(out_stream), m_MaxNumThreads(num_threads), m_MaxNumNodes(num_threads + 2),
123 m_NumErrStatus(0), m_NumQueries(0), m_QueriesLength(0)
141 if(mailbox ==
NULL) {
162 if(itr->second->GetNumMsgs() > 0) {
164 int chunk_num = itr->first;
165 if (
msg.NotEmpty()) {
166 switch (
msg->GetMsgType()) {
177 pair<int,CRef<CBlastNodeMsg> > m(chunk_num, empty_msg);
179 INFO_POST(
"Starting Chunk # " << chunk_num <<
" " <<
n->GetNodeIdStr());
186 itr->second->UnreadMsg(
msg);
233 string err_msg =
"Empty formatting msg for chunk num # " +
NStr::IntToString(itr->first);
236 int node_num =
n->GetNodeNum();
242 ERR_POST(
"Chunk # " << node_num <<
" exit with error (" <<
n->GetStatus() <<
")");
267 in_buffer = rr->first - ra->first;
275 static const int kMainAccSize = 32;
276 size_t digit_pos = line.find_last_of(
"0123456789|", kMainAccSize);
277 if (digit_pos !=
NPOS) {
299 if (c ==
'!' || c ==
'#' || c ==
';') {
303 if ( isId || ( c ==
'>' )) {
static const string kPrefixThread
static void s_UnregisterDataLoader(const string &dbloader_prefix)
bool s_IsSeqID(string &line)
Class to capture message from diag handler.
Defines BLAST error codes (user errors included)
TActiveNodes m_ActiveNodes
CConditionVariable m_NewEvent
CBlastMasterNode(CNcbiOstream &out_stream, int num_threads)
void RegisterNode(CBlastNode *node, CBlastNodeMailbox *mailbox)
TRegisteredNodes m_RegisteredNodes
TFormatQueue m_FormatQueue
CNcbiOstream & m_OutputStream
list< CRef< CBlastNodeMsg > > m_MsgQueue
void SendMsg(CRef< CBlastNodeMsg > msg)
CConditionVariable & m_Notify
string m_DataLoaderPrefix
void SendMsg(CBlastNodeMsg::EMsgType msg_type, void *ptr=NULL)
CRef< CBlastNodeMailbox > m_Mailbox
void SetDataLoaderPrefix()
virtual ~CBlastNode(void)
CBlastNode(int node_num, const CNcbiArguments &ncbi_args, const CArgs &args, CBlastAppDiagHandler &bah, int query_index, int num_queries, CBlastNodeMailbox *mailbox)
container_type::iterator iterator
const_iterator begin() const
const_iterator end() const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define INFO_POST(message)
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
void UngetLine(void)
Unget current line, which must be valid.
bool AtEOF(void) const
Indicates (negatively) whether there is any more input.
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
vector< string > TRegisteredNames
void Reset(void)
Reset reference object.
bool NotEmpty(void) const THROWS_NONE
Check if CRef is not empty – pointing to an object and has a non-null value.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
static CTempString TruncateSpaces_Unsafe(const CTempString str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
@ eTrunc_Begin
Truncate leading whitespace only.
void SignalSome(void)
Wake at least one of the threads that are currently waiting on this condition variable (if any thread...
bool WaitForSignal(CMutex &mutex, const CDeadline &deadline=CDeadline::eInfinite)
Release mutex and lock the calling thread until the condition variable is signalled.
double Elapsed(void) const
Return time elapsed since first Start() or last Restart() call (in seconds).
string AsSmartString(ESmartStringPrecision precision, ERound rounding, ESmartStringZeroMode zero_mode=eSSZ_SkipZero) const
Transform time span to "smart" string.
void Start(void)
Start the timer.
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
Declares the CRemoteBlast class.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
CRef< objects::CObjectManager > om