56 lines
1.8 KiB
C++
56 lines
1.8 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_PARTITION_TABLE_OB_ISERVER_TRACE_H_
|
|
#define OCEANBASE_PARTITION_TABLE_OB_ISERVER_TRACE_H_
|
|
|
|
#include "common/ob_zone.h"
|
|
#include "common/ob_region.h"
|
|
namespace oceanbase
|
|
{
|
|
namespace common
|
|
{
|
|
class ObAddr;
|
|
}
|
|
namespace share
|
|
{
|
|
|
|
|
|
// trace server alive status
|
|
class ObIServerTrace
|
|
{
|
|
public:
|
|
ObIServerTrace() {}
|
|
virtual ~ObIServerTrace() {};
|
|
|
|
virtual int check_server_alive(const common::ObAddr &server, bool &is_alive) const = 0;
|
|
virtual int check_in_service(const common::ObAddr &addr, bool &service_started) const = 0;
|
|
virtual int check_migrate_in_blocked(const common::ObAddr &addr, bool &is_block) const = 0;
|
|
virtual int check_server_permanent_offline(const common::ObAddr &server, bool &is_alive) const = 0;
|
|
virtual int is_server_exist(const common::ObAddr &server, bool &exist) const = 0;
|
|
virtual int is_server_stopped(const common::ObAddr &server, bool &is_stopped) const = 0;
|
|
};
|
|
|
|
class ObIZoneTrace
|
|
{
|
|
public:
|
|
ObIZoneTrace() {}
|
|
virtual ~ObIZoneTrace() {}
|
|
virtual int get_region(const common::ObZone &zone, common::ObRegion ®ion) const = 0;
|
|
virtual int get_zone_count(const common::ObRegion ®ion, int64_t &zone_count) const = 0;
|
|
};
|
|
|
|
} // end namespace share
|
|
} // end namespace oceanbase
|
|
|
|
#endif // OCEANBASE_PARTITION_TABLE_OB_ISERVER_TRACE_H_
|