Data Structures | Public Types | Public Member Functions | Data Fields

ClusterHandler Struct Reference

#include <P_ClusterHandler.h>

Inherits ClusterHandlerBase.

Collaboration diagram for ClusterHandler:
Collaboration graph
[legend]

Data Structures

struct  ChannelData

Public Types

enum  {
  CLCON_INITIAL = 1, CLCON_SEND_MSG, CLCON_SEND_MSG_COMPLETE, CLCON_READ_MSG,
  CLCON_READ_MSG_COMPLETE, CLCON_VALIDATE_MSG, CLCON_CONN_BIND_CLEAR, CLCON_CONN_BIND,
  CLCON_CONN_BIND_OK, CLCON_ABORT_CONNECT, CLCON_DELETE_CONNECT
}

Public Member Functions

 ClusterHandler ()
 ~ClusterHandler ()
bool check_channel (int c)
int alloc_channel (ClusterVConnection *vc, int requested_channel=0)
void free_channel (ClusterVConnection *vc)
bool local_channel (int i)
void close_ClusterVConnection (ClusterVConnection *)
int cluster_signal_and_update (int event, ClusterVConnection *vc, ClusterVConnState *s)
int cluster_signal_and_update_locked (int event, ClusterVConnection *vc, ClusterVConnState *s)
int cluster_signal_error_and_update (ClusterVConnection *vc, ClusterVConnState *s, int lerrno)
void close_free_lock (ClusterVConnection *, ClusterVConnState *)
bool build_data_vector (char *, int, bool)
bool build_initial_vector (bool)
void add_to_byte_bank (ClusterVConnection *)
void update_channels_read ()
int process_incoming_callouts (ProxyMutex *)
void update_channels_partial_read ()
void process_set_data_msgs ()
void process_small_control_msgs ()
void process_large_control_msgs ()
void process_freespace_msgs ()
bool complete_channel_read (int, ClusterVConnection *vc)
void finish_delayed_reads ()
void update_channels_written ()
int build_write_descriptors ()
int build_freespace_descriptors ()
int build_controlmsg_descriptors ()
int add_small_controlmsg_descriptors ()
int valid_for_data_write (ClusterVConnection *vc)
int valid_for_freespace_write (ClusterVConnection *vc)
int machine_down ()
int remote_close (ClusterVConnection *vc, ClusterVConnState *ns)
void steal_thread (EThread *t)
void free_locks (bool read_flag, int i=CLUSTER_FREE_ALL_LOCKS)
bool get_read_locks ()
bool get_write_locks ()
int zombify (Event *e=NULL)
int connectClusterEvent (int event, Event *e)
int startClusterEvent (int event, Event *e)
int mainClusterEvent (int event, Event *e)
int beginClusterEvent (int event, Event *e)
int zombieClusterEvent (int event, Event *e)
int protoZombieEvent (int event, Event *e)
void vcs_push (ClusterVConnection *vc, int type)
bool vc_ok_read (ClusterVConnection *)
bool vc_ok_write (ClusterVConnection *)
int do_open_local_requests ()
void swap_descriptor_bytes ()
int process_read (ink_hrtime)
int process_write (ink_hrtime, bool)
void dump_write_msg (int)
void dump_read_msg ()
int compute_active_channels ()
void dump_internal_data ()

Data Fields

NetVConnectionnet_vc
EThreadthread
unsigned int ip
int port
char * hostname
ClusterMachinemachine
int ifd
int id
bool dead
bool downing
int32_t active
bool on_stolen_thread
int n_channels
ClusterVConnection ** channels
struct ChannelData ** channel_data
Queue< ChannelDatafree_local_channels
bool connector
int cluster_connect_state
ClusterHelloMessage clusteringVersion
ClusterHelloMessage nodeClusteringVersion
bool needByteSwap
int configLookupFails
enum ClusterHandler:: { ... }  clcon_state_t
InkAtomicList outgoing_control_al [CLUSTER_CMSG_QUEUES]
InkAtomicList external_incoming_control
InkAtomicList external_incoming_open_local
ClusterCalloutContinuationcallout_cont [MAX_COMPLETION_CALLBACK_EVENTS]
Eventcallout_events [MAX_COMPLETION_CALLBACK_EVENTS]
Eventcluster_periodic_event
Queue< OutgoingControloutgoing_control [CLUSTER_CMSG_QUEUES]
Queue< IncomingControlincoming_control
InkAtomicList read_vcs_ready
InkAtomicList write_vcs_ready
ClusterState read
ClusterState write
ink_hrtime current_time
ink_hrtime last
ink_hrtime last_report
int n_since_last_report
ink_hrtime last_cluster_op_enable
ink_hrtime last_trace_dump
DLL< ClusterVConnectionBasedelayed_reads
ClusterLoadMonitorclm
bool disable_remote_cluster_ops
int pw_write_descriptors_built
int pw_freespace_descriptors_built
int pw_controldata_descriptors_built
int pw_time_expired
bool started_on_stolen_thread
bool control_message_write

Detailed Description

Definition at line 421 of file P_ClusterHandler.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
CLCON_INITIAL 
CLCON_SEND_MSG 
CLCON_SEND_MSG_COMPLETE 
CLCON_READ_MSG 
CLCON_READ_MSG_COMPLETE 
CLCON_VALIDATE_MSG 
CLCON_CONN_BIND_CLEAR 
CLCON_CONN_BIND 
CLCON_CONN_BIND_OK 
CLCON_ABORT_CONNECT 
CLCON_DELETE_CONNECT 

Definition at line 460 of file P_ClusterHandler.h.


Constructor & Destructor Documentation

ClusterHandler::ClusterHandler (  ) 
ClusterHandler::~ClusterHandler (  ) 

Member Function Documentation

int ClusterHandler::add_small_controlmsg_descriptors (  ) 
void ClusterHandler::add_to_byte_bank ( ClusterVConnection vc  ) 
int ClusterHandler::alloc_channel ( ClusterVConnection vc,
int  requested_channel = 0 
)
int ClusterHandler::beginClusterEvent ( int  event,
Event e 
)
int ClusterHandler::build_controlmsg_descriptors (  ) 
bool ClusterHandler::build_data_vector ( char *  d,
int  len,
bool  read_flag 
)
int ClusterHandler::build_freespace_descriptors (  ) 
bool ClusterHandler::build_initial_vector ( bool  read_flag  ) 

Definition at line 412 of file ClusterHandler.cc.

References VIO::_cont, IncomingControl::alloc(), IncomingControl::alloc_data(), ClusterState::block, buffer_size_to_index(), bytes_IOBufferBlockList(), Descriptor::channel, channel_dummy_input, channel_dummy_output, channels, CL_NOTE, CL_WARN, CLUSTER_CONTROL_CHANNEL, CLUSTER_CTRL_MSGS_RECVD_STAT, CLUSTER_INCREMENT_DYN_STAT, CLUSTER_OP_DELAYED_FOR_LOCK_STAT, CLUSTER_SEND_DATA, CLUSTER_SEQUENCE_NUMBER, CLUSTER_SLOW_CTRL_MSGS_RECVD_STAT, consume_IOBufferBlockList(), ClusterMsg::control_bytes, ClusterMsg::count, ClusterControl::data, Debug, DEFAULT_MAX_BUFFER_SIZE, ClusterMsg::descriptor, ClusterState::did, Queue< C, L >::enqueue(), ClusterControl::fast_data(), free_locks(), ClusterControl::get_block(), ClusterMsg::get_block_descriptor(), ClusterMsg::get_block_header(), DLL< C, L >::head, incoming_control, ClusterVConnection::initial_data_bytes, ink_assert, ink_get_hrtime(), ink_release_assert, ClusterState::iov, ClusterVConnection::iov_map, ClusterControl::len, Descriptor::length, MAX_BUFFER_SIZE_INDEX, ClusterState::msg, VIO::mutex, MUTEX_TAKE_TRY_LOCK_FOR_SPIN, ClusterState::n_iov, new_constant_IOBufferData, new_IOBufferBlock, IOBufferBlock::next, ClusterMsg::outgoing_control, ClusterVConnection::pending_remote_fill, ClusterVConnectionBase::read, read, ClusterVConnection::read_block, READ_LOCK_SPIN_COUNT, ClusterVConnection::read_locked, IncomingControl::recognized_time, ClusterVConnection::remote_write_block, ClusterVCToken::sequence_number, Descriptor::sequence_number, ClusterMsg::state, thread, ClusterState::to_do, ClusterVConnection::token, Descriptor::type, VALID_CHANNEL, vc_ok_read(), vc_ok_write(), ClusterVConnState::vio, write, ClusterVConnection::write_bytes_in_transit, ClusterVConnection::write_list, ClusterVConnection::write_list_bytes, ClusterVConnection::write_list_tail, and ClusterVConnection::write_locked.

Referenced by process_read(), and process_write().

int ClusterHandler::build_write_descriptors (  ) 
bool ClusterHandler::check_channel ( int  c  ) 
void ClusterHandler::close_ClusterVConnection ( ClusterVConnection vc  ) 

Definition at line 280 of file ClusterHandler.cc.

References ClusterVConnectionBase::active_timeout, ClusterVConnection::byte_bank_q, ByteBankDescriptor::ByteBankDescriptor_free(), Action::cancel(), ClusterVConnection::ch, CloseMessage::channel, ClusterVConnection::channel, CloseMessage::CLOSE_CHAN_MESSAGE_VERSION, CLOSE_CHANNEL_CLUSTER_FUNCTION, ClusterVConnectionBase::closed, CLUSTER_CON_TOTAL_TIME_STAT, CLUSTER_CONNECTIONS_OPEN_STAT, CLUSTER_DECREMENT_DYN_STAT, CLUSTER_LOCAL_CONNECTION_TIME_STAT, CLUSTER_REMOTE_CONNECTION_TIME_STAT, CLUSTER_SUM_DYN_STAT, clusterProcessor, ClusterVC_remove_read(), ClusterVC_remove_write(), clusterVCAllocator_free(), delayed_reads, Queue< C, L >::dequeue(), FORCE_CLOSE_ON_OPEN_CHANNEL, free_channel(), ClusterVConnection::have_all_data, DLL< C, L >::head, ClusterVConnectionBase::inactivity_timeout, ink_assert, ink_get_hrtime(), ink_release_assert, ClusterProcessor::invoke_remote(), VConnection::lerrno, CloseMessage::lerrno, local_channel(), machine, ClusterMachine::msg_proto_major, VIO::mutex, CloseMessage::protoToVersion(), ClusterVConnState::queue, ClusterVConnectionBase::read, ClusterVConnection::read_block, ClusterVConnection::read_locked, ClusterVConnection::remote_closed, DLL< C, L >::remove(), ClusterVCToken::sequence_number, CloseMessage::sequence_number, ClusterVConnection::start_time, CloseMessage::status, ClusterVConnection::token, ClusterVConnState::vio, ClusterVConnectionBase::write, ClusterVConnection::write_bytes_in_transit, ClusterVConnection::write_list, ClusterVConnection::write_list_bytes, ClusterVConnection::write_list_tail, and ClusterVConnection::write_locked.

Referenced by close_free_lock(), cluster_signal_and_update(), protoZombieEvent(), valid_for_data_write(), and valid_for_freespace_write().

void ClusterHandler::close_free_lock ( ClusterVConnection vc,
ClusterVConnState s 
)
int ClusterHandler::cluster_signal_and_update ( int  event,
ClusterVConnection vc,
ClusterVConnState s 
)
int ClusterHandler::cluster_signal_and_update_locked ( int  event,
ClusterVConnection vc,
ClusterVConnState s 
)
int ClusterHandler::cluster_signal_error_and_update ( ClusterVConnection vc,
ClusterVConnState s,
int  lerrno 
)
bool ClusterHandler::complete_channel_read ( int  len,
ClusterVConnection vc 
)
int ClusterHandler::compute_active_channels (  ) 
int ClusterHandler::connectClusterEvent ( int  event,
Event e 
)
int ClusterHandler::do_open_local_requests (  ) 
void ClusterHandler::dump_internal_data (  ) 
void ClusterHandler::dump_read_msg (  ) 
void ClusterHandler::dump_write_msg ( int  res  ) 
void ClusterHandler::finish_delayed_reads (  ) 
void ClusterHandler::free_channel ( ClusterVConnection vc  ) 
void ClusterHandler::free_locks ( bool  read_flag,
int  i = CLUSTER_FREE_ALL_LOCKS 
)
bool ClusterHandler::get_read_locks (  ) 
bool ClusterHandler::get_write_locks (  ) 
bool ClusterHandler::local_channel ( int  i  )  [inline]

Definition at line 593 of file P_ClusterHandler.h.

References connector.

Referenced by check_channel(), close_ClusterVConnection(), and free_channel().

int ClusterHandler::machine_down (  ) 
int ClusterHandler::mainClusterEvent ( int  event,
Event e 
)
void ClusterHandler::process_freespace_msgs (  ) 
int ClusterHandler::process_incoming_callouts ( ProxyMutex m  ) 
void ClusterHandler::process_large_control_msgs (  ) 
int ClusterHandler::process_read ( ink_hrtime   ) 

Definition at line 2517 of file ClusterHandler.cc.

References build_initial_vector(), ClusterState::bytes_xfered, ClusterMsg::calc_control_bytes_cksum(), ClusterMsg::calc_descriptor_cksum(), ClusterMsg::clear(), CLUSTER_INCREMENT_DYN_STAT, CLUSTER_PARTIAL_READS_STAT, CLUSTER_RDMSG_ASSEMBLE_TIME_STAT, CLUSTER_READ, CLUSTER_READ_BYTES_STAT, CLUSTER_SUM_DYN_STAT, ClusterMsg::control_bytes, ClusterMsgHeader::control_bytes, ClusterMsg::control_bytes_cksum, ClusterMsgHeader::control_bytes_cksum, ClusterMsg::count, ClusterMsgHeader::count, ClusterMsgHeader::count_check, dead, ClusterMsg::descriptor_cksum, ClusterMsgHeader::descriptor_cksum, ClusterState::did, ClusterState::doIO(), DOT_SEPARATED, dump_msgs, dump_read_msg(), free_locks(), get_read_locks(), ClusterMsg::hdr(), HRTIME_MSECONDS, ink_assert, ink_get_hrtime(), ink_release_assert, ClusterState::io_complete, ip, machine_down(), MAGIC_COUNT, ClusterState::msg, needByteSwap, Note, read, ClusterState::READ_AWAIT_DATA, ClusterState::READ_AWAIT_DESCRIPTOR, ClusterState::READ_AWAIT_HEADER, ClusterState::READ_COMPLETE, ClusterState::READ_DATA, ClusterState::READ_DESCRIPTOR, ClusterState::READ_HEADER, ClusterState::READ_POST_COMPLETE, ClusterState::READ_SETUP_DATA, ClusterState::READ_SETUP_DESCRIPTOR, ClusterState::READ_START, ClusterState::sequence_number, ClusterState::start_time, ClusterMsg::state, ClusterState::state, swap_descriptor_bytes(), ClusterMsgHeader::SwapBytes(), ClusterState::to_do, ClusterMsgHeader::unused, ClusterMsg::unused, update_channels_partial_read(), update_channels_read(), and Warning.

Referenced by mainClusterEvent().

void ClusterHandler::process_set_data_msgs (  ) 
void ClusterHandler::process_small_control_msgs (  ) 
int ClusterHandler::process_write ( ink_hrtime  now,
bool  only_write_control_msgs 
)

Definition at line 2818 of file ClusterHandler.cc.

References add_small_controlmsg_descriptors(), build_controlmsg_descriptors(), build_freespace_descriptors(), build_initial_vector(), build_write_descriptors(), ClusterState::bytes_xfered, ClusterMsg::calc_control_bytes_cksum(), ClusterMsg::calc_descriptor_cksum(), ClusterMsg::clear(), CLUSTER_BUCKETS, CLUSTER_INCREMENT_DYN_STAT, CLUSTER_MAX_RUN_TIME, CLUSTER_MAX_THREAD_STEAL_TIME, CLUSTER_PARTIAL_WRITES_STAT, CLUSTER_SUM_DYN_STAT, CLUSTER_THREAD_STEAL_EXPIRES_STAT, CLUSTER_WRITE, CLUSTER_WRITE_BYTES_STAT, CLUSTER_WRITE_LOCK_MISSES_STAT, ClusterMsg::control_bytes, ClusterMsgHeader::control_bytes, ClusterMsgHeader::control_bytes_cksum, ClusterMsg::control_bytes_cksum, control_message_write, ClusterMsg::count, ClusterMsgHeader::count, ClusterMsgHeader::count_check, ClusterHandlerBase::cur_vcs, dead, ClusterMsgHeader::descriptor_cksum, ClusterMsg::descriptor_cksum, ClusterState::doIO(), DOT_SEPARATED, MachineList::find(), free_locks(), get_write_locks(), ClusterMsg::hdr(), ink_get_hrtime(), ink_release_assert, ClusterState::io_complete, ip, ClusterState::last_time, machine_down(), MAGIC_COUNT, ClusterState::msg, Note, on_stolen_thread, port, pw_controldata_descriptors_built, pw_freespace_descriptors_built, pw_time_expired, pw_write_descriptors_built, ClusterState::sequence_number, started_on_stolen_thread, ClusterState::state, the_cluster_machines_config(), ClusterState::to_do, ClusterMsg::unused, update_channels_written(), write, ClusterState::WRITE_AWAIT_COMPLETION, ClusterState::WRITE_COMPLETE, ClusterState::WRITE_INITIATE, ClusterState::WRITE_POST_COMPLETE, ClusterState::WRITE_SETUP, and ClusterState::WRITE_START.

Referenced by mainClusterEvent().

int ClusterHandler::protoZombieEvent ( int  event,
Event e 
)
int ClusterHandler::remote_close ( ClusterVConnection vc,
ClusterVConnState ns 
)
int ClusterHandler::startClusterEvent ( int  event,
Event e 
)

Definition at line 850 of file ClusterHandlerBase.cc.

References ClusterHelloMessage::_id, ClusterHelloMessage::_major, ClusterHelloMessage::_min_major, ClusterHelloMessage::_minor, ClusterHelloMessage::AdjustByteOrder(), beginClusterEvent(), build_data_vector(), callout_cont, callout_events, CL_NOTE, CLCON_ABORT_CONNECT, CLCON_CONN_BIND, CLCON_CONN_BIND_CLEAR, CLCON_CONN_BIND_OK, CLCON_DELETE_CONNECT, CLCON_INITIAL, CLCON_READ_MSG, CLCON_READ_MSG_COMPLETE, CLCON_SEND_MSG, CLCON_SEND_MSG_COMPLETE, CLCON_VALIDATE_MSG, clm, cluster_connect_state, CLUSTER_INCREMENT_DYN_STAT, CLUSTER_NODES_STAT, CLUSTER_PERIOD, cluster_periodic_event, cluster_port, ClusterMachine::clusterHandlers, clusteringVersion, clusterProcessor, COMPLETION_CALLBACK_PERIOD, CONFIG_LOOKUP_RETRIES, configLookupFails, configuration_add_machine(), Cluster::configurations, ClusterProcessor::connect(), connector, Cluster::current_configuration(), dead, ClusterMachine::dead, Debug, ClusterState::did, ClusterState::do_iodone_event, ClusterState::doIO(), DOT_SEPARATED, UnixNetVConnection::ep, ET_CLUSTER, ET_NET, Event::ethread, EVENT_IMMEDIATE, EVENT_INTERVAL, eventProcessor, EventProcessor::eventthread, ClusterConfiguration::find(), MachineList::find(), get_NetHandler(), get_PollDescriptor(), id, NetState::in_enabled_list, ClusterLoadMonitor::init(), ink_assert, ink_number_of_processors(), ink_release_assert, ClusterState::io_complete, ClusterState::io_complete_event, ip, machine, machine_online_APIcallout(), MAX_COMPLETION_CALLBACK_EVENTS, min(), ClusterMachine::msg_proto_major, ClusterMachine::msg_proto_minor, Continuation::mutex, MUTEX_TAKE_LOCK, MUTEX_TRY_LOCK, MUTEX_UNTAKE_LOCK, EventProcessor::n_threads_for_type, ClusterHelloMessage::NativeByteOrder(), needByteSwap, net_vc, UnixNetVConnection::nh, nodeClusteringVersion, Note, ClusterMachine::now_connections, ClusterMachine::num_connections, num_of_cluster_threads, port, SLL< C, L >::push(), UnixNetVConnection::read, read, ClusterHandlerBase::read_vcs, REC_SIGNAL_MACHINE_UP, RecSignalManager(), EventProcessor::schedule_every(), EThread::schedule_every(), EThread::schedule_in(), EventProcessor::schedule_in(), SET_HANDLER, EventIO::start(), EventIO::stop(), the_cluster_config(), the_cluster_config_mutex, this_cluster(), this_ethread(), NetVConnection::thread, thread, Warning, UnixNetVConnection::write, write, and ClusterHandlerBase::write_vcs.

Referenced by ClusterHandler(), and connectClusterEvent().

void ClusterHandler::steal_thread ( EThread t  ) 
void ClusterHandler::swap_descriptor_bytes (  ) 
void ClusterHandler::update_channels_partial_read (  ) 
void ClusterHandler::update_channels_read (  ) 
void ClusterHandler::update_channels_written (  ) 
int ClusterHandler::valid_for_data_write ( ClusterVConnection vc  ) 
int ClusterHandler::valid_for_freespace_write ( ClusterVConnection vc  ) 
bool ClusterHandler::vc_ok_read ( ClusterVConnection vc  )  [inline]
bool ClusterHandler::vc_ok_write ( ClusterVConnection vc  )  [inline]
void ClusterHandler::vcs_push ( ClusterVConnection vc,
int  type 
)
int ClusterHandler::zombieClusterEvent ( int  event,
Event e 
)

Definition at line 1215 of file ClusterHandlerBase.cc.

Referenced by protoZombieEvent().

int ClusterHandler::zombify ( Event e = NULL  ) 

Field Documentation

Definition at line 437 of file P_ClusterHandler.h.

ClusterCalloutContinuation* ClusterHandler::callout_cont[MAX_COMPLETION_CALLBACK_EVENTS]

Definition at line 478 of file P_ClusterHandler.h.

Referenced by ClusterHandler(), protoZombieEvent(), and startClusterEvent().

Event* ClusterHandler::callout_events[MAX_COMPLETION_CALLBACK_EVENTS]

Definition at line 479 of file P_ClusterHandler.h.

Referenced by ClusterHandler(), protoZombieEvent(), and startClusterEvent().

Definition at line 448 of file P_ClusterHandler.h.

Referenced by alloc_channel(), check_channel(), free_channel(), and ~ClusterHandler().

Definition at line 496 of file P_ClusterHandler.h.

Referenced by mainClusterEvent(), startClusterEvent(), zombify(), and ~ClusterHandler().

Definition at line 452 of file P_ClusterHandler.h.

Referenced by startClusterEvent().

Definition at line 480 of file P_ClusterHandler.h.

Referenced by startClusterEvent(), and zombify().

Definition at line 453 of file P_ClusterHandler.h.

Referenced by startClusterEvent().

Definition at line 456 of file P_ClusterHandler.h.

Referenced by startClusterEvent().

Definition at line 505 of file P_ClusterHandler.h.

Referenced by process_write().

Definition at line 435 of file P_ClusterHandler.h.

Referenced by mainClusterEvent().

Definition at line 449 of file P_ClusterHandler.h.

Referenced by alloc_channel(), check_channel(), and free_channel().

Definition at line 432 of file P_ClusterHandler.h.

unsigned int ClusterHandler::ip

Definition at line 489 of file P_ClusterHandler.h.

Definition at line 492 of file P_ClusterHandler.h.

Referenced by mainClusterEvent().

Definition at line 490 of file P_ClusterHandler.h.

Definition at line 493 of file P_ClusterHandler.h.

Referenced by mainClusterEvent().

Definition at line 491 of file P_ClusterHandler.h.

Definition at line 454 of file P_ClusterHandler.h.

Referenced by startClusterEvent().

Definition at line 481 of file P_ClusterHandler.h.

Referenced by build_controlmsg_descriptors().

Definition at line 502 of file P_ClusterHandler.h.

Referenced by process_write(), and protoZombieEvent().

Definition at line 501 of file P_ClusterHandler.h.

Referenced by process_write(), and protoZombieEvent().

Definition at line 503 of file P_ClusterHandler.h.

Referenced by process_write().

Definition at line 500 of file P_ClusterHandler.h.

Referenced by process_write(), and protoZombieEvent().

Definition at line 483 of file P_ClusterHandler.h.

Referenced by build_freespace_descriptors(), ClusterHandler(), and vcs_push().

Definition at line 504 of file P_ClusterHandler.h.

Referenced by process_write().

Definition at line 484 of file P_ClusterHandler.h.

Referenced by build_write_descriptors(), and ClusterHandler().


The documentation for this struct was generated from the following files: