154 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			3.4 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_CLOG_CLOG_MOCK_UTILS_MOCK_LOG_RECONFIRM_H_
 | |
| #define _OCEANBASE_UNITTEST_CLOG_CLOG_MOCK_UTILS_MOCK_LOG_RECONFIRM_H_
 | |
| 
 | |
| #include "lib/lock/ob_spin_lock.h"
 | |
| #include "clog/ob_log_define.h"
 | |
| #include "clog/ob_log_sliding_window.h"
 | |
| #include "clog/ob_log_entry.h"
 | |
| #include "clog/ob_log_entry_header.h"
 | |
| #include "clog/ob_log_task.h"
 | |
| #include "clog/ob_log_checksum_V2.h"
 | |
| #include "clog/ob_log_reconfirm.h"
 | |
| 
 | |
| namespace oceanbase {
 | |
| using namespace common;
 | |
| namespace clog {
 | |
| class ObILogMembershipMgr;
 | |
| 
 | |
| class MockObLogReconfirm : public ObLogReconfirm {
 | |
| public:
 | |
|   MockObLogReconfirm()
 | |
|   {}
 | |
|   virtual ~MockObLogReconfirm()
 | |
|   {}
 | |
|   int init(ObILogSWForReconfirm* sw, ObILogStateMgrForReconfirm* state_mgr, ObILogMembershipMgr* mm,
 | |
|       ObILogEngine* log_engine, ObILogAllocator* alloc_mgr, const common::ObPartitionKey& partition_key,
 | |
|       const common::ObAddr self)
 | |
|   {
 | |
|     UNUSED(sw);
 | |
|     UNUSED(log_engine);
 | |
|     UNUSED(partition_key);
 | |
|     UNUSED(state_mgr);
 | |
|     UNUSED(mm);
 | |
|     UNUSED(alloc_mgr);
 | |
|     UNUSED(self);
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int reconfirm()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int receive_log(const ObLogEntry& log_entry, const int64_t server_id)
 | |
|   {
 | |
|     UNUSED(log_entry);
 | |
|     UNUSED(server_id);
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int receive_max_log_id(const int64_t server_id, const uint64_t log_id)
 | |
|   {
 | |
|     UNUSED(server_id);
 | |
|     UNUSED(log_id);
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   void clear()
 | |
|   {}
 | |
|   bool need_start_up()
 | |
|   {
 | |
|     return true;
 | |
|   }
 | |
| 
 | |
|   enum State {
 | |
|     INITED = 0,
 | |
|     FLUSHING_PREPARE_LOG = 1,
 | |
|     FETCH_MAX_LSN = 2,
 | |
|     RECONFIRMING = 3,
 | |
|     START_WORKING = 4,
 | |
|     FINISHED = 5,
 | |
|   };
 | |
| 
 | |
|   static const int64_t MAJORITY_TAG_BIT = 31;
 | |
|   static const int64_t CONFIRMED_TAG_BIT = 30;
 | |
|   static const int64_t SUBMITED_TAG_BIT = 29;
 | |
|   static const int64_t LOG_EXIST_TAG_BIT = 28;
 | |
| 
 | |
| private:
 | |
|   int init_reconfirm_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   bool is_new_proposal_id_flushed_()
 | |
|   {
 | |
|     return true;
 | |
|   }
 | |
|   int fetch_max_log_id_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int try_set_majority_ack_tag_of_max_log_id_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int get_start_id_and_leader_ts_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int prepare_log_map_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int reconfirm_log_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int try_fetch_log_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int confirm_log_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int retry_confirm_log_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
|   int try_filter_invalid_log_()
 | |
|   {
 | |
|     return OB_SUCCESS;
 | |
|   }
 | |
| 
 | |
|   bool is_first_time_()
 | |
|   {
 | |
|     return true;
 | |
|   }
 | |
|   bool need_retry_reconfirm_()
 | |
|   {
 | |
|     return true;
 | |
|   }
 | |
|   const char* get_state_str_(const State state) const
 | |
|   {
 | |
|     UNUSED(state);
 | |
|     return NULL;
 | |
|   }
 | |
|   void generate_nop_log_(const uint64_t log_id, const int64_t idx)
 | |
|   {
 | |
|     UNUSED(log_id);
 | |
|     UNUSED(idx);
 | |
|   }
 | |
| };
 | |
| }  // namespace clog
 | |
| }  // namespace oceanbase
 | |
| #endif  // _OCEANBASE_UNITTEST_CLOG_CLOG_MOCK_UTILS_MOCK_LOG_RECONFIRM_H_
 | 
