safesight-edge/plugins/alarm/uploaders/uploader_base.h
2025-12-26 16:58:18 +08:00

31 lines
701 B
C++

#pragma once
#include <cstdint>
#include <memory>
#include <string>
#include "utils/simple_json.h"
namespace rk3588 {
struct UploadResult {
bool success = false;
std::string url;
std::string error;
};
class IUploader {
public:
virtual ~IUploader() = default;
virtual bool Init(const SimpleJson& config) = 0;
virtual UploadResult Upload(const std::string& key,
const uint8_t* data,
size_t size,
const std::string& content_type = "") = 0;
virtual std::string Type() const = 0;
};
std::unique_ptr<IUploader> CreateUploader(const SimpleJson& config);
} // namespace rk3588