Class free_block_pickup

Nested Relationships

Nested Types

Inheritance Relationships

Base Types

  • public rer::client< free_block_pickup >

  • public cds::operations::cell2D_op

Class Documentation

class free_block_pickup : public rer::client<free_block_pickup>, public cds::operations::cell2D_op

Fired whenever a robot picks up a free block in the arena (i.e. one that is not part of a cache), OR when a block moves within the arena.

Public Types

using visit_typelist = visit_typelist_impl::value

Public Functions

free_block_pickup(const free_block_pickup&) = delete
~free_block_pickup(void) override = default
free_block_pickup &operator=(const free_block_pickup&) = delete
void visit(base_arena_map &map)

Perform actual block pickup in the arena.

Takes arena map grid mutex to protect grid updates. arena map block mutex assumed to be held when calling this function.

Public Static Functions

static free_block_pickup by_arena(crepr::sim_block3D *block)
static free_block_pickup by_robot(crepr::sim_block3D *block, const rtypes::type_uuid &robot_id, const rtypes::timestep &t, const locking &locking)