void GreeterProxy::connected() { // log connection qDebug() << "Connected to the daemon."; // send connected message SocketWriter(d->socket) << quint32(GreeterMessages::Connect); }
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(); }
void SocketServer::loginSucceeded(QLocalSocket *socket) { SocketWriter(socket) << quint32(DaemonMessages::LoginSucceeded); }
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; } } }
void GreeterProxy::suspend() { SocketWriter(d->socket) << quint32(GreeterMessages::Suspend); }
void GreeterProxy::reboot() { SocketWriter(d->socket) << quint32(GreeterMessages::Reboot); }
void GreeterProxy::hybridSleep() { SocketWriter(d->socket) << quint32(GreeterMessages::HybridSleep); }
void GreeterProxy::hibernate() { SocketWriter(d->socket) << quint32(GreeterMessages::Hibernate); }