authsession.cpp
00001 /*
00002  * This file is part of signon
00003  *
00004  * Copyright (C) 2009-2010 Nokia Corporation.
00005  * Copyright (C) 2011-2015 Canonical Ltd.
00006  *
00007  * Contact: Alberto Mardegan <alberto.mardegan@canonical.com>
00008  *
00009  * This library is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU Lesser General Public License
00011  * version 2.1 as published by the Free Software Foundation.
00012  *
00013  * This library is distributed in the hope that it will be useful, but
00014  * WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with this library; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
00021  * 02110-1301 USA
00022  */
00023 
00024 #include <QObject>
00025 #include <QMetaType>
00026 
00027 #include "libsignoncommon.h"
00028 #include "authsession.h"
00029 #include "authsessionimpl.h"
00030 #include "debug.h"
00031 
00032 
00033 namespace SignOn {
00034 
00035 AuthSession::AuthSession(quint32 id, const QString &methodName,
00036                          QObject *parent):
00037     QObject(parent),
00038     impl(new AuthSessionImpl(this, id, methodName))
00039 {
00040     initDebug();
00041 
00042     qRegisterMetaType<SessionData>("SessionData");
00043     qRegisterMetaType<AuthSessionState>("AuthSession::AuthSessionState");
00044 
00045     if (qMetaTypeId<SessionData>() < QMetaType::User)
00046         BLAME() << "AuthSession::AuthSession() - "
00047             "SessionData meta type not registered.";
00048 
00049     if (qMetaTypeId<AuthSessionState>() < QMetaType::User)
00050         BLAME() << "AuthSession::AuthSession() - "
00051             "AuthSessionState meta type not registered.";
00052 
00053 }
00054 
00055 AuthSession::~AuthSession()
00056 {
00057     delete impl;
00058 }
00059 
00060 const QString AuthSession::name() const
00061 {
00062     return impl->name();
00063 }
00064 
00065 void AuthSession::queryAvailableMechanisms(const QStringList &wantedMechanisms)
00066 {
00067     impl->queryAvailableMechanisms(wantedMechanisms);
00068 }
00069 
00070 void AuthSession::process(const SessionData& sessionData,
00071                           const QString &mechanism)
00072 {
00073     impl->process(sessionData, mechanism);
00074 }
00075 
00076 void AuthSession::cancel()
00077 {
00078     impl->cancel();
00079 }
00080 
00081 } //namespace SignOn