A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/netschedule__api__getjob_8cpp_source.html below:

NCBI C++ ToolKit: src/connect/services/netschedule_api_getjob.cpp Source File

47 template

<

class

TImpl>

56  return

GetJobImpl(deadline, holder);

58

ReturnNotFullyCheckedServers();

60  return

GetJobImpl(deadline, holder);

65 typedef

list<CNetScheduleGetJob::SEntry>

TTimeline

;

68 template

<

class

TImpl>

84  bool Done

() {

return true

; }

85  bool HasJob

()

const

{

return false

; }

91 template

<

class

TImpl>

99  TTimeline

& timeline, TImpl& get_job_impl) :

148

affinity_ladder(

m_GetJobImpl

.m_API->m_AffinityLadder);

155  return

affinity_ladder.back().second;

172

affinity_ladder(

m_GetJobImpl

.m_API->m_AffinityLadder);

177  if

(

job

.

affinity

== affinity_ladder[priority].first) {

183

}

while

(priority-- > 0);

213 template

<

class

TImpl>

214 template

<

class

TJobHolder>

222  if

(

state

== eStopped) {

227  if

(

state

== eRestarted) {

234  if

(

i

== m_ImmediateActions.end()) {

235  return

holder.HasJob() ? eJob : eAgain;

238  if

(*

i

== m_DiscoveryAction) {

239

NextDiscoveryIteration();

246  bool

increment =

false

;

251  const string

& prio_aff_list = holder.Affinity();

252  const bool

any_affinity = !holder.HasJob();

254  if

(m_Impl.CheckEntry(*

i

, prio_aff_list, any_affinity,

255

holder.job, holder.job_status)) {

256  if

(

i

== m_ImmediateActions.begin()) {

263

m_ImmediateActions.splice(m_ImmediateActions.begin(),

264

m_ImmediateActions,

i

);

276  i

->deadline =

CDeadline

(m_Impl.m_Timeout, 0);

277  i

->all_affinities_checked = any_affinity;

278

m_ScheduledActions.splice(m_ScheduledActions.end(),

279

m_ImmediateActions,

i

);

285

m_ImmediateActions.erase(

i

);

289

m_ImmediateActions.erase(

i

);

291  if

(holder.HasJob()) {

299  while

(!m_ScheduledActions.empty() &&

300

m_ScheduledActions.front().deadline.GetRemainingTime().IsZero()) {

301

m_ImmediateActions.splice(m_ImmediateActions.end(),

302

m_ScheduledActions, m_ScheduledActions.begin());

306  while

(

CNetServer

server = m_Impl.ReadNotifications()) {

307

MoveToImmediateActions(server);

310  i

= holder.Next(increment);

314 template

<

class

TImpl>

315 template

<

class

TJobHolder>

317  const CDeadline

& deadline, TJobHolder& holder)

320  EResult

ret = GetJobImmediately(holder);

326  auto

entry_has_more_jobs = [&](

const SEntry

& entry) {

327  return

m_Impl.MoreJobs(entry);

331  if

(find_if(m_ScheduledActions.begin(), m_ScheduledActions.end(),

332

entry_has_more_jobs) == m_ScheduledActions.end()) {

340  _ASSERT

(!m_ScheduledActions.empty());

343  CDeadline

next_event_time = m_ScheduledActions.front().deadline;

344  bool

last_wait = deadline < next_event_time;

345  if

(last_wait) next_event_time = deadline;

347  if

(

CNetServer

server = m_Impl.WaitForNotifications(next_event_time)) {

349

MoveToImmediateActions(server);

350

}

while

((server = m_Impl.ReadNotifications()));

351

}

else if

(last_wait) {

354

m_ImmediateActions.splice(m_ImmediateActions.end(),

355

m_ScheduledActions, m_ScheduledActions.begin());

362

TTimeline::iterator

i

= timeline.begin();

364  while

(

i

!= timeline.end()) {

366

TServers::iterator j = find(servers.begin(), servers.end(), address);

369  if

(j != servers.end()) {

373

timeline.erase(

i

++);

378 template

<

class

TImpl>

382

m_ImmediateActions.clear();

383

m_ScheduledActions.clear();

384

NextDiscoveryIteration();

387 template

<

class

TImpl>

392

TTimeline::iterator

i

= find(m_ScheduledActions.begin(),

393

m_ScheduledActions.end(), entry);

396  if

(

i

!= m_ScheduledActions.end()) {

397

m_ImmediateActions.splice(m_ImmediateActions.end(),

398

m_ScheduledActions,

i

);

402

TTimeline::iterator j = find(m_ImmediateActions.begin(),

403

m_ImmediateActions.end(), entry);

406  if

(j == m_ImmediateActions.end()) {

407

m_ImmediateActions.push_back(entry);

411 template

<

class

TImpl>

417

m_Impl.m_API.GetService().Iterate(

419

servers.push_back((*it)->m_ServerInPool->m_Address);

423  Filter

(m_ImmediateActions, servers);

424  Filter

(m_ScheduledActions, servers);

427  for

(TServers::const_iterator

i

= servers.begin();

428  i

!= servers.end(); ++

i

) {

429

m_ImmediateActions.push_back(*

i

);

433

m_DiscoveryAction.deadline =

CDeadline

(m_Impl.m_Timeout, 0);

434

m_ScheduledActions.push_back(m_DiscoveryAction);

437 template

<

class

TImpl>

444  while

(

i

!= m_ScheduledActions.end()) {

445  if

(

i

->all_affinities_checked) {

448

m_ImmediateActions.splice(m_ImmediateActions.end(),

449

m_ScheduledActions,

i

++);

CNetScheduleAPI::EJobStatus * job_status

CAnyAffinityJob(CNetScheduleJob &j, CNetScheduleAPI::EJobStatus *js, TTimeline &timeline)

const string & Affinity() const

CMostAffinityJob(CNetScheduleJob &j, CNetScheduleAPI::EJobStatus *js, TTimeline &timeline, TImpl &get_job_impl)

TIterator Next(bool increment)

CNetScheduleJob m_PreviousJob

CNetScheduleAPI::EJobStatus * job_status

const string & Affinity() const

EResult GetJobImpl(const CDeadline &deadline, TJobHolder &holder)

void NextDiscoveryIteration()

EResult GetJobImmediately(TJobHolder &holder)

void MoveToImmediateActions(SNetServerImpl *server_impl)

void ReturnNotFullyCheckedServers()

CNetScheduleGetJob::EResult GetJob(const CDeadline &deadline, CNetScheduleJob &job, CNetScheduleAPI::EJobStatus *job_status, bool any_affinity)

#define ERR_POST(message)

Error posting with file, line number information but without error codes.

const string & GetMsg(void) const

Get message string.

void Warning(CExceptionArgs_Base &args)

EJobStatus

Job status codes.

string job_id

Output job key.

#define numeric_limits

Pre-declaration of the "numeric_limits<>" template Forcibly overrides (using preprocessor) the origin...

#define END_NCBI_SCOPE

End previously defined NCBI scope.

#define BEGIN_NCBI_SCOPE

Define ncbi namespace.

bool IsExpired(void) const

Check if the deadline is expired.

vector< CSeq_align const * >::const_iterator TIterator

list< SSocketAddress > TServers

TTimeline::iterator TIterator

list< CNetScheduleGetJob::SEntry > TTimeline

void Filter(TTimeline &timeline, TServers &servers)

vector< pair< string, string > > TAffinityLadder

CRef< SNetServerInPool > m_ServerInPool


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