OpenTTD
|
Public Member Functions | |
void | SpawnNext () |
Start the next job in the schedule. | |
void | JoinNext () |
Join the next finished job, if available. | |
void | SpawnAll () |
Start all threads in the running list. | |
void | ShiftDates (int interval) |
Shift all dates (join dates and edge annotations) of link graphs and link graph jobs by the number of days given. | |
void | Queue (LinkGraph *lg) |
Queue a link graph for execution. | |
void | Unqueue (LinkGraph *lg) |
Remove a link graph from the execution queue. |
Static Public Member Functions | |
static void | Run (void *j) |
Run all handlers for the given Job. | |
static void | Clear () |
Clear all link graphs and jobs from the schedule. |
Static Public Attributes | |
static const uint | SPAWN_JOIN_TICK = 21 |
Tick when jobs are spawned or joined every day. | |
static LinkGraphSchedule | instance |
Static instance of LinkGraphSchedule. |
Protected Attributes | |
ComponentHandler * | handlers [6] |
Handlers to be run for each job. | |
GraphList | schedule |
Queue for new jobs. | |
JobList | running |
Currently running jobs. |
Private Types | |
typedef std::list< LinkGraph * > | GraphList |
typedef std::list< LinkGraphJob * > | JobList |
Private Member Functions | |
LinkGraphSchedule () | |
Create a link graph schedule and initialize its handlers. | |
~LinkGraphSchedule () | |
Delete a link graph schedule and its handlers. |
Friends | |
const SaveLoad * | GetLinkGraphScheduleDesc () |
Get a SaveLoad array for the link graph schedule. |
Definition at line 38 of file linkgraphschedule.h.
|
inline |
Queue a link graph for execution.
lg | Link graph to be queued. |
Definition at line 68 of file linkgraphschedule.h.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, and schedule.
Referenced by IncreaseStats(), and JoinNext().
|
static |
Run all handlers for the given Job.
This method is tailored to ThreadObject::New.
j | Pointer to a link graph job. |
Definition at line 75 of file linkgraphschedule.cpp.
References handlers, instance, lengthof, and ComponentHandler::Run().
Referenced by LinkGraphJob::SpawnThread().
void LinkGraphSchedule::ShiftDates | ( | int | interval | ) |
Shift all dates (join dates and edge annotations) of link graphs and link graph jobs by the number of days given.
interval | Number of days to be added or subtracted. |
Definition at line 111 of file linkgraphschedule.cpp.
References LinkGraph::ShiftDates(), and LinkGraphJob::ShiftJoinDate().
Referenced by ClickChangeDateCheat(), and SetStartingYear().
void LinkGraphSchedule::SpawnAll | ( | ) |
Start all threads in the running list.
This is only useful for save/load. Usually threads are started when the job is created.
Definition at line 87 of file linkgraphschedule.cpp.
References running.
Referenced by AfterLoadLinkGraphs().
|
inline |
Remove a link graph from the execution queue.
lg | Link graph to be removed. |
Definition at line 78 of file linkgraphschedule.h.
References schedule.
Referenced by IncreaseStats(), JoinNext(), and Station::~Station().
|
friend |
Get a SaveLoad array for the link graph schedule.
Definition at line 96 of file linkgraph_sl.cpp.
|
static |
Static instance of LinkGraphSchedule.
Note: This instance is created on task start. Lazy creation on first usage results in a data race between the CDist threads.
Definition at line 54 of file linkgraphschedule.h.
Referenced by AfterLoadLinkGraphs(), Clear(), ClickChangeDateCheat(), IncreaseStats(), Load_LGRS(), Ptrs_LGRS(), Run(), Save_LGRS(), SetStartingYear(), and Station::~Station().