Add example client
[accounts-sso:signon-oauth2.git] / example / oauthclient.h
1 /*
2  * This file is part of signon
3  *
4  * Copyright (C) 2009-2010 Nokia Corporation.
5  *
6  * Contact: Alberto Mardegan <alberto.mardegan@nokia.com>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * version 2.1 as published by the Free Software Foundation.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  */
22 #ifndef OAUTHCLIENT_H
23 #define OAUTHCLIENT_H
24
25 #include <SignOn/Identity>
26 #include <SignOn/AuthSession>
27
28 #include <QObject>
29
30 class OAuthClient: public QObject
31 {
32     Q_OBJECT
33
34 public:
35     OAuthClient(const QString &clientId,
36                 const QString &clientSecret,
37                 QObject *parent = 0);
38     ~OAuthClient();
39
40 public Q_SLOTS:
41     void authenticate();
42
43 private Q_SLOTS:
44     void onResponse(const SignOn::SessionData &sessionData);
45     void onError(const SignOn::Error &error);
46
47 private:
48     QString m_clientId;
49     QString m_clientSecret;
50     SignOn::Identity *m_identity;
51     SignOn::AuthSession *m_session;
52 };
53
54 #endif // OAUTHCLIENT_H
55