![]()  | 
  
    MySQL 9.5.0
    
   Source Code Documentation 
   | 
 
Action that changes the GCS protocol version in use by the group. More...
#include <communication_protocol_action.h>
Public Member Functions | |
| Communication_protocol_action () | |
| Communication_protocol_action (Gcs_protocol_version gcs_protocol) | |
| ~Communication_protocol_action () final | |
| void | get_action_message (Group_action_message **message) final | 
| Get the message with parameters to this action.  More... | |
| int | process_action_message (Group_action_message &message, const std::string &message_origin) final | 
| enum_action_execution_result | execute_action (bool invoking_member, Plugin_stage_monitor_handler *stage_handler, Notification_context *) final | 
| Execute the action.  More... | |
| bool | stop_action_execution (bool killed) final | 
| Group_action_diagnostics * | get_execution_info () final | 
| Gets the info about execution, be it success or failure.  More... | |
  Public Member Functions inherited from Group_action | |
| virtual | ~Group_action ()=0 | 
| virtual PSI_stage_key | get_action_stage_termination_key () | 
| For this action, what is the PSI key for the last stage when the action is terminating.  More... | |
Private Member Functions | |
| int | set_consensus_leaders () const | 
Private Attributes | |
| Group_action_diagnostics | m_diagnostics | 
| Stores textual information about the action's execution.  More... | |
| Gcs_protocol_version | m_gcs_protocol | 
| The GCS protocol to change to.  More... | |
| std::future< void > | m_protocol_change_done | 
| Future on which to wait for the protocol change to finish in the local node.  More... | |
Additional Inherited Members | |
  Public Types inherited from Group_action | |
| enum | enum_action_execution_result {  GROUP_ACTION_RESULT_TERMINATED = 0 , GROUP_ACTION_RESULT_ERROR = 1 , GROUP_ACTION_RESULT_RESTART = 2 , GROUP_ACTION_RESULT_ABORTED = 3 , GROUP_ACTION_RESULT_KILLED = 4 , GROUP_ACTION_RESULT_END = 5 }  | 
| Enum for the end results of a action execution.  More... | |
Action that changes the GCS protocol version in use by the group.
Note that this action's logic is actually done in process_action_message instead of execute_action. This is because process_action_message is executed in the same logical instant on all group members (in the GCS thread) while execute_action is executed nondeterministically on its own thread.
| Communication_protocol_action::Communication_protocol_action | ( | ) | 
      
  | 
  explicit | 
      
  | 
  finaldefault | 
      
  | 
  finalvirtual | 
Execute the action.
| invoking_member | is the member that invoked it | 
| stage_handler | the stage handler to report progress | 
Implements Group_action.
      
  | 
  finalvirtual | 
Get the message with parameters to this action.
| [out] | message | the message to start the action | 
Implements Group_action.
      
  | 
  finalvirtual | 
Gets the info about execution, be it success or failure.
Implements Group_action.
      
  | 
  finalvirtual | 
Implements Group_action.
      
  | 
  private | 
      
  | 
  finalvirtual | 
Implements Group_action.
      
  | 
  private | 
Stores textual information about the action's execution.
      
  | 
  private | 
The GCS protocol to change to.
      
  | 
  private | 
Future on which to wait for the protocol change to finish in the local node.