Daqster

Daqster Framework

Родител: Architecture Overview Documentation Index
Съседни подсистеми: Applications Plugins

Framework подсистемата предоставя основните building blocks за приложения и плъгини.

Структура

src/frame_work/
├── CMakeLists.txt
├── base/src/
│   ├── platform/              # Platform abstraction
│   │   ├── ShutdownHandler.h
│   │   ├── UnixShutdownHandler.{h,cpp}
│   │   └── WindowsShutdownHandler.{h,cpp}
│   │
│   ├── process/               # Process management
│   │   ├── QProcessManager.{h,cpp}
│   │   └── Process descriptors
│   │
│   ├── QPluginManager.cpp     # Plugin loading system
│   ├── QPluginInterface.cpp   # Plugin interface
│   ├── QPluginListView.{h,cpp} # Plugin UI
│   └── ...
│
├── icons/                     # Framework resources
└── framework_resources.qrc

Core Components

QProcessManager

Управление на външни процеси:

ShutdownHandler

Platform-independent graceful shutdown:

QPluginManager

Plugin система:

Plugin System

Общ преглед на plugin системата има в plugins/README.md.

API Overview

Този subsystem е основният API слой, върху който стъпват приложенията и plugin-ите. Детайлните описания са в отделните документи, а тук е краткият practically useful обзор.

QProcessManager

Типични entry points:

ShutdownHandler

QPluginManager

Типичен usage flow:

QPluginManager manager;
manager.addSearchPath("plugins/Daqster");
manager.loadAll();

Design Patterns

Singleton

Template Method

Factory

Observer

Key Features

1. Cross-Platform Support

2. Process Management

3. Plugin Architecture

4. Resource Management

Building

cd src/frame_work
mkdir build && cd build
cmake ..
make

Framework се билдва като library (libframe_work.so или .dll).

Детайлни документи

Usage in Applications

#include "QProcessManager.h"
#include "ShutdownHandler.h"

class MyApp : public Daqster::QProcessManager {
    Q_OBJECT
public:
    MyApp() {
        // Install shutdown handler
        auto handler = Daqster::ShutdownHandler::create();
        connect(handler, &ShutdownHandler::shutdownRequested,
                this, &MyApp::gracefulShutdown);
        handler->install();
    }
    
protected:
    void setupProcessEnvironment(QProcess* proc, 
                                const QString& name,
                                const QStringList& args) override {
        // Custom environment setup
        QProcessManager::setupProcessEnvironment(proc, name, args);
        proc->setEnvironment({"MY_VAR=value"});
    }
};

Threading Model

Error Handling

Testing

Виж src/plugins/tests/ за unit tests на framework компонентите.

Performance

See Also