| OpenTTD
    | 
A cargo data entry representing one possible row in the station view window's top part. More...
| Public Member Functions | |
| CargoDataEntry * | InsertOrRetrieve (StationID station) | 
| Insert a new child or retrieve an existing child using a station ID as ID. | |
| CargoDataEntry * | InsertOrRetrieve (CargoID cargo) | 
| Insert a new child or retrieve an existing child using a cargo ID as ID. | |
| void | Update (uint count) | 
| Update the count for this entry and propagate the change to the parent entry if there is one. | |
| void | Remove (StationID station) | 
| Remove a child associated with the given station. | |
| void | Remove (CargoID cargo) | 
| Remove a child associated with the given cargo. | |
| CargoDataEntry * | Retrieve (StationID station) const | 
| Retrieve a child for the given station. | |
| CargoDataEntry * | Retrieve (CargoID cargo) const | 
| Retrieve a child for the given cargo. | |
| void | Resort (CargoSortType type, SortOrder order) | 
| StationID | GetStation () const | 
| Get the station ID for this entry. | |
| CargoID | GetCargo () const | 
| Get the cargo ID for this entry. | |
| uint | GetCount () const | 
| Get the cargo count for this entry. | |
| CargoDataEntry * | GetParent () const | 
| Get the parent entry for this entry. | |
| uint | GetNumChildren () const | 
| Get the number of children for this entry. | |
| CargoDataSet::iterator | Begin () const | 
| Get an iterator pointing to the begin of the set of children. | |
| CargoDataSet::iterator | End () const | 
| Get an iterator pointing to the end of the set of children. | |
| bool | HasTransfers () const | 
| Has this entry transfers. | |
| void | SetTransfers (bool value) | 
| Set the transfers state. | |
| void | Clear () | 
| Delete all subentries, reset count and num_children and adapt parent's count. | |
| Private Member Functions | |
| CargoDataEntry (StationID st, uint c, CargoDataEntry *p) | |
| CargoDataEntry (CargoID car, uint c, CargoDataEntry *p) | |
| CargoDataEntry (StationID st) | |
| CargoDataEntry (CargoID car) | |
| CargoDataEntry * | Retrieve (CargoDataSet::iterator i) const | 
| template<class Tid > | |
| CargoDataEntry * | InsertOrRetrieve (Tid s) | 
| Retrieve a subentry or insert it if it doesn't exist, yet. | |
| void | Remove (CargoDataEntry *comp) | 
| Remove a subentry from this one and delete it. | |
| void | IncrementSize () | 
| Increment. | |
| Private Attributes | |
| CargoDataEntry * | parent | 
| the parent of this entry. | |
| union { | |
| StationID station | |
| ID of the station this entry is associated with. | |
| struct { | |
| CargoID cargo | |
| ID of the cargo this entry is associated with. | |
| bool transfers | |
| If there are transfers for this cargo. | |
| } | |
| }; | |
| uint | num_children | 
| the number of subentries belonging to this entry. | |
| uint | count | 
| sum of counts of all children or amount of cargo for this entry. | |
| CargoDataSet * | children | 
| the children of this entry. | |
A cargo data entry representing one possible row in the station view window's top part.
Cargo data entries form a tree where each entry can have several children. Parents keep track of the sums of their childrens' cargo counts.
Definition at line 860 of file station_gui.cpp.
| 
 | inline | 
Insert a new child or retrieve an existing child using a station ID as ID.
| station | ID of the station for which an entry shall be created or retrieved | 
Definition at line 870 of file station_gui.cpp.
References station.
Referenced by StationViewWindow::EstimateDestinations(), StationViewWindow::HandleCargoWaitingClick(), StationViewWindow::RecalcDestinations(), and StationViewWindow::ShowCargo().
| 
 | inline | 
Insert a new child or retrieve an existing child using a cargo ID as ID.
| cargo | ID of the cargo for which an entry shall be created or retrieved | 
Definition at line 880 of file station_gui.cpp.
References cargo.
| 
 | private | 
Retrieve a subentry or insert it if it doesn't exist, yet.
| ID | type of ID: either StationID or CargoID | 
| child_id | ID of the child to be inserted or retrieved. | 
Definition at line 1090 of file station_gui.cpp.
References children, IncrementSize(), and ST_COUNT.
| 
 | inline | 
Remove a child associated with the given station.
| station | ID of the station for which the child should be removed. | 
Definition at line 891 of file station_gui.cpp.
Referenced by StationViewWindow::HandleCargoWaitingClick(), StationViewWindow::OnInvalidateData(), and Remove().
| 
 | inline | 
Remove a child associated with the given cargo.
| cargo | ID of the cargo for which the child should be removed. | 
Definition at line 901 of file station_gui.cpp.
References Remove().
| 
 | private | 
Remove a subentry from this one and delete it.
| child | the entry to be removed. This may also be a synthetic entry which only contains the ID of the entry to be removed. In this case child is not deleted. | 
Definition at line 1074 of file station_gui.cpp.
References children.
| 
 | inline | 
Retrieve a child for the given station.
Return NULL if it doesn't exist.
| station | ID of the station the child we're looking for is associated with. | 
Definition at line 912 of file station_gui.cpp.
References children.
Referenced by StationViewWindow::BuildCargoList(), StationViewWindow::BuildFlowList(), StationViewWindow::HandleCargoWaitingClick(), Retrieve(), StationViewWindow::SetDisplayedRow(), and StationViewWindow::ShowCargo().
| 
 | inline | 
Retrieve a child for the given cargo.
Return NULL if it doesn't exist.
| cargo | ID of the cargo the child we're looking for is associated with. | 
Definition at line 923 of file station_gui.cpp.
References children, and Retrieve().
| void CargoDataEntry::Update | ( | uint | count | ) | 
Update the count for this entry and propagate the change to the parent entry if there is one.
| count | the amount to be added to this entry | 
Definition at line 1109 of file station_gui.cpp.
References count, parent, and Update().
Referenced by StationViewWindow::EstimateDestinations(), StationViewWindow::RecalcDestinations(), StationViewWindow::ShowCargo(), and Update().
 1.8.1.2
 1.8.1.2