embedded-framework/middleware/AppManager/src/IAppProtocolHandle.h
2024-04-12 20:10:13 +08:00

61 lines
2.4 KiB
C++

/*
* Copyright (c) 2023 Fancy Code.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef I_APP_PROTOCOL_HANDLE_H
#define I_APP_PROTOCOL_HANDLE_H
#include "IAppManager.h"
#include "StatusCode.h"
#include "WebServer.h"
#include <iostream>
#include <memory>
#include <vector>
typedef struct protocol_packet
{
protocol_packet() : mData(nullptr), mDataLength(0)
{
}
protocol_packet(void *data, const size_t &size) : mData(data), mDataLength(size)
{
}
~protocol_packet();
void *mData;
size_t mDataLength;
} ProtocolPacket;
class VAppDataPacket
{
public:
VAppDataPacket() = default;
virtual ~VAppDataPacket() = default;
};
class IAppProtocolHandle
{
public:
IAppProtocolHandle() = default;
virtual ~IAppProtocolHandle() = default;
static std::shared_ptr<IAppProtocolHandle> &GetInstance(std::shared_ptr<IAppProtocolHandle> *impl = nullptr);
virtual void Init(void);
virtual void UnInit(void);
virtual void RequestHandle(const char *url, const unsigned int &urlLength, ResponseHandle responseHandle,
void *context);
virtual void RequestHandleTcp(const char *data, const unsigned int &dataLength, ResponseHandle responseHandle,
void *context);
virtual void SetAppMonitor(std::shared_ptr<VAppMonitor> &monitor);
virtual std::shared_ptr<ProtocolPacket> SetRecordingStatus(const RecordingStatus &status);
virtual std::shared_ptr<ProtocolPacket> SetMicrophoneStatus(const MicrophoneStatus &status);
virtual std::shared_ptr<ProtocolPacket> SetBatteryStatus(const BatteryStatus &status, const int &batteryCapacity);
virtual std::shared_ptr<ProtocolPacket> SetSdCardStatus(const SdCardStatus &status);
virtual std::shared_ptr<ProtocolPacket> DeletedFileMessage(const std::string &file, const StorageFileType &type);
virtual std::shared_ptr<ProtocolPacket> CreatedFileMessage(const std::string &file, const StorageFileType &type);
};
#endif