78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 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.
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "observer/ob_server.h"
 | |
| #include "lib/net/ob_addr.h"
 | |
| #include "share/ob_srv_rpc_proxy.h"
 | |
| #include "rpc/obrpc/ob_net_client.h"
 | |
| #include "share/ob_rpc_struct.h"
 | |
| #include "lib/mysqlclient/ob_single_mysql_connection_pool.h"
 | |
| 
 | |
| namespace oceanbase
 | |
| {
 | |
| namespace observer
 | |
| {
 | |
| 
 | |
| class ObSimpleServer
 | |
| {
 | |
| public:
 | |
|   static const int64_t MAX_WAIT_TENANT_SCHEMA_TIME = 20_s;
 | |
| 
 | |
| public:
 | |
|   ObSimpleServer(const std::string &env_prefix, ObServer &server = ObServer::get_instance(), const std::string &dir_prefix = "./store_");
 | |
|   ~ObSimpleServer() { reset(); }
 | |
|   ObServer& get_observer() { return server_; }
 | |
|   int simple_init();
 | |
|   int simple_start();
 | |
|   int simple_close();
 | |
|   std::string get_local_ip();
 | |
|   int bootstrap();
 | |
|   void reset();
 | |
|   common::ObMySQLProxy &get_sql_proxy() { return sql_proxy_; }
 | |
|   common::ObMySQLProxy &get_sql_proxy2() { return sql_proxy2_; }
 | |
|   common::ObMySQLProxy &get_sql_proxy_with_short_wait() { return sql_proxy_with_short_wait_; }
 | |
|   common::ObAddr get_addr() {
 | |
|     common::ObAddr addr;
 | |
|     addr.set_ip_addr(local_ip_.c_str(), rpc_port_);
 | |
|     return addr;
 | |
|   }
 | |
| 
 | |
|   int init_sql_proxy2(const char *tenant_name = "tt1", const char *db_name="test");
 | |
|   int init_sql_proxy_with_short_wait();
 | |
| protected:
 | |
|   int init_sql_proxy();
 | |
| 
 | |
| private:
 | |
|   ObServer &server_;
 | |
|   std::thread th_;
 | |
|   std::string local_ip_;
 | |
|   int rpc_port_;
 | |
|   int mysql_port_;
 | |
|   std::string data_dir_;
 | |
|   std::string rs_list_;
 | |
|   std::string run_dir_;
 | |
|   common::sqlclient::ObSingleMySQLConnectionPool sql_conn_pool_;
 | |
|   common::ObMySQLProxy sql_proxy_;
 | |
|   common::sqlclient::ObSingleMySQLConnectionPool sql_conn_pool2_;
 | |
|   common::ObMySQLProxy sql_proxy2_;
 | |
|   common::sqlclient::ObSingleMySQLConnectionPool sql_conn_pool_with_short_wait_;
 | |
|   common::ObMySQLProxy sql_proxy_with_short_wait_;
 | |
|   int server_fd_;
 | |
|   bool set_bootstrap_warn_log_;
 | |
| };
 | |
| 
 | |
| 
 | |
| } // end observer
 | |
| } // end oceanbase
 | 
