Class MessageBruteForce::In

Nested Relationships

This class is a nested type of Class MessageBruteForce.

Nested Types

Class Documentation

class In

This class is accessible via DeviceAPI.message_in if MessageBruteForce is specified in FLAMEGPU_AGENT_FUNCTION It gives access to functionality for reading brute force messages

Public Functions

__device__ inline In(const void *metadata)

Constructor Initialises member variables

Parameters:

metadata – Reinterpreted as type MessageBruteForce::MetaData to extract length

__device__ inline size_type size(void) const

Returns the number of elements in the message list.

__device__ inline iterator begin(void) const

Returns an iterator to the start of the message list

__device__ inline iterator end(void) const

Returns an iterator to the position beyond the end of the message list

class iterator

Stock iterator for iterating MessageBruteForce::In::Message objects

Public Functions

__device__ inline iterator(const In &parent, size_type index)

Constructor This iterator is constructed by MessageBruteForce::begin()

See also

MessageBruteForce::begin()

__device__ inline iterator &operator++()

Moves to the next message

__device__ inline bool operator==(const iterator &rhs) const

Equality operator Compares message

__device__ inline bool operator!=(const iterator &rhs) const

Inequality operator Compares message

__device__ inline Message &operator*()

Dereferences the iterator to return the message object, for accessing variables

class Message

Provides access to a specific message Returned by the iterator

See also

In::iterator

Public Functions

__device__ inline Message(const MessageBruteForce::In &parent)

Constructs a message and directly initialises all of it’s member variables index is always init to 0

Note

See member variable documentation for their purposes

__device__ inline Message(const MessageBruteForce::In &parent, size_type index)

Alternate constructor, allows index to be manually set

Note

I think this is unused

__host__ __device__ inline bool operator==(const Message &rhs) const

Equality operator Compares all internal member vars for equality

Note

Does not compare _parent

__host__ __device__ inline bool operator!=(const Message &rhs) const

Inequality operator Returns inverse of equality operator

See also

operator==(const Message&)

__host__ __device__ inline Message &operator++()

Updates the message to return variables from the next message in the message list

Returns:

Returns itself

__host__ __device__ inline size_type getIndex() const

Returns the index of the message within the full message list

template<typename T, unsigned int N>
__device__ T getVariable(const char (&variable_name)[N]) const

Returns the value for the current message attached to the named variable

Parameters:

variable_name – Name of the variable

Template Parameters:
  • T – type of the variable

  • N – Length of variable name (this should be implicit if a string literal is passed to variable name)

Throws:
  • exception::DeviceError – If name is not a valid variable within the agent (flamegpu must be built with FLAMEGPU_SEATBELTS enabled for device error checking)

  • exception::DeviceError – If T is not the type of variable ‘name’ within the agent (flamegpu must be built with FLAMEGPU_SEATBELTS enabled for device error checking)

Returns:

The specified variable, else 0x0 if an error occurs

template<typename T, flamegpu::size_type N, unsigned int M>
__device__ T getVariable(const char (&variable_name)[M], unsigned int index) const

Returns the specified variable array element from the current message attached to the named variable

Parameters:
  • variable_name – name used for accessing the variable, this value should be a string literal e.g. “foobar”

  • index – Index of the element within the variable array to return

Template Parameters:
  • T – Type of the message variable being accessed

  • N – The length of the array variable, as set within the model description hierarchy

  • M – Length of variable_name, this should always be implicit if passing a string literal

Throws:
  • exception::DeviceError – If name is not a valid variable within the agent (flamegpu must be built with FLAMEGPU_SEATBELTS enabled for device error checking)

  • exception::DeviceError – If T is not the type of variable ‘name’ within the message (flamegpu must be built with FLAMEGPU_SEATBELTS enabled for device error checking)

  • exception::DeviceError – If index is out of bounds for the variable array specified by name (flamegpu must be built with FLAMEGPU_SEATBELTS enabled for device error checking)