Files
@ r27383:44f4e925c6f0
Branch filter:
Location: cpp/openttd-patchpack/source/src/linkgraph/demands.h - annotation
r27383:44f4e925c6f0
1.1 KiB
text/x-c
Codechange: Swap SocketList map key/value around.
This map is used store socket and address together, and, other than
checking that the address does not already have a socket, the data layout
does not seem particularly important.
However, as address is the key, technically it should not be modified,
and address may self-modify itself during comparisons.
This map is used store socket and address together, and, other than
checking that the address does not already have a socket, the data layout
does not seem particularly important.
However, as address is the key, technically it should not be modified,
and address may self-modify itself during comparisons.
r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r23838:bfeaabaa7b1d r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r23023:7b8669afd1db r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f r27372:06d384d76bd2 r20342:25da7cb85f9f r20342:25da7cb85f9f r20342:25da7cb85f9f | /** @file demands.h Declaration of demand calculating link graph handler. */
#ifndef DEMANDS_H
#define DEMANDS_H
#include "linkgraphjob_base.h"
/**
* Calculate the demands. This class has a state, but is recreated for each
* call to of DemandHandler::Run.
*/
class DemandCalculator {
public:
DemandCalculator(LinkGraphJob &job);
private:
int32 max_distance; ///< Maximum distance possible on the map.
int32 mod_dist; ///< Distance modifier, determines how much demands decrease with distance.
int32 accuracy; ///< Accuracy of the calculation.
template<class Tscaler>
void CalcDemand(LinkGraphJob &job, Tscaler scaler);
};
/**
* Stateless, thread safe demand handler. Doesn't do anything but call DemandCalculator.
*/
class DemandHandler : public ComponentHandler {
public:
/**
* Call the demand calculator on the given component.
* @param job Component to calculate the demands for.
*/
virtual void Run(LinkGraphJob &job) const { DemandCalculator c(job); }
/**
* Virtual destructor has to be defined because of virtual Run().
*/
virtual ~DemandHandler() = default;
};
#endif /* DEMANDS_H */
|