SimsWorld/ComponentBasic/RouteManage.h

47 lines
1.4 KiB
C
Raw Normal View History

2025-05-31 03:57:32 +00:00
#pragma once
#include "componentbasic.h"
#include <route_access.h>
#include <QHash>
/// <summary>
/// ·<><C2B7><EFBFBD><EFBFBD>Դ
/// </summary>
struct RouteResource {
QList<LonLatPos> _route_points;
RouteResource& operator=(const RouteResource& other);
};
/// <summary>
/// ƽ<><C6BD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
2025-06-28 17:38:37 +00:00
class COMPONENTBASIC_EXPORT PlainRouteManagePlugin :
public RespondRoute<
WsRespond<NewPlainRoute, RespondDefault>,
WsRespond<RemovePlainRoute, RespondDefault>,
WsRespond<PlainRouteReset, RespondDefault>,
2025-06-28 17:38:37 +00:00
WsRespond<PlainRouteQuery, PlainRouteInfo>>,
public RequestRoute<>
{
private:
std::weak_ptr<WsEntity> _bind_entity;
QHash<QString, RouteResource> _route_resource_map;
public:
2025-06-22 02:05:31 +00:00
PlainRouteManagePlugin();
// ͨ<><CDA8> ProcList <20>̳<EFBFBD>
2025-06-28 17:38:37 +00:00
void execute(std::shared_ptr<const NewPlainRoute> in, QList<std::shared_ptr<RespondDefault>>& out) override;
void execute(std::shared_ptr<const RemovePlainRoute> in, QList<std::shared_ptr<RespondDefault>>& out) override;
void execute(std::shared_ptr<const PlainRouteReset> in, QList<std::shared_ptr<RespondDefault>>& out) override;
void execute(std::shared_ptr<const PlainRouteQuery> in, QList<std::shared_ptr<PlainRouteInfo>>& out) override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
2025-06-28 17:38:37 +00:00
std::shared_ptr<Serializable> newDefault() const override;
void bindEntity(std::weak_ptr<WsEntity> host) override;
QString name() const override;
2025-05-31 03:57:32 +00:00
};