Beispiel #1
0
    void GreeterProxy::connected() {
        // log connection
        qDebug() << "Connected to the daemon.";

        // send connected message
        SocketWriter(d->socket) << quint32(GreeterMessages::Connect);
    }
Beispiel #2
0
    void GreeterProxy::login(const QString &user, const QString &password, const int sessionIndex) const {
        if (!d->sessionModel) {
            // log error
            qCritical() << "Session model is not set.";

            // return
            return;
        }

        // get model index
        QModelIndex index = d->sessionModel->index(sessionIndex, 0);

        // send command to the daemon
        SocketWriter(d->socket) << quint32(GreeterMessages::Login) << user << password << d->sessionModel->data(index, SessionModel::FileRole).toString();
    }
Beispiel #3
0
 void SocketServer::loginSucceeded(QLocalSocket *socket) {
     SocketWriter(socket) << quint32(DaemonMessages::LoginSucceeded);
 }
Beispiel #4
0
    void SocketServer::readyRead() {
        QLocalSocket *socket = qobject_cast<QLocalSocket *>(sender());

        // check socket
        if (!socket)
            return;

        // input stream
        QDataStream input(socket);

        // read message
        quint32 message;
        input >> message;

        switch (GreeterMessages(message)) {
            case GreeterMessages::Connect: {
                // log message
                qDebug() << "Message received from greeter: Connect";

                // send capabilities
                SocketWriter(socket) << quint32(DaemonMessages::Capabilities) << quint32(daemonApp->powerManager()->capabilities());

                // send host name
                SocketWriter(socket) << quint32(DaemonMessages::HostName) << daemonApp->hostName();

                // emit signal
                emit connected();
            }
            break;
            case GreeterMessages::Login: {
                // log message
                qDebug() << "Message received from greeter: Login";

                // read username, pasword etc.
                QString user, password, session;
                input >> user >> password >> session;

                // emit signal
                emit login(socket, user, password, session);
            }
            break;
            case GreeterMessages::PowerOff: {
                // log message
                qDebug() << "Message received from greeter: PowerOff";

                // power off
                daemonApp->powerManager()->powerOff();
            }
            break;
            case GreeterMessages::Reboot: {
                // log message
                qDebug() << "Message received from greeter: Reboot";

                // reboot
                daemonApp->powerManager()->reboot();
            }
            break;
            case GreeterMessages::Suspend: {
                // log message
                qDebug() << "Message received from greeter: Suspend";

                // suspend
                daemonApp->powerManager()->suspend();
            }
            break;
            case GreeterMessages::Hibernate: {
                // log message
                qDebug() << "Message received from greeter: Hibernate";

                // hibernate
                daemonApp->powerManager()->hibernate();
            }
            break;
            case GreeterMessages::HybridSleep: {
                // log message
                qDebug() << "Message received from greeter: HybridSleep";

                // hybrid sleep
                daemonApp->powerManager()->hybridSleep();
            }
            break;
            default: {
                // log message
                qWarning() << "Unknown message" << message;
            }
        }
    }
Beispiel #5
0
 void GreeterProxy::suspend() {
     SocketWriter(d->socket) << quint32(GreeterMessages::Suspend);
 }
Beispiel #6
0
 void GreeterProxy::reboot() {
     SocketWriter(d->socket) << quint32(GreeterMessages::Reboot);
 }
Beispiel #7
0
 void GreeterProxy::hybridSleep() {
     SocketWriter(d->socket) << quint32(GreeterMessages::HybridSleep);
 }
Beispiel #8
0
 void GreeterProxy::hibernate() {
     SocketWriter(d->socket) << quint32(GreeterMessages::Hibernate);
 }