Files
oceanbase/src/storage/ob_pg_meta_checkpoint_writer.h
gm 4a92b6d7df reformat source code
according to code styles, 'AccessModifierOffset' should be -2.
2021-06-17 10:40:36 +08:00

62 lines
1.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 OB_PG_META_CHECKPOINT_WRITER_H_
#define OB_PG_META_CHECKPOINT_WRITER_H_
#include "storage/ob_pg_meta_block_writer.h"
#include "storage/ob_i_table.h"
namespace oceanbase {
namespace storage {
class ObPGMetaItem : public ObIPGMetaItem {
public:
ObPGMetaItem();
virtual ~ObPGMetaItem() = default;
virtual int serialize(const char*& buf, int64_t& buf_len) override;
virtual int16_t get_item_type() const override
{
return PG_META;
}
void set_serialize_buf(const char* buf, const int64_t buf_len);
bool is_valid() const
{
return nullptr != buf_;
}
TO_STRING_KV(KP_(buf), K_(buf_len));
private:
const char* buf_;
int64_t buf_len_;
};
// sstable meta and pg meta
class ObPGMetaCheckpointWriter final {
public:
ObPGMetaCheckpointWriter();
~ObPGMetaCheckpointWriter() = default;
int init(ObPGMetaItem& pg_meta, ObPGMetaItemWriter& writer);
int write_checkpoint();
void reset();
private:
bool is_inited_;
ObPGMetaItemWriter* writer_;
ObPGMetaItem pg_meta_;
};
} // end namespace storage
} // end namespace oceanbase
#endif // OB_PG_META_CHECKPOINT_WRITER_H_