4 #include <arc/Thread.h>
5 #include <arc/Logger.h>
7 #include <arc/data/URLMap.h>
11 #include "Processor.h"
12 #include "DataDelivery.h"
13 #include "TransferShares.h"
15 namespace DataStaging {
37 std::list<std::string> cancelled_jobs;
40 std::list<DTR_ptr> events;
43 std::map<std::string, std::list<DTR_ptr> > staged_queue;
55 std::string preferred_pattern;
70 unsigned int PreProcessorSlots;
72 unsigned int DeliverySlots;
74 unsigned int PostProcessorSlots;
76 unsigned int EmergencySlots;
78 unsigned int StagedPreparedSlots;
81 std::string dumplocation;
84 std::vector<Arc::URL> configured_delivery_services;
88 std::map<Arc::URL, std::vector<std::string> > usable_delivery_services;
94 unsigned long long int remote_size_limit;
100 std::list<Arc::LogDestination*> root_destinations;
115 static Glib::Mutex instance_lock;
125 void ProcessDTRNEW(
DTR_ptr request);
127 void ProcessDTRCACHE_WAIT(
DTR_ptr request);
129 void ProcessDTRCACHE_CHECKED(
DTR_ptr request);
131 void ProcessDTRRESOLVED(
DTR_ptr request);
133 void ProcessDTRREPLICA_QUERIED(
DTR_ptr request);
135 void ProcessDTRPRE_CLEANED(
DTR_ptr request);
137 void ProcessDTRSTAGING_PREPARING_WAIT(
DTR_ptr request);
139 void ProcessDTRSTAGED_PREPARED(
DTR_ptr request);
141 void ProcessDTRTRANSFERRED(
DTR_ptr request);
143 void ProcessDTRREQUEST_RELEASED(
DTR_ptr request);
145 void ProcessDTRREPLICA_REGISTERED(
DTR_ptr request);
147 void ProcessDTRCACHE_PROCESSED(
DTR_ptr request);
151 void ProcessDTRFINAL_STATE(
DTR_ptr request);
156 void log_to_root_logger(
Arc::LogLevel level,
const std::string& message);
159 void map_state_and_process(
DTR_ptr request);
164 void map_cancel_state(
DTR_ptr request);
168 void map_stuck_state(
DTR_ptr request);
173 void choose_delivery_service(
DTR_ptr request);
177 void revise_queues();
183 void process_events(
void);
191 void next_replica(
DTR_ptr request);
202 static void dump_thread(
void* arg);
205 static void main_thread(
void* arg);
207 void main_thread(
void);
231 void SetSlots(
int pre_processor = 0,
int post_processor = 0,
232 int delivery = 0,
int emergency = 0,
int staged_prepared = 0);