wiRedPanda
Logic Circuit Simulator
Loading...
Searching...
No Matches
ElementHandler Class Reference

Handler for element operation commands (create, delete, modify, transform, etc.). More...

#include <ElementHandler.h>

Inheritance diagram for ElementHandler:
[legend]

Public Member Functions

 ElementHandler (MainWindow *mainWindow, const MCPValidator *validator)
QJsonObject handleCommand (const QString &command, const QJsonObject &params, const QJsonValue &requestId) override
Public Member Functions inherited from BaseHandler
QString availableInputPorts (GraphicElement *element) const
QString availableOutputPorts (GraphicElement *element) const
 BaseHandler (MainWindow *mainWindow, const MCPValidator *validator)
QJsonObject createErrorResponse (const QString &error, const QJsonValue &requestId=QJsonValue(), int code=JsonRpcError::InternalError) const
QJsonObject createSuccessResponse (const QJsonObject &result={}, const QJsonValue &requestId=QJsonValue()) const
ScenecurrentScene ()
const ScenecurrentScene () const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
bool inputPortByLabel (GraphicElement *element, const QString &label, int &portIndex, QString &errorMsg) const
bool outputPortByLabel (GraphicElement *element, const QString &label, int &portIndex, QString &errorMsg) const
template<typename Fn>
QJsonObject tryCommand (Fn &&fn, const QString &action, const QJsonValue &requestId=QJsonValue())
 Wraps fn in a try/catch, returning an error response on exception.
GraphicElementvalidatedElement (const QJsonObject &params, const QString &paramName, QString &errorMsg)
 Validates paramName in params, looks up the element, and returns it.
bool validateElementId (int elementId, const QString &paramName, QString &errorMsg) const
bool validateNonEmptyString (const QJsonValue &value, const QString &paramName, QString &errorMsg) const
bool validateNonNegativeInteger (const QJsonValue &value, const QString &paramName, QString &errorMsg) const
bool validateNumeric (const QJsonValue &value, const QString &paramName, QString &errorMsg) const
bool validateParameters (const QJsonObject &params, const QStringList &required) const
bool validatePortRange (GraphicElement *element, int portIndex, bool isOutput, const QString &paramName, QString &errorMsg) const
bool validatePositiveInteger (const QJsonValue &value, const QString &paramName, QString &errorMsg) const
virtual ~BaseHandler ()=default

Additional Inherited Members

Protected Member Functions inherited from BaseHandler
QString availablePorts (GraphicElement *element, bool isOutput) const
Protected Attributes inherited from BaseHandler
MainWindowm_mainWindow
const MCPValidatorm_validator

Detailed Description

Handler for element operation commands (create, delete, modify, transform, etc.).

Handles all element-related MCP commands including creating elements, deleting elements, listing elements, moving elements, setting properties, rotating, flipping, morphing elements, and changing port sizes.

Definition at line 16 of file ElementHandler.h.

Constructor & Destructor Documentation

◆ ElementHandler()

ElementHandler::ElementHandler ( MainWindow * mainWindow,
const MCPValidator * validator )
explicit

Definition at line 25 of file ElementHandler.cpp.

References BaseHandler::BaseHandler().

Member Function Documentation

◆ handleCommand()

QJsonObject ElementHandler::handleCommand ( const QString & command,
const QJsonObject & params,
const QJsonValue & requestId )
overridevirtual

Implements BaseHandler.

Definition at line 30 of file ElementHandler.cpp.

References BaseHandler::createErrorResponse(), and JsonRpcError::MethodNotFound.


The documentation for this class was generated from the following files: