OpenTTD: CargoList< Tinst, Tcont > Class Template Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
CargoList< Tinst, Tcont > Class Template Reference

Simple collection class for a list of cargo packets. More...

`#include <cargopacket.h>`

## Public Types
enum | MoveToAction { MTA_BEGIN = 0, MTA_TRANSFER = 0, MTA_DELIVER, MTA_KEEP, MTA_LOAD, MTA_END, NUM_MOVE_TO_ACTION = MTA_END }
| Kind of actions that could be done with packets on move. More...
typedef Tcont::iterator | Iterator
| The iterator for our container.
typedef Tcont::reverse_iterator | ReverseIterator
| The reverse iterator for our container.
typedef Tcont::const_iterator | ConstIterator
| The const iterator for our container.
typedef Tcont::const_reverse_iterator | ConstReverseIterator
| The const reverse iterator for our container.

## Public Member Functions
| CargoList ()
| Create the cargo list.
| ~CargoList ()
| Destroy the cargolist ("frees" all cargo packets).
void | OnCleanPool ()
| Empty the cargo list, but don't free the cargo packets; the cargo packets are cleaned by CargoPacket's CleanPool.
const Tcont * | Packets () const
| Returns a pointer to the cargo packet list (so you can iterate over it etc).
uint | DaysInTransit () const
| Returns average number of days in transit for a cargo entity.
void | InvalidateCache ()
| Invalidates the cached data and rebuilds it.

## Protected Member Functions
void | AddToCache (const CargoPacket *cp)
| Update the cache to reflect adding of this packet.
void | RemoveFromCache (const CargoPacket *cp, uint count)
| Update the cached values to reflect the removal of this packet or part of it.

## Static Protected Member Functions
static bool | TryMerge (CargoPacket *cp, CargoPacket *icp)
| Tries to merge the second packet into the first and return if that was successful.

## Protected Attributes
uint | count
| Cache for the number of cargo entities.
uint | cargo_days_in_transit
| Cache for the sum of number of days in transit of each entity; comparable to man-hours.
Tcont | packets
| The cargo packets in this list.

## Detailed Description

### template<class Tinst, class Tcont>
class CargoList< Tinst, Tcont >

Simple collection class for a list of cargo packets.

Template Parameters

  Tinst | Actual instantiation of this cargo list.

Definition at line 215 of file cargopacket.h.

## Member Typedef Documentation

template<class Tinst, class Tcont>

typedef Tcont::const_iterator CargoList< Tinst, Tcont >::ConstIterator

The const iterator for our container.

Definition at line 222 of file cargopacket.h.

template<class Tinst, class Tcont>

typedef Tcont::const_reverse_iterator CargoList< Tinst, Tcont >::ConstReverseIterator

The const reverse iterator for our container.

Definition at line 224 of file cargopacket.h.

template<class Tinst, class Tcont>

typedef Tcont::iterator CargoList< Tinst, Tcont >::Iterator

The iterator for our container.

Definition at line 218 of file cargopacket.h.

template<class Tinst, class Tcont>

typedef Tcont::reverse_iterator CargoList< Tinst, Tcont >::ReverseIterator

The reverse iterator for our container.

Definition at line 220 of file cargopacket.h.

## Member Enumeration Documentation

template<class Tinst, class Tcont>

enum CargoList::MoveToAction

Kind of actions that could be done with packets on move.

Enumerator:

  MTA_TRANSFER | Transfer the cargo to the station.
  MTA_DELIVER | Deliver the cargo to some town or industry.
  MTA_KEEP | Keep the cargo in the vehicle.
  MTA_LOAD | Load the cargo from the station.

Definition at line 227 of file cargopacket.h.

## Constructor & Destructor Documentation

template<class Tinst, class Tcont>

CargoList< Tinst, Tcont >::CargoList | ( |  | ) |
| inline

Create the cargo list.

Definition at line 251 of file cargopacket.h.

## Member Function Documentation

template<class Tinst , class Tcont >

void CargoList< Tinst, Tcont >::AddToCache | ( | const CargoPacket * | cp | ) |
| protected

Update the cache to reflect adding of this packet.

Increases count and days_in_transit.

Parameters

  cp | New packet to be inserted.

Reimplemented in VehicleCargoList.

Definition at line 196 of file cargopacket.cpp.

References CargoPacket::count, and CargoPacket::days_in_transit.

Referenced by StationCargoReroute::operator()().

template<class Tinst, class Tcont>

uint CargoList< Tinst, Tcont >::DaysInTransit | ( |  | ) | const
| inline

Returns average number of days in transit for a cargo entity.

Returns
  The before mentioned number.

Definition at line 270 of file cargopacket.h.

template<class Tinst , class Tcont >

void CargoList< Tinst, Tcont >::InvalidateCache | ( |  | ) |

Invalidates the cached data and rebuilds it.

Reimplemented in VehicleCargoList.

Definition at line 204 of file cargopacket.cpp.

Referenced by CargoPacket::AfterLoad(), and CheckCaches().

template<class Tinst, class Tcont>

const Tcont* CargoList< Tinst, Tcont >::Packets | ( |  | ) | const
| inline

Returns a pointer to the cargo packet list (so you can iterate over it etc).

Returns
  Pointer to the packet list.

Definition at line 261 of file cargopacket.h.

Referenced by CargoPacket::AfterLoad(), StationViewWindow::BuildCargoList(), and SwapPackets().

template<class Tinst , class Tcont >

void CargoList< Tinst, Tcont >::RemoveFromCache | ( | const CargoPacket * | cp,
|  | uint | count
| ) |  |
| protected

Update the cached values to reflect the removal of this packet or part of it.

Decreases count and days_in_transit.

Parameters

  cp | Packet to be removed from cache.
  count | Amount of cargo from the given packet to be removed.

Reimplemented in VehicleCargoList.

Definition at line 183 of file cargopacket.cpp.

References CargoPacket::days_in_transit.

Referenced by CargoLoad::operator()(), CargoReservation::operator()(), and StationCargoReroute::operator()().

template<class Tinst , class Tcont >

bool CargoList< Tinst, Tcont >::TryMerge | ( | CargoPacket * | icp,
|  | CargoPacket * | cp
| ) |  |
| staticprotected

Tries to merge the second packet into the first and return if that was successful.

Parameters

  icp | Packet to be merged into.
  cp | Packet to be eliminated.

Returns
  If the packets could be merged.

Definition at line 222 of file cargopacket.cpp.

References CargoPacket::count, CargoPacket::MAX_COUNT, and CargoPacket::Merge().

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

- src/cargopacket.h
- src/cargopacket.cpp