Files
qt5-legatus-legacy/Lts/Services/ParticipantManagement/PartyHandling/party_handler.h
T
2026-08-13 18:33:10 +02:00

63 lines
2.2 KiB
C++
Executable File

/**
* The PartyHandler class manages all party related function topics and holds classes for
* further party data.
* $Id$
* $HeadURL$
* $Author$
* Created by Hannes Baeuerle, SLSE, 2016-05-12
*/
#pragma once
#include <QtCore/QHash>
#include "PartyHandling/party_donator.h"
#include <ParticipantManagement/ppm_fts.h>
#include "logger.h"
#include "ppm_db.h"
namespace ParticipantManagement
{
class MainHandler;
namespace PartyHandling
{
class Party;
class PartyHandler final
: public PartyDonator
, protected Interface::Fts::ModifyPartyDataRequestHandler
, protected Interface::Fts::RemovePartyRequestHandler
, protected Interface::Fts::SyncPartiesRequestHandler
, protected Interface::Fts::ChangePartyUsedStateRequestHandler
{
public:
explicit PartyHandler(MainHandler *mainHandler);
~PartyHandler();
Party *partyById(int32_t partyId) const override;
bool init();
void resetAdlerProperties(QString &properties, const int partyId);
Core::FunctionReplyObject changePartyUsedStateRequest(const ChangePartyUsedStateRequest &request);
protected:
void onChangePartyUsedStateRequest(const rti::core::SampleIdentity &cookie,
const ChangePartyUsedStateRequest &request) override;
void onModifyPartyDataRequest(const rti::core::SampleIdentity &cookie,
const ParticipantManagement::Party &request) override;
Core::FunctionReplyObject modifyPartyDataRequest(const ParticipantManagement::Party &request);
void onRemovePartyRequest(const rti::core::SampleIdentity &cookie,
const RemovePartyRequest &request) override;
Core::FunctionReplyObject removePartyRequest(const RemovePartyRequest &request);
Core::FunctionReplyObject removeParty(Party *partyToDelete);
void onSyncPartiesRequest(const rti::core::SampleIdentity &cookie,
const SyncPartiesRequest &request) override;
private:
QVector<Database::PpmParty> loadDefaultParties(bool withInsert) const;
private:
MainHandler *m_mainHandler;
QHash<int32_t, Party *> m_parties; // <partyId, Party>
LOGGER_T m_logger;
};
} // namespace PartyHandling
} // namespace ParticipantManagement