aether Namespace Reference

Namespaces

 collision
 
 colour
 
 compatibility
 
 compression
 
 container
 
 ecs
 
 feature_flags
 
 geometry
 
 hash
 
 internal
 
 io
 
 message
 
 morton
 
 mpl
 
 netcode
 
 physx
 
 protocol
 
 random
 
 replication
 
 rigidbody
 
 serde
 
 tcp
 
 timer
 

Classes

struct  arguments
 The arguments passed to AetherEngine on startup. More...
 
class  aws_bucket
 makes a connection to aws to retrieve objects from an s3 bucket the sercurity is configure using the following environemt variables: More...
 
class  blob
 manages a memory area and provides access to it via an aether::container::span More...
 
class  blob_store
 blob_store is used to fetch a blob object asynchronously from a server. More...
 
class  cell_state
 This is the state of the worker as it pertains to the manager. More...
 
class  closure
 
class  closure< R(Args...)>
 
struct  default_aabb
 Default formula for calculating Axis Aligned Bounding Box for the given agent. More...
 
struct  default_agent_center
 Default formula for calculating the center of the given agent. More...
 
class  default_handover
 
struct  default_sim_state
 This is the default implementation of cell state without using the ecs. More...
 
struct  dimension_traits
 Traits for D-Dimentional morton codes. More...
 
struct  dimension_traits< 2 >
 2-Dimentional morton code traits More...
 
struct  dimension_traits< 3 >
 3-Dimentional morton code traits More...
 
class  entity_based_user_state
 The class defines an interface that should be implemented in order to build an entity based simulation. More...
 
class  entity_based_user_state_adapter
 
class  entity_based_user_state_base
 The class makes it simpler to create a simulation by providing default implementations for many functions required by the entity_based_user_state interface. More...
 
class  external_storage_base
 Base class for implementing write access to external storage, used by aether::entity_based_user_state::build_external_storage and aether::global_state_base::build_external_storage. More...
 
class  external_storage_iface
 The interface for implementing write access to extenal storage, used by aether::entity_based_user_state::build_external_storage and aether::global_state_base::build_external_storage. More...
 
class  global_state_base
 A base type for a global state process implementation. More...
 
class  http_store
 makes an anonymous connection to an http or https server to retrieve a blob. More...
 
struct  machine_id
 
struct  monostate
 
struct  muxer_machine
 
struct  muxers_config
 
class  null_external_storage
 An empty external storage implementation, used when no external storage is configured. More...
 
class  octree
 The main class of the Aether engine which manages all the processes. More...
 
class  octree_impl
 
struct  octree_params_default
 Describes parameters for aether::octree. More...
 
struct  octree_traits
 
class  process_allocation
 Describes how many worker processes are supported by each machine and how many are free. More...
 
class  region
 Represents a region in space using discretized coordinates. More...
 
class  run_id
 
class  semaphore_guard
 The class semaphore_guard is a posix semaphore wrapper that provides a RAII-style mechanism for owning a semaphore for the duration of a scoped block. More...
 
class  statistics
 
class  storage_state
 State of the simulation as seen from external_storage_iface implementation. More...
 
class  user_cell_state_interface
 
struct  worker_id
 Represents a worker id, used to identify the different processes. More...
 

Functions

void argument_parse (int argc, char **argv, arguments *arguments)
 Updates the arguments struct with values read from the manager's command line. More...
 
template<typename UserState , typename... Args>
auto build_entity_simulation_manager (const size_t num_workers, const octree_params_default< typename UserState::octree_traits > &params_, Args &&...args) -> octree< octree_params_default< typename UserState::octree_traits >>
 This is a convenience function used to build an object that can be used to manage a simulation. More...
 
std::ostream & operator<< (std::ostream &os, const worker_id &rhs)
 
machine_id to_machine_id (const hadean::pid_type &p)
 
uint8_t float_to_u8 (float v)
 
float u8_to_float (uint8_t v)
 
uint32_t net_encode_color (const aether::colour::rgb &c)
 
struct aether::colour::rgb net_decode_color (uint32_t c)
 
 HADEAN_PACK (struct net_quat{float x, y, z, w;})
 
std::ostream & operator<< (std::ostream &os, struct net_quat const &q)
 
template<typename R >
int read_exact (R &reader, void *_data, size_t count)
 
template<typename W >
int write_all (W &writer, const void *data, size_t count)
 
template<>
int write_all (container::ring_buffer< char > &buffer, const void *data, size_t count)
 

Variables

static const int TCP_SOCKET_ERROR = -1
 

Function Documentation

void aether::argument_parse ( int  argc,
char **  argv,
arguments arguments 
)

Updates the arguments struct with values read from the manager's command line.

template<typename UserState , typename... Args>
auto aether::build_entity_simulation_manager ( const size_t  num_workers,
const octree_params_default< typename UserState::octree_traits > &  params_,
Args &&...  args 
) -> octree<octree_params_default<typename UserState::octree_traits>>

This is a convenience function used to build an object that can be used to manage a simulation.

When called, this function must be parameterised by the type used to hold per-cell simulation state. This type must extend the interface entity_based_user_state. Users may prefer to extent entity_based_user_state_base instead as this provides default implementations for many functions.

Parameters
num_workersThe number of workers that will be initially spawned to run the simulation.
params_A configuration parameter that can be used to set values such as which Aether features are enabled and load balancing levels.
argsMultiple additional arguments may be passed here. These arguments will be forwarded to the constructor of the type specified by UserState. These arguments must be capable of being serialized by Aether's serialization framework. Note that the first argument supplied to the constuctor of UserState will be an instance of cell_state, followed by the forwarded arguments.
uint8_t aether::float_to_u8 ( float  v)
inline
aether::HADEAN_PACK ( struct net_quat{float x, y, z, w;}  )
struct aether::colour::rgb aether::net_decode_color ( uint32_t  c)
uint32_t aether::net_encode_color ( const aether::colour::rgb c)
inline
std::ostream& aether::operator<< ( std::ostream &  os,
struct net_quat const &  q 
)
inline
std::ostream& aether::operator<< ( std::ostream &  os,
const worker_id rhs 
)
template<typename R >
int aether::read_exact ( R &  reader,
void *  _data,
size_t  count 
)
machine_id aether::to_machine_id ( const hadean::pid_type &  p)
inline
float aether::u8_to_float ( uint8_t  v)
inline
template<typename W >
int aether::write_all ( W &  writer,
const void *  data,
size_t  count 
)
template<>
int aether::write_all ( container::ring_buffer< char > &  buffer,
const void *  data,
size_t  count 
)

Variable Documentation

const int aether::TCP_SOCKET_ERROR = -1
static