136 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.6 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_UNITTEST_LOGSERVICE_MOCK_CONTAINER_LOG_MODE_MGR_
 | 
						|
#define OCEANBASE_UNITTEST_LOGSERVICE_MOCK_CONTAINER_LOG_MODE_MGR_
 | 
						|
 | 
						|
#define private public
 | 
						|
#include "logservice/palf/log_mode_mgr.h"
 | 
						|
#undef private
 | 
						|
 | 
						|
namespace oceanbase
 | 
						|
{
 | 
						|
namespace palf
 | 
						|
{
 | 
						|
 | 
						|
class MockLogModeMgr : public LogModeMgr
 | 
						|
{
 | 
						|
public:
 | 
						|
  MockLogModeMgr() {}
 | 
						|
  virtual ~MockLogModeMgr() {}
 | 
						|
 | 
						|
  int init(const int64_t palf_id,
 | 
						|
           const common::ObAddr &self,
 | 
						|
           const LogModeMeta &log_mode_meta,
 | 
						|
           LogStateMgr *state_mgr,
 | 
						|
           LogEngine *log_engine,
 | 
						|
           LogConfigMgr *config_mgr,
 | 
						|
           LogSlidingWindow *sw)
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    UNUSED(palf_id);
 | 
						|
    UNUSED(self);
 | 
						|
    UNUSED(log_mode_meta);
 | 
						|
    UNUSED(state_mgr);
 | 
						|
    UNUSED(log_engine);
 | 
						|
    UNUSED(config_mgr);
 | 
						|
    UNUSED(sw);
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
  void destroy() {}
 | 
						|
  void reset_status()
 | 
						|
  {}
 | 
						|
  int get_access_mode(int64_t &mode_version, AccessMode &access_mode) const
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    access_mode = applied_mode_meta_.access_mode_;
 | 
						|
    mode_version = applied_mode_meta_.mode_version_;
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
  int get_ref_ts_ns(int64_t &mode_version, int64_t &ref_ts_ns) const
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    UNUSEDx(ref_ts_ns, mode_version);
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
  bool is_state_changed() const
 | 
						|
  {
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
  LogModeMeta get_accepted_mode_meta() const
 | 
						|
  {
 | 
						|
    return mock_accepted_mode_meta_;
 | 
						|
  }
 | 
						|
  LogModeMeta get_last_submit_mode_meta() const
 | 
						|
  {
 | 
						|
    return mock_last_submit_mode_meta_;
 | 
						|
  }
 | 
						|
  int reconfirm_mode_meta()
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
  int change_access_mode(const int64_t proposal_id,
 | 
						|
                         const AccessMode &access_mode,
 | 
						|
                         const int64_t ref_ts_ns,
 | 
						|
                         bool &need_role_change)
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    UNUSEDx(proposal_id, access_mode, ref_ts_ns, need_role_change);
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
  int handle_prepare_response(const common::ObAddr &server,
 | 
						|
                              const int64_t proposal_id,
 | 
						|
                              const LogModeMeta &mode_meta)
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    UNUSEDx(server, proposal_id, mode_meta);
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
  bool can_receive_mode_meta(const int64_t proposal_id,
 | 
						|
                            const LogModeMeta &mode_meta,
 | 
						|
                            bool &has_accepted)
 | 
						|
  {
 | 
						|
    UNUSEDx(proposal_id, mode_meta, has_accepted);
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
  int receive_mode_meta(const common::ObAddr &server,
 | 
						|
                        const int64_t proposal_id,
 | 
						|
                        const LogModeMeta &mode_meta)
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    UNUSEDx(server, proposal_id, mode_meta);
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
  int after_flush_mode_meta(const LogModeMeta &mode_meta)
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    UNUSEDx(mode_meta);
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
  int ack_mode_meta(const common::ObAddr &server, const int64_t proposal_id)
 | 
						|
  {
 | 
						|
    int ret = OB_SUCCESS;
 | 
						|
    UNUSEDx(server, proposal_id);
 | 
						|
    return ret;
 | 
						|
  }
 | 
						|
public:
 | 
						|
  LogModeMeta mock_applied_mode_meta_;
 | 
						|
  LogModeMeta mock_accepted_mode_meta_;
 | 
						|
  LogModeMeta mock_last_submit_mode_meta_;
 | 
						|
};
 | 
						|
 | 
						|
} // end of palf
 | 
						|
} // end of oceanbase
 | 
						|
 | 
						|
#endif
 |