uatlib
Classes | Typedefs | Variables
agent.hpp File Reference

Defines the agent class and related types. More...

#include <uat/permit.hpp>
#include <span>
#include <variant>
#include <type_safe/reference.hpp>
Include dependency graph for agent.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uat::trade_value_t
 Represents the public values in a trade of a permit. More...
 
struct  uat::permit_public_status::unavailable
 Represents the public status of a permit that is not available for trading. More...
 
struct  uat::permit_public_status::available
 Represents the public status of a permit that is available for trading. More...
 
struct  uat::permit_public_status::owned
 Represents the public status of a permit that is owned by the agent. More...
 
struct  uat::agent< R >
 Class to define the default behavior of an agent. More...
 
class  uat::any_agent
 A type-erased class that represents an agent in the simulation. More...
 

Typedefs

using uat::permit_public_status_t = std::variant< permit_public_status::unavailable, permit_public_status::available, permit_public_status::owned >
 Variant that represents the possible public status of a permit.
 
using uat::bid_fn = type_safe::function_ref< bool(region_view, uint_t, value_t)>
 Function reference that allows the agent to bid for a permit.
 
using uat::ask_fn = type_safe::function_ref< bool(region_view, uint_t, value_t)>
 Function reference that allows the agent to ask for a permit.
 
using uat::permit_public_status_fn = type_safe::function_ref< permit_public_status_t(region_view, uint_t)>
 Function reference that returns the public status of a permit.
 

Variables

template<typename T >
concept uat::agent_compatible = std::movable<T> && std::derived_from<T, agent<typename T::region_type>>
 Concept that defines the requirements for an agent.
 

Detailed Description

Defines the agent class and related types.