File indexing completed on 2024-05-12 05:12:40

0001 /*
0002  * Copyright (C) 2014  Bhaskar Kandiyal <bkandiyal@gmail.com>
0003  *
0004  * This program is free software; you can redistribute it and/or modify
0005  * it under the terms of the GNU General Public License as published by
0006  * the Free Software Foundation; either version 2 of the License, or
0007  * (at your option) any later version.
0008  *
0009  * This program is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0012  * GNU General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU General Public License along
0015  * with this program; if not, write to the Free Software Foundation, Inc.,
0016  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
0017  *
0018  */
0019 
0020 #ifndef AGENTSCOMMAND_H
0021 #define AGENTSCOMMAND_H
0022 
0023 #include "abstractcommand.h"
0024 
0025 namespace Akonadi
0026 {
0027 class AgentInstance;
0028 };
0029 
0030 class AgentsCommand : public AbstractCommand
0031 {
0032     Q_OBJECT
0033 
0034 public:
0035     explicit AgentsCommand(QObject *parent = nullptr);
0036     virtual ~AgentsCommand() = default;
0037 
0038     QString name() const override;
0039 
0040 public Q_SLOTS:
0041     void start() override;
0042 
0043 protected:
0044     int initCommand(QCommandLineParser *parser) override;
0045     void setupCommandOptions(QCommandLineParser *parser) override;
0046 
0047 private:
0048     void getState();
0049     void showInfo();
0050     void printAgentStatus(const QVector<Akonadi::AgentInstance> &agents);
0051     void restartAgents();
0052     void setState();
0053 
0054 private:
0055     enum Option {
0056         LIST = 0,
0057         SETSTATE = 1,
0058         GETSTATE = 2,
0059         INFO = 3,
0060         RESTART = 4
0061     };
0062 
0063     enum AgentState {
0064         OFFLINE = 0,
0065         ONLINE = 1
0066     };
0067 
0068     AgentState mStateArg;
0069     Option mOption;
0070     QStringList mArguments;
0071 };
0072 
0073 #endif // AGENTSCOMMAND_H