* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* 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 PSL v2 for more details.
*/
#ifndef CPP_SIMPLESTRINGSCHEMA_H
#define CPP_SIMPLESTRINGSCHEMA_H
#include <memory>
#include <string>
#include <vector>
#include <stdexcept>
#include <locale>
#include <codecvt>
#include "DeserializationSchema.h"
#include "SerializationSchema.h"
#include "basictypes/StringView.h"
class SimpleStringSchema : public DeserializationSchema, public SerializationSchema {
public:
SimpleStringSchema();
~SimpleStringSchema() override;
explicit SimpleStringSchema(const std::string& charsetName);
std::string_view getCharset() const;
Object* deserialize(const uint8_t* message, size_t length) override;
bool isEndOfStream(const void* nextElement) override;
std::vector<uint8_t> serialize(Object* element) override;
private:
std::string_view charsetName;
String* buffer;
};
#endif