File: pathcreateoperation.h

package info (click to toggle)
qflipper 1.3.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,320 kB
  • sloc: cpp: 18,500; sh: 247; ansic: 191; xml: 38; python: 14; makefile: 5
file content (39 lines) | stat: -rw-r--r-- 808 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once

#include "abstractutilityoperation.h"

namespace Flipper {
namespace Zero {

class PathCreateOperation : public AbstractUtilityOperation
{
    Q_OBJECT

    enum OperationState {
        CheckingRootElement = AbstractOperation::User,
        CheckingRemotePath,
        CreatingRemotePath,
    };

public:
    PathCreateOperation(ProtobufSession *rpc, DeviceState *deviceState, const QByteArray &remotePath, QObject *parent = nullptr);
    const QString description() const override;
    bool pathExists() const;

private:
    void nextStateLogic() override;

    void checkRootElement();
    void checkRemotePath();
    void createRemotePath();

    QByteArray m_remotePath;
    QByteArrayList m_remotePathElements;

    int m_currentElementIndex;
    int m_lastExistingElementIndex;
};

}
}