Public Member Functions | Private Member Functions | Private Attributes

# CargoDataEntry Class Reference

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.

## Detailed Description

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 853 of file station_gui.cpp.

## Member Function Documentation

CargoDataEntry* CargoDataEntry::InsertOrRetrieve | ( | CargoID | cargo | ) | `[inline]`

Insert a new child or retrieve an existing child using a cargo ID as ID.

Parameters:

  | cargo | ID of the cargo for which an entry shall be created or retrieved

Returns:
  a child entry associated with the given cargo.

Definition at line 873 of file station_gui.cpp.

CargoDataEntry* CargoDataEntry::InsertOrRetrieve | ( | StationID | station | ) | `[inline]`

Insert a new child or retrieve an existing child using a station ID as ID.

Parameters:

  | station | ID of the station for which an entry shall be created or retrieved

Returns:
  a child entry associated with the given station.

Definition at line 863 of file station_gui.cpp.

Referenced by StationViewWindow::EstimateDestinations(), StationViewWindow::HandleCargoWaitingClick(), StationViewWindow::RecalcDestinations(), and StationViewWindow::ShowCargo().

template<class Tid >

CargoDataEntry * CargoDataEntry::InsertOrRetrieve | ( | Tid | child_id | ) | `[private]`

Retrieve a subentry or insert it if it doesn't exist, yet.

Template Parameters:

  | ID | type of ID: either StationID or CargoID

Parameters:

  | child_id | ID of the child to be inserted or retrieved.

Returns:
  the new or retrieved subentry

Definition at line 1083 of file station_gui.cpp.

References children, and IncrementSize().

void CargoDataEntry::Remove | ( | CargoDataEntry * | child | ) | `[private]`

Remove a subentry from this one and delete it.

Parameters:

  | 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 1067 of file station_gui.cpp.

References children.

void CargoDataEntry::Remove | ( | StationID | station | ) | `[inline]`

Remove a child associated with the given station.

Parameters:

  | station | ID of the station for which the child should be removed.

Definition at line 884 of file station_gui.cpp.

Referenced by StationViewWindow::HandleCargoWaitingClick(), StationViewWindow::OnInvalidateData(), and Remove().

void CargoDataEntry::Remove | ( | CargoID | cargo | ) | `[inline]`

Remove a child associated with the given cargo.

Parameters:

  | cargo | ID of the cargo for which the child should be removed.

Definition at line 894 of file station_gui.cpp.

References Remove().

CargoDataEntry* CargoDataEntry::Retrieve | ( | CargoID | cargo | ) | const`[inline]`

Retrieve a child for the given cargo.

Return NULL if it doesn't exist.

Parameters:

  | cargo | ID of the cargo the child we're looking for is associated with.

Returns:
  a child entry for the given cargo or NULL.

Definition at line 916 of file station_gui.cpp.

References children, and Retrieve().

CargoDataEntry* CargoDataEntry::Retrieve | ( | StationID | station | ) | const`[inline]`

Retrieve a child for the given station.

Return NULL if it doesn't exist.

Parameters:

  | station | ID of the station the child we're looking for is associated with.

Returns:
  a child entry for the given station or NULL.

Definition at line 905 of file station_gui.cpp.

References children.

Referenced by StationViewWindow::BuildCargoList(), StationViewWindow::BuildFlowList(), StationViewWindow::HandleCargoWaitingClick(), Retrieve(), StationViewWindow::SetDisplayedRow(), and StationViewWindow::ShowCargo().

void CargoDataEntry::Update | ( | uint | count | ) |

Update the count for this entry and propagate the change to the parent entry if there is one.

Parameters:

  | count | the amount to be added to this entry

Definition at line 1102 of file station_gui.cpp.

References parent, and Update().

Referenced by StationViewWindow::EstimateDestinations(), StationViewWindow::RecalcDestinations(), StationViewWindow::ShowCargo(), and Update().

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

- src/station_gui.cpp