Copyright and license in doxygen format
[accounts-sso:accounts-qt.git] / Accounts / service.h
1 /* vi: set et sw=4 ts=4 cino=t0,(0: */
2 /*
3  * This file is part of libaccounts-qt
4  *
5  * Copyright (C) 2009-2010 Nokia Corporation.
6  *
7  * Contact: Alberto Mardegan <alberto.mardegan@nokia.com>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public License
11  * version 2.1 as published by the Free Software Foundation.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  */
23 /*!
24  * @copyright Copyright (C) 2009-2010 Nokia Corporation.
25  * @license LGPL
26  */
27
28 #ifndef SERVICE_H
29 #define SERVICE_H
30
31
32 #include <QObject>
33 #include <QSettings>
34 #include <QStringList>
35 #include <QXmlStreamReader>
36 #include <QDomDocument>
37
38 #include "Accounts/accountscommon.h"
39
40 extern "C"
41 {
42     typedef struct _AgService AgService;
43 }
44
45 namespace Accounts
46 {
47 class Service;
48
49 typedef QList<Service*> ServiceList;
50
51 /*!
52  * @class Service
53  *
54  * @brief Representation of an account service.
55  *
56  * @details The Service object represents an account service. It can be used to
57  * retrieve some basic properties of the service (such as name, type and
58  * provider) and to get access to the contents of the XML file which defines
59  * it.
60  */
61 class ACCOUNTS_EXPORT Service
62 {
63 public:
64     /*!
65      * @todo define
66      */
67     QString name() const;
68
69     /*!
70      * @todo define
71      */
72     QString displayName() const;
73
74     /*!
75      * Returns the translation catalog of the service
76      */
77     QString trCatalog() const;
78
79     /*!
80      * @todo define
81      */
82     QString serviceType() const;
83
84     /*!
85      * @todo define
86      */
87     QString provider() const;
88
89     /*!
90      * @returns the icon name.
91      */
92     QString iconName() const;
93
94     /*!
95      * Create a QXmlStreamReader for the service XML file, positioned at the
96      * "type_data" element.
97      */
98     QXmlStreamReader *xmlStreamReader() const;
99
100     /*!
101      * Return the DOM of the whole XML service file.
102      */
103     const QDomDocument domDocument() const;
104
105     // \cond
106     AgService *service() const;
107
108 private:
109     ~Service();
110
111     friend class Account;
112     friend class Manager;
113     Service(AgService *service);
114     AgService *m_service;
115     mutable QDomDocument doc;
116     // \endcond
117 };
118
119 } //namespace Accounts
120
121 #endif // SERVICE_H