ARC SDK
Public Member Functions
DataStaging::DTRList Class Reference

Global list of all active DTRs in the system. More...

#include <arc/data-staging/DTRList.h>

Public Member Functions

bool add_dtr (DTR_ptr DTRToAdd)
 Put a new DTR into the list.
 
bool delete_dtr (DTR_ptr DTRToDelete)
 Remove a DTR from the list.
 
bool filter_dtrs_by_owner (StagingProcesses OwnerToFilter, std::list< DTR_ptr > &FilteredList)
 Filter the queue to select DTRs owned by a specified process. More...
 
int number_of_dtrs_by_owner (StagingProcesses OwnerToFilter)
 Returns the number of DTRs owned by a particular process.
 
bool filter_dtrs_by_status (DTRStatus::DTRStatusType StatusToFilter, std::list< DTR_ptr > &FilteredList)
 Filter the queue to select DTRs with particular status. More...
 
bool filter_dtrs_by_statuses (const std::vector< DTRStatus::DTRStatusType > &StatusesToFilter, std::list< DTR_ptr > &FilteredList)
 Filter the queue to select DTRs with particular statuses. More...
 
bool filter_dtrs_by_statuses (const std::vector< DTRStatus::DTRStatusType > &StatusesToFilter, std::map< DTRStatus::DTRStatusType, std::list< DTR_ptr > > &FilteredList)
 Filter the queue to select DTRs with particular statuses. More...
 
bool filter_dtrs_by_next_receiver (StagingProcesses NextReceiver, std::list< DTR_ptr > &FilteredList)
 Select DTRs that are about to go to the specified process. More...
 
bool filter_pending_dtrs (std::list< DTR_ptr > &FilteredList)
 Select DTRs that have just arrived from pre-, post-processor, delivery or generator. More...
 
bool filter_dtrs_by_job (const std::string &jobid, std::list< DTR_ptr > &FilteredList)
 Get the list of DTRs corresponding to the given job ID. More...
 
void caching_started (DTR_ptr request)
 Update the caching set, add a DTR (only if it is CACHEABLE).
 
void caching_finished (DTR_ptr request)
 Update the caching set, removing a DTR.
 
bool is_being_cached (DTR_ptr DTRToCheck)
 Returns true if the DTR's source is currently in the caching set.
 
bool empty ()
 Returns true if there are no DTRs in the list.
 
std::list< std::string > all_jobs ()
 Get the list of all job IDs.
 
void dumpState (const std::string &path)
 Dump state of all current DTRs to a destination, eg file, database, url... More...
 

Detailed Description

Global list of all active DTRs in the system.

This class contains several methods for filtering the list by owner, state etc.

Member Function Documentation

void DataStaging::DTRList::dumpState ( const std::string &  path)

Dump state of all current DTRs to a destination, eg file, database, url...

Currently only file is supported.

Parameters
pathPath to the file in which to dump state.
bool DataStaging::DTRList::filter_dtrs_by_job ( const std::string &  jobid,
std::list< DTR_ptr > &  FilteredList 
)

Get the list of DTRs corresponding to the given job ID.

Parameters
jobidJob id to filter on
FilteredListThis list is filled with filtered DTRs
bool DataStaging::DTRList::filter_dtrs_by_next_receiver ( StagingProcesses  NextReceiver,
std::list< DTR_ptr > &  FilteredList 
)

Select DTRs that are about to go to the specified process.

This selection is actually a virtual queue for pre-, post-processor and delivery.

Parameters
NextReceiverThe process to filter on
FilteredListThis list is filled with filtered DTRs
bool DataStaging::DTRList::filter_dtrs_by_owner ( StagingProcesses  OwnerToFilter,
std::list< DTR_ptr > &  FilteredList 
)

Filter the queue to select DTRs owned by a specified process.

Parameters
OwnerToFilterThe owner to filter on
FilteredListThis list is filled with filtered DTRs
bool DataStaging::DTRList::filter_dtrs_by_status ( DTRStatus::DTRStatusType  StatusToFilter,
std::list< DTR_ptr > &  FilteredList 
)

Filter the queue to select DTRs with particular status.

If we have only one common queue for all DTRs, this method is necessary to make virtual queues for the DTRs about to go into the pre-, post-processor or delivery stages.

Parameters
StatusToFilterDTR status to filter on
FilteredListThis list is filled with filtered DTRs
bool DataStaging::DTRList::filter_dtrs_by_statuses ( const std::vector< DTRStatus::DTRStatusType > &  StatusesToFilter,
std::list< DTR_ptr > &  FilteredList 
)

Filter the queue to select DTRs with particular statuses.

Parameters
StatusesToFilterVector of DTR statuses to filter on
FilteredListThis list is filled with filtered DTRs
bool DataStaging::DTRList::filter_dtrs_by_statuses ( const std::vector< DTRStatus::DTRStatusType > &  StatusesToFilter,
std::map< DTRStatus::DTRStatusType, std::list< DTR_ptr > > &  FilteredList 
)

Filter the queue to select DTRs with particular statuses.

Parameters
StatusesToFilterVector of DTR statuses to filter on
FilteredListThis map is filled with filtered DTRs, one list per state.
bool DataStaging::DTRList::filter_pending_dtrs ( std::list< DTR_ptr > &  FilteredList)

Select DTRs that have just arrived from pre-, post-processor, delivery or generator.

These DTRs need some reaction from the scheduler. This selection is actually a virtual queue of DTRs that need to be processed.

Parameters
FilteredListThis list is filled with filtered DTRs

The documentation for this class was generated from the following file: