source: SMSSender/common/business/ilibrary.h @ 315:e6c8bb244ecd

separation-frontend-backend
Last change on this file since 315:e6c8bb244ecd was 315:e6c8bb244ecd, checked in by Sämy Zehnder <saemy.zehnder@…>, 6 years ago
  • Separates the frontend from the backend code.
  • At this point the schoolnet gateway is converted only.
  • Removes bc & da prefixes from the filenames.
File size: 2.5 KB
Line 
1/*
2 smssender - A frontend for fast and easy SMS sending over different gateways.
3 Copyright (C) 2007-2012, gorrión. See http://smssender.gorrion.ch
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18#ifndef COMMON_ILIBRARY_H
19#define COMMON_ILIBRARY_H
20
21#include <QMetaType>
22#include <QSet>
23#include <QString>
24#include <QTranslator>
25
26#include "common/business/iintegration.h"
27#include "common/domain/sversion.h"
28#include "common/global.h"
29
30class IContactImporter;
31class IGateway;
32
33class COMMON_EXPORT ILibrary {
34public:
35    const static QString COMPATIBILITY_VERSION;
36
37public:
38    /**
39     * Initializes this library.
40     * @param integrationHelperFactory A helper to make integration
41     *      of the library easy. Call createIntegrationHelper with your
42     *      gateway to get access. It is implemented in such a way,
43     *      that only objects defined in this library are accessible.
44     *      This includes events which are only emitted for such
45     *      objects.
46     *      The integrationHelperFactory is owned by the caller, created
47     *      integrationHelpers are owned by the library.
48     * @return True, if initialization is successful
49     */
50    virtual bool init(const IIntegrationHelper::Factory &integrationHelperFactory) =0;
51
52    virtual QString identificationKey() const =0;
53    virtual SVersion version() const =0;
54    virtual QString compatibilityVersion() const =0; // To prevent loading too old/new libraries
55
56    virtual QSet<QTranslator*> translators() const =0;
57    virtual QSet<IContactImporter*> contactImporters() const =0;
58    /**
59     * @brief Returns the gateway which is defined in this library.
60     *        Can be NULL if no gateway is defined.
61     * @return
62     */
63    virtual IGateway* gateway() const =0;
64
65public:
66    virtual ~ILibrary() {}
67};
68Q_DECLARE_INTERFACE(ILibrary, "ch.gorrion.smssender.ILibrary/1.0")
69
70extern "C" Q_DECL_EXPORT ILibrary *createLibrary();
71
72#endif /* COMMON_ILIBRARY_H */
Note: See TracBrowser for help on using the repository browser.