337    Buffers 
const& buffers,
 
  343    auto const size = boost::asio::buffer_size(buffers);
 
  370    if (!handler.compressionEnabled() &&
 
  379    if (header->total_wire_size > size)
 
  381        hint = header->total_wire_size - size;
 
  387    switch (header->message_type)
 
  389        case protocol::mtMANIFESTS:
 
  390            success = detail::invoke<protocol::TMManifests>(
 
  391                *header, buffers, handler);
 
  393        case protocol::mtPING:
 
  395                detail::invoke<protocol::TMPing>(*header, buffers, handler);
 
  397        case protocol::mtCLUSTER:
 
  399                detail::invoke<protocol::TMCluster>(*header, buffers, handler);
 
  401        case protocol::mtENDPOINTS:
 
  402            success = detail::invoke<protocol::TMEndpoints>(
 
  403                *header, buffers, handler);
 
  405        case protocol::mtTRANSACTION:
 
  406            success = detail::invoke<protocol::TMTransaction>(
 
  407                *header, buffers, handler);
 
  409        case protocol::mtGET_LEDGER:
 
  410            success = detail::invoke<protocol::TMGetLedger>(
 
  411                *header, buffers, handler);
 
  413        case protocol::mtLEDGER_DATA:
 
  414            success = detail::invoke<protocol::TMLedgerData>(
 
  415                *header, buffers, handler);
 
  417        case protocol::mtPROPOSE_LEDGER:
 
  418            success = detail::invoke<protocol::TMProposeSet>(
 
  419                *header, buffers, handler);
 
  421        case protocol::mtSTATUS_CHANGE:
 
  422            success = detail::invoke<protocol::TMStatusChange>(
 
  423                *header, buffers, handler);
 
  425        case protocol::mtHAVE_SET:
 
  426            success = detail::invoke<protocol::TMHaveTransactionSet>(
 
  427                *header, buffers, handler);
 
  429        case protocol::mtVALIDATION:
 
  430            success = detail::invoke<protocol::TMValidation>(
 
  431                *header, buffers, handler);
 
  433        case protocol::mtVALIDATORLIST:
 
  434            success = detail::invoke<protocol::TMValidatorList>(
 
  435                *header, buffers, handler);
 
  437        case protocol::mtVALIDATORLISTCOLLECTION:
 
  438            success = detail::invoke<protocol::TMValidatorListCollection>(
 
  439                *header, buffers, handler);
 
  441        case protocol::mtGET_OBJECTS:
 
  442            success = detail::invoke<protocol::TMGetObjectByHash>(
 
  443                *header, buffers, handler);
 
  445        case protocol::mtHAVE_TRANSACTIONS:
 
  446            success = detail::invoke<protocol::TMHaveTransactions>(
 
  447                *header, buffers, handler);
 
  449        case protocol::mtTRANSACTIONS:
 
  450            success = detail::invoke<protocol::TMTransactions>(
 
  451                *header, buffers, handler);
 
  453        case protocol::mtSQUELCH:
 
  455                detail::invoke<protocol::TMSquelch>(*header, buffers, handler);
 
  457        case protocol::mtPROOF_PATH_REQ:
 
  458            success = detail::invoke<protocol::TMProofPathRequest>(
 
  459                *header, buffers, handler);
 
  461        case protocol::mtPROOF_PATH_RESPONSE:
 
  462            success = detail::invoke<protocol::TMProofPathResponse>(
 
  463                *header, buffers, handler);
 
  465        case protocol::mtREPLAY_DELTA_REQ:
 
  466            success = detail::invoke<protocol::TMReplayDeltaRequest>(
 
  467                *header, buffers, handler);
 
  469        case protocol::mtREPLAY_DELTA_RESPONSE:
 
  470            success = detail::invoke<protocol::TMReplayDeltaResponse>(
 
  471                *header, buffers, handler);
 
  474            handler.onMessageUnknown(header->message_type);
 
  479    result.
first = header->total_wire_size;