00001
00002
00003
00004
00005
00006
00007
00008 #include <lestes/backend_v2/structs/func_data.g.hh>
00009 #include <lestes/backend_v2/intercode/pi.g.hh>
00010 #include <lestes/backend_v2/intercode/ge.g.hh>
00011 #include <lestes/backend_v2/workers/bb_finder.g.hh>
00012
00013 #include <lestes/std/list.hh>
00014 #include <lestes/std/pair.hh>
00015 #include <lestes/std/reflect.hh>
00016
00017 #include <lestes/backend_v2/workers/scheduler.g.hh>
00018
00019 package(lestes);
00020 package(backend_v2);
00021 package(workers);
00022
00023
00024
00025
00026
00027
00028
00029
00030 bool scheduler::dumb_scheduling_get() const
00031 {
00032 return dumb_scheduling;
00033 }
00034
00035
00036
00037
00038
00039 void scheduler::dumb_scheduling_set(bool x)
00040 {
00041 scheduler::dumb_scheduling = x;
00042 }
00043
00044
00045
00046
00047
00048 ulint scheduler::current_schedule_pos_get() const
00049 {
00050 return current_schedule_pos;
00051 }
00052
00053
00054
00055
00056
00057 void scheduler::current_schedule_pos_set(ulint x)
00058 {
00059 scheduler::current_schedule_pos = x;
00060 }
00061
00062
00063
00064
00065
00066 ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > scheduler::ge2si_get() const
00067 {
00068 return ge2si;
00069 }
00070
00071
00072
00073
00074
00075 void scheduler::ge2si_set(const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > & x)
00076 {
00077 scheduler::ge2si = x;
00078 }
00079
00080
00081
00082
00083
00084 ptr< scheduler > scheduler::create(ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data,
00085 bool a__scheduler__dumb_scheduling,
00086 ulint a__scheduler__current_schedule_pos,
00087 ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > a__scheduler__ge2si)
00088 {
00089 return ptr< scheduler > ( new scheduler(a__worker_base__data,
00090 a__scheduler__dumb_scheduling,
00091 a__scheduler__current_schedule_pos,
00092 a__scheduler__ge2si) );
00093 }
00094
00095
00096
00097
00098
00099 ptr< scheduler > scheduler::create(ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data)
00100 {
00101 return ptr< scheduler > ( new scheduler(a__worker_base__data, false, 0, ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > ::create()) );
00102 }
00103
00104
00105
00106
00107
00108 scheduler::scheduler (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data,
00109 bool a__scheduler__dumb_scheduling,
00110 ulint a__scheduler__current_schedule_pos,
00111 ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > a__scheduler__ge2si)
00112 : worker_base(a__worker_base__data), dumb_scheduling(a__scheduler__dumb_scheduling), current_schedule_pos(a__scheduler__current_schedule_pos), ge2si(checked(a__scheduler__ge2si))
00113 {}
00114
00115 ptr< object::reflection_list > scheduler::reflection_get() const
00116 {
00117 if (!reflection) {
00118 typedef class_reflection::field_metadata md;
00119 typedef class_reflection::field_metadata_list mdlist;
00120 ptr<mdlist> mdl = mdlist::create();
00121 mdl->push_back( md::create( "dumb_scheduling", "bool" ) );
00122 mdl->push_back( md::create( "current_schedule_pos", "ulint" ) );
00123 mdl->push_back( md::create( "ge2si", "map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > >" ) );
00124 reflection = reflection_list::create( worker_base::reflection_get() );
00125 reflection->push_back( class_reflection::create( "scheduler", mdl ) );
00126 }
00127 return reflection;
00128 }
00129
00130 ptr< object::field_list_list > scheduler::field_values_get() const
00131 {
00132 ptr < field_list_list > result = worker_base::field_values_get();
00133 result->push_back( value_list::create() );
00134 result->back()->push_back( objectize< bool > ::create( this->dumb_scheduling ) );
00135 result->push_back( value_list::create() );
00136 result->back()->push_back( objectize< ulint > ::create( this->current_schedule_pos ) );
00137 result->push_back( value_list::create() );
00138 result->back()->push_back( this->ge2si );
00139 return result;
00140 }
00141
00142
00143
00144
00145
00146
00147 void scheduler::gc_mark()
00148 {
00149 worker_base::gc_mark();
00150 }
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160 ptr< ::lestes::backend_v2::intercode::ge_pi > schedule_item::instruction_get() const
00161 {
00162 return instruction;
00163 }
00164
00165
00166
00167
00168
00169 void schedule_item::instruction_set(const ptr< ::lestes::backend_v2::intercode::ge_pi > & x)
00170 {
00171 schedule_item::instruction = x;
00172 }
00173
00174
00175
00176
00177
00178 ptr< ::lestes::std::set< srp< schedule_item > > > schedule_item::in_deps_get() const
00179 {
00180 return in_deps;
00181 }
00182
00183
00184
00185
00186
00187 void schedule_item::in_deps_set(const ptr< ::lestes::std::set< srp< schedule_item > > > & x)
00188 {
00189 schedule_item::in_deps = x;
00190 }
00191
00192
00193
00194
00195
00196 ptr< ::lestes::std::set< srp< schedule_item > > > schedule_item::in_deps_copy_get() const
00197 {
00198 return in_deps_copy;
00199 }
00200
00201
00202
00203
00204
00205 void schedule_item::in_deps_copy_set(const ptr< ::lestes::std::set< srp< schedule_item > > > & x)
00206 {
00207 schedule_item::in_deps_copy = x;
00208 }
00209
00210
00211
00212
00213
00214 ptr< ::lestes::std::set< srp< schedule_item > > > schedule_item::out_deps_get() const
00215 {
00216 return out_deps;
00217 }
00218
00219
00220
00221
00222
00223 void schedule_item::out_deps_set(const ptr< ::lestes::std::set< srp< schedule_item > > > & x)
00224 {
00225 schedule_item::out_deps = x;
00226 }
00227
00228
00229
00230
00231
00232 ptr< ::lestes::std::set< srp< schedule_item > > > schedule_item::out_deps_copy_get() const
00233 {
00234 return out_deps_copy;
00235 }
00236
00237
00238
00239
00240
00241 void schedule_item::out_deps_copy_set(const ptr< ::lestes::std::set< srp< schedule_item > > > & x)
00242 {
00243 schedule_item::out_deps_copy = x;
00244 }
00245
00246
00247
00248
00249
00250 ulint schedule_item::etime_get() const
00251 {
00252 return etime;
00253 }
00254
00255
00256
00257
00258
00259 void schedule_item::etime_set(ulint x)
00260 {
00261 schedule_item::etime = x;
00262 }
00263
00264
00265
00266
00267
00268 ulint schedule_item::ctime_get() const
00269 {
00270 return ctime;
00271 }
00272
00273
00274
00275
00276
00277 void schedule_item::ctime_set(ulint x)
00278 {
00279 schedule_item::ctime = x;
00280 }
00281
00282
00283
00284
00285
00286 ulint schedule_item::start_time_get() const
00287 {
00288 return start_time;
00289 }
00290
00291
00292
00293
00294
00295 void schedule_item::start_time_set(ulint x)
00296 {
00297 schedule_item::start_time = x;
00298 }
00299
00300
00301
00302
00303
00304 ulint schedule_item::end_time_get() const
00305 {
00306 return end_time;
00307 }
00308
00309
00310
00311
00312
00313 void schedule_item::end_time_set(ulint x)
00314 {
00315 schedule_item::end_time = x;
00316 }
00317
00318
00319
00320
00321
00322 ulint schedule_item::latest_start_time_get() const
00323 {
00324 return latest_start_time;
00325 }
00326
00327
00328
00329
00330
00331 void schedule_item::latest_start_time_set(ulint x)
00332 {
00333 schedule_item::latest_start_time = x;
00334 }
00335
00336
00337
00338
00339
00340 ptr< schedule_item > schedule_item::create(ptr< ::lestes::backend_v2::intercode::ge_pi > a__schedule_item__instruction,
00341 ptr< ::lestes::std::set< srp< schedule_item > > > a__schedule_item__in_deps,
00342 ptr< ::lestes::std::set< srp< schedule_item > > > a__schedule_item__in_deps_copy,
00343 ptr< ::lestes::std::set< srp< schedule_item > > > a__schedule_item__out_deps,
00344 ptr< ::lestes::std::set< srp< schedule_item > > > a__schedule_item__out_deps_copy,
00345 ulint a__schedule_item__etime,
00346 ulint a__schedule_item__ctime,
00347 ulint a__schedule_item__start_time,
00348 ulint a__schedule_item__end_time,
00349 ulint a__schedule_item__latest_start_time)
00350 {
00351 return ptr< schedule_item > ( new schedule_item(a__schedule_item__instruction,
00352 a__schedule_item__in_deps,
00353 a__schedule_item__in_deps_copy,
00354 a__schedule_item__out_deps,
00355 a__schedule_item__out_deps_copy,
00356 a__schedule_item__etime,
00357 a__schedule_item__ctime,
00358 a__schedule_item__start_time,
00359 a__schedule_item__end_time,
00360 a__schedule_item__latest_start_time) );
00361 }
00362
00363
00364
00365
00366
00367 ptr< schedule_item > schedule_item::create(ptr< ::lestes::backend_v2::intercode::ge_pi > a__schedule_item__instruction,
00368 ulint a__schedule_item__etime,
00369 ulint a__schedule_item__ctime)
00370 {
00371 return ptr< schedule_item > ( new schedule_item(a__schedule_item__instruction, ::lestes::std::set< srp< schedule_item > > ::create(), ::lestes::std::set< srp< schedule_item > > ::create(), ::lestes::std::set< srp< schedule_item > > ::create(), ::lestes::std::set< srp< schedule_item > > ::create(), a__schedule_item__etime, a__schedule_item__ctime, 0, 0, 0xfffffffe) );
00372 }
00373
00374
00375
00376
00377
00378 schedule_item::schedule_item (ptr< ::lestes::backend_v2::intercode::ge_pi > a__schedule_item__instruction,
00379 ptr< ::lestes::std::set< srp< schedule_item > > > a__schedule_item__in_deps,
00380 ptr< ::lestes::std::set< srp< schedule_item > > > a__schedule_item__in_deps_copy,
00381 ptr< ::lestes::std::set< srp< schedule_item > > > a__schedule_item__out_deps,
00382 ptr< ::lestes::std::set< srp< schedule_item > > > a__schedule_item__out_deps_copy,
00383 ulint a__schedule_item__etime,
00384 ulint a__schedule_item__ctime,
00385 ulint a__schedule_item__start_time,
00386 ulint a__schedule_item__end_time,
00387 ulint a__schedule_item__latest_start_time)
00388 : ::lestes::std::object(), instruction(checked(a__schedule_item__instruction)), in_deps(a__schedule_item__in_deps), in_deps_copy(a__schedule_item__in_deps_copy), out_deps(a__schedule_item__out_deps), out_deps_copy(a__schedule_item__out_deps_copy), etime(a__schedule_item__etime), ctime(a__schedule_item__ctime), start_time(a__schedule_item__start_time), end_time(a__schedule_item__end_time), latest_start_time(a__schedule_item__latest_start_time)
00389 {}
00390
00391 ptr< object::reflection_list > schedule_item::reflection_get() const
00392 {
00393 if (!reflection) {
00394 typedef class_reflection::field_metadata md;
00395 typedef class_reflection::field_metadata_list mdlist;
00396 ptr<mdlist> mdl = mdlist::create();
00397 mdl->push_back( md::create( "instruction", "ge_pi" ) );
00398 mdl->push_back( md::create( "in_deps", "set< srp< schedule_item > >" ) );
00399 mdl->push_back( md::create( "in_deps_copy", "set< srp< schedule_item > >" ) );
00400 mdl->push_back( md::create( "out_deps", "set< srp< schedule_item > >" ) );
00401 mdl->push_back( md::create( "out_deps_copy", "set< srp< schedule_item > >" ) );
00402 mdl->push_back( md::create( "etime", "ulint" ) );
00403 mdl->push_back( md::create( "ctime", "ulint" ) );
00404 mdl->push_back( md::create( "start_time", "ulint" ) );
00405 mdl->push_back( md::create( "end_time", "ulint" ) );
00406 mdl->push_back( md::create( "latest_start_time", "ulint" ) );
00407 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00408 reflection->push_back( class_reflection::create( "schedule_item", mdl ) );
00409 }
00410 return reflection;
00411 }
00412
00413 ptr< object::field_list_list > schedule_item::field_values_get() const
00414 {
00415 ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00416 result->push_back( value_list::create() );
00417 result->back()->push_back( this->instruction );
00418 result->push_back( value_list::create() );
00419 result->back()->push_back( this->in_deps );
00420 result->push_back( value_list::create() );
00421 result->back()->push_back( this->in_deps_copy );
00422 result->push_back( value_list::create() );
00423 result->back()->push_back( this->out_deps );
00424 result->push_back( value_list::create() );
00425 result->back()->push_back( this->out_deps_copy );
00426 result->push_back( value_list::create() );
00427 result->back()->push_back( objectize< ulint > ::create( this->etime ) );
00428 result->push_back( value_list::create() );
00429 result->back()->push_back( objectize< ulint > ::create( this->ctime ) );
00430 result->push_back( value_list::create() );
00431 result->back()->push_back( objectize< ulint > ::create( this->start_time ) );
00432 result->push_back( value_list::create() );
00433 result->back()->push_back( objectize< ulint > ::create( this->end_time ) );
00434 result->push_back( value_list::create() );
00435 result->back()->push_back( objectize< ulint > ::create( this->latest_start_time ) );
00436 return result;
00437 }
00438
00439
00440
00441
00442
00443
00444 void schedule_item::gc_mark()
00445 {
00446 ::lestes::std::object::gc_mark();
00447 }
00448
00449
00450
00451
00452
00453 ptr<object::reflection_list> scheduler::reflection = reflection;
00454 ptr<object::reflection_list> schedule_item::reflection = reflection;
00455
00456 end_package(workers);
00457 end_package(backend_v2);
00458 end_package(lestes);
00459