236 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			236 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**
 | 
						|
 * Copyright (c) 2021 OceanBase
 | 
						|
 * OceanBase CE is licensed under Mulan PubL v2.
 | 
						|
 * You can use this software according to the terms and conditions of the Mulan PubL v2.
 | 
						|
 * You may obtain a copy of Mulan PubL v2 at:
 | 
						|
 *          http://license.coscl.org.cn/MulanPubL-2.0
 | 
						|
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 | 
						|
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 | 
						|
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 | 
						|
 * See the Mulan PubL v2 for more details.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef OCEANBASE_CLOG_MOCK_OB_LOG_STATE_MGR_H_
 | 
						|
#define OCEANBASE_CLOG_MOCK_OB_LOG_STATE_MGR_H_
 | 
						|
#include "clog/ob_log_state_mgr.h"
 | 
						|
 | 
						|
namespace oceanbase {
 | 
						|
namespace election {
 | 
						|
class ObIElectionMgr;
 | 
						|
}
 | 
						|
namespace share {
 | 
						|
class ObIPSCb;
 | 
						|
}
 | 
						|
 | 
						|
namespace clog {
 | 
						|
class ObILogSWForStateMgr;
 | 
						|
class ObILogReconfirm;
 | 
						|
class ObILogEngine;
 | 
						|
class ObILogMembershipMgr;
 | 
						|
class ObILogReplayEngineWrapper;
 | 
						|
class ObILogCallbackEngine;
 | 
						|
class ObILogAllocator;
 | 
						|
 | 
						|
class MockObLogStateMgr : public ObLogStateMgr {
 | 
						|
public:
 | 
						|
  MockObLogStateMgr()
 | 
						|
  {}
 | 
						|
  ~MockObLogStateMgr()
 | 
						|
  {
 | 
						|
    destroy();
 | 
						|
  }
 | 
						|
 | 
						|
public:
 | 
						|
  int init(ObILogSWForStateMgr* sw, ObILogReconfirm* reconfirm, ObILogEngine* log_engine, ObILogMembershipMgr* mm,
 | 
						|
      election::ObIElectionMgr* election_mgr, ObILogReplayEngineWrapper* replay_engine, share::ObIPSCb* ps_cb,
 | 
						|
      ObILogAllocator* alloc_mgr, const common::ObAddr& self, const common::ObProposalID& proposal_id,
 | 
						|
      const common::ObVersion& freeze_version, const common::ObPartitionKey& partition_key)
 | 
						|
  {
 | 
						|
    UNUSED(sw);
 | 
						|
    UNUSED(reconfirm);
 | 
						|
    UNUSED(log_engine);
 | 
						|
    UNUSED(mm);
 | 
						|
    UNUSED(election_mgr);
 | 
						|
    UNUSED(replay_engine);
 | 
						|
    UNUSED(ps_cb);
 | 
						|
    UNUSED(alloc_mgr);
 | 
						|
    UNUSED(self);
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    UNUSED(freeze_version);
 | 
						|
    UNUSED(partition_key);
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  bool can_submit_log() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_append_disk_log() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_majority_cb(const common::ObProposalID& proposal_id) const
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_receive_log_ack(const common::ObProposalID& proposal_id) const
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_send_log_ack(const common::ObProposalID& proposal_id) const
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_receive_max_log_id(const common::ObProposalID& proposal_id) const
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_get_log() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_get_log(const common::ObProposalID& proposal_id) const
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_receive_log(const common::ObProposalID& proposal_id, const common::ObProposalID& proposal_id_in_log) const
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    UNUSED(proposal_id_in_log);
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_change_member() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_get_base_storage_info() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_change_leader() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_get_leader_curr_member_list() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_handle_prepare_rqst(const common::ObProposalID& proposal_id) const
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_slide_sw() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool can_receive_confirmed_info() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool need_quicker_polling() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
 | 
						|
  common::ObProposalID get_proposal_id() const
 | 
						|
  {
 | 
						|
    common::ObProposalID proposal_id;
 | 
						|
    return proposal_id;
 | 
						|
  }
 | 
						|
  int switch_state()
 | 
						|
  {
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  bool is_state_changed()
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  int set_scan_disk_log_finished()
 | 
						|
  {
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  ObLogState get_state() const
 | 
						|
  {
 | 
						|
    ObLogState state = UNKNOWN;
 | 
						|
    return state;
 | 
						|
  }
 | 
						|
  common::ObRole get_role() const
 | 
						|
  {
 | 
						|
    return INVALID_ROLE;
 | 
						|
  }
 | 
						|
  common::ObAddr get_leader() const
 | 
						|
  {
 | 
						|
    common::ObAddr leader;
 | 
						|
    return leader;
 | 
						|
  }
 | 
						|
  common::ObVersion get_freeze_version() const
 | 
						|
  {
 | 
						|
    common::ObVersion freeze_version;
 | 
						|
    return freeze_version;
 | 
						|
  }
 | 
						|
  int update_freeze_version(const common::ObVersion& freeze_version)
 | 
						|
  {
 | 
						|
    UNUSED(freeze_version);
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  int handle_prepare_rqst(const common::ObProposalID& proposal_id, const common::ObAddr& new_leader)
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    UNUSED(new_leader);
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  int update_proposal_id(const common::ObProposalID& proposal_id)
 | 
						|
  {
 | 
						|
    UNUSED(proposal_id);
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  int stop_election()
 | 
						|
  {
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  int set_election_leader(const common::ObAddr& leader, const int64_t lease_start)
 | 
						|
  {
 | 
						|
    UNUSED(leader);
 | 
						|
    UNUSED(lease_start);
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  void set_removed()
 | 
						|
  {}
 | 
						|
  void set_temporary_replica()
 | 
						|
  {}
 | 
						|
  void reset_temporary_replica()
 | 
						|
  {}
 | 
						|
  bool is_temporary_replica() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  bool is_changing_leader() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  int change_leader_async(const common::ObPartitionKey& partition_key, const ObAddr& leader)
 | 
						|
  {
 | 
						|
    UNUSED(partition_key);
 | 
						|
    UNUSED(leader);
 | 
						|
    return OB_SUCCESS;
 | 
						|
  }
 | 
						|
  bool is_inited() const
 | 
						|
  {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  void destroy()
 | 
						|
  {}
 | 
						|
 | 
						|
  DISALLOW_COPY_AND_ASSIGN(MockObLogStateMgr);
 | 
						|
};
 | 
						|
 | 
						|
}  // namespace clog
 | 
						|
}  // namespace oceanbase
 | 
						|
 | 
						|
#endif  // OCEANBASE_CLOG_OB_LOG_STATE_MGR_V2_H_
 |