[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9

Maximiliano Curia maxy at moszumanska.debian.org
Mon May 9 09:08:19 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=3eafd08

The following commit has been merged in the master branch:
commit 3eafd0852a58213ba9eff68bd68b444dc32ca04a
Author: Marcin Ziemiński <zieminn at gmail.com>
Date:   Mon Jul 21 20:00:41 2014 +0200

    Initialize OTR related classes.
    
    Signed-off-by: Marcin Ziemiński <zieminn at gmail.com>
---
 otr-proxy/CMakeLists.txt                           |   9 +
 otr-proxy/KTpProxy/CMakeLists.txt                  |   3 +
 otr-proxy/KTpProxy/main.cpp                        |   5 +
 otr-proxy/KTpProxy/{types.h => otr-config.h}       |  30 ++-
 .../KTpProxy/{proxy-service.h => otr-handler.h}    |  73 ++++---
 otr-proxy/KTpProxy/otr-manager.cpp                 | 212 +++++++++++++++++++++
 .../{pending-curry-operation.h => otr-manager.h}   |  41 ++--
 otr-proxy/KTpProxy/{types.h => otr-message.h}      |  20 +-
 otr-proxy/KTpProxy/{main.cpp => otr-session.cpp}   |  87 +++++----
 otr-proxy/KTpProxy/otr-session.h                   |  88 +++++++++
 10 files changed, 462 insertions(+), 106 deletions(-)

diff --git a/otr-proxy/CMakeLists.txt b/otr-proxy/CMakeLists.txt
index 8da7a10..1f03a56 100644
--- a/otr-proxy/CMakeLists.txt
+++ b/otr-proxy/CMakeLists.txt
@@ -2,12 +2,21 @@ project(ktp-proxy)
 set(KTP_PROXY_VERSION "0.1.1")
 
 set(KDE_MIN_VERSION "4.13.1")
+
+set(CMAKE_MODULE_PATH 
+    "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
+    ${CMAKE_MODULE_PATH}
+)
+
 find_package (KDE4 ${KDE_MIN_VERSION} REQUIRED)
 find_package (TelepathyQt4 0.9.1 REQUIRED)
 find_package (TelepathyQt4Service 0.9.2.1 REQUIRED)
+find_package (TelepathyQt4Service 0.9.2.1 REQUIRED)
+find_package (LibOTR 4.0.0 REQUIRED)
 
 include_directories (${KDE4_INCLUDES}
                      ${TELEPATHY_QT4_INCLUDE_DIR}
+                     ${LIBOTR_INCLUDE_DIR}
 )
 
 include (KDE4Defaults)
diff --git a/otr-proxy/KTpProxy/CMakeLists.txt b/otr-proxy/KTpProxy/CMakeLists.txt
index 4f3f99b..564135a 100644
--- a/otr-proxy/KTpProxy/CMakeLists.txt
+++ b/otr-proxy/KTpProxy/CMakeLists.txt
@@ -8,6 +8,8 @@ set(ktp-proxy_SRCS
         otr-proxy-channel.cpp
         otr-proxy-channel-adaptee.cpp
         pending-curry-operation.cpp
+        otr-session.cpp
+        otr-manager.cpp
 )
 
 set(ktp-proxy_LIBS
@@ -16,6 +18,7 @@ set(ktp-proxy_LIBS
         ${KDE4_KIO_LIBS}
         ${TELEPATHY_QT4_LIBRARIES}
         ${TELEPATHY_QT4_SERVICE_LIBRARIES}
+        ${LIBOTR_LIBRARY}
 )
 
 kde4_add_executable(ktp-proxy ${ktp-proxy_SRCS})
diff --git a/otr-proxy/KTpProxy/main.cpp b/otr-proxy/KTpProxy/main.cpp
index c7b12e0..e58c800 100644
--- a/otr-proxy/KTpProxy/main.cpp
+++ b/otr-proxy/KTpProxy/main.cpp
@@ -33,6 +33,10 @@
 #include <TelepathyQt/ClientRegistrar>
 #include <TelepathyQt/TextChannel>
 
+extern "C" {
+#include <libotr/proto.h>
+}
+
 
 int main(int argc, char *argv[])
 {
@@ -50,6 +54,7 @@ int main(int argc, char *argv[])
     KApplication app(false);
 
     Tp::registerTypes();
+    OTRL_INIT;
 
     Tp::DBusError error;
     QDBusConnection dbusConnection = QDBusConnection::sessionBus();
diff --git a/otr-proxy/KTpProxy/types.h b/otr-proxy/KTpProxy/otr-config.h
similarity index 77%
copy from otr-proxy/KTpProxy/types.h
copy to otr-proxy/KTpProxy/otr-config.h
index dfe7ee9..de110ac 100644
--- a/otr-proxy/KTpProxy/types.h
+++ b/otr-proxy/KTpProxy/otr-config.h
@@ -17,17 +17,29 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#ifndef KTP_PROXY_TYPES_HEADER
-#define KTP_PROXY_TYPES_HEADER
+#ifndef KTP_PROXY_OTR_CONFIG_HEADER
+#define KTP_PROXY_OTR_CONFIG_HEADER
 
-#include <TelepathyQt/SharedPtr>
+#include <QString>
 
-class OtrProxyChannel;
-class ProxyService;
-class ProxyObserver;
+extern "C" {
+#include <libotr/proto.h>
+}
 
-typedef Tp::SharedPtr<OtrProxyChannel> OtrProxyChannelPtr;
-typedef Tp::SharedPtr<ProxyService> ProxyServicePtr;
-typedef Tp::SharedPtr<ProxyObserver> ProxyObserverPtr;
+namespace OTR
+{
+
+    class Config
+    {
+        public:
+            virtual ~Config() = 0;
+
+            virtual QString saveLocation() = 0;
+            virtual OtrlPolicy getPolicy() const = 0;
+            virtual void setPolicy(OtrlPolicy policy) = 0;
+
+    };
+
+} /* namespace OTR */
 
 #endif
diff --git a/otr-proxy/KTpProxy/proxy-service.h b/otr-proxy/KTpProxy/otr-handler.h
similarity index 55%
copy from otr-proxy/KTpProxy/proxy-service.h
copy to otr-proxy/KTpProxy/otr-handler.h
index d395e3d..4a669ee 100644
--- a/otr-proxy/KTpProxy/proxy-service.h
+++ b/otr-proxy/KTpProxy/otr-handler.h
@@ -17,52 +17,51 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#ifndef KTP_PROXY_PROXY_SERVICE_HEADER
-#define KTP_PROXY_PROXY_SERVICE_HEADER
+#ifndef KTP_PROXY_OTR_HANDLER_HEADER
+#define KTP_PROXY_OTR_HANDLER_HEADER
 
-#include "proxy-service-adaptee.h"
-#include "proxy-observer.h"
-#include "types.h"
+#include "otr-message.h"
 
-#include <TelepathyQt/AbstractClientObserver>
-#include <TelepathyQt/Types>
-#include <TelepathyQt/DBusService>
+#include <QSharedPointer>
 
-#include <QDBusConnection>
-#include <QMap>
-
-namespace Tp
+namespace OTR
 {
-    class PendingOperation;
-}
+    struct SessionContext
+    {
+        const QString accountId;
+        const QString accountName;
+        const QString recipientName;
+        const QString protocol;
+    };
 
+    class Handler : public QObject
+    {
+        Q_OBJECT
 
-class ProxyService : public Tp::DBusService
-{
-    Q_OBJECT
-    Q_DISABLE_COPY(ProxyService)
-
-    public:
-        ProxyService(const QDBusConnection &dbusConnection);
-        ~ProxyService();
+        public:
+            virtual ~Handler();
+            virtual const SessionContext& context() const = 0;
 
-        void addChannel(const Tp::ChannelPtr &channel);
+            virtual void injectMessage(const Message &message) = 0;
+            virtual void handleSmpEvent() = 0;
+            virtual void handleMsgEvent() = 0;
+            virtual void handleError() = 0;
+            /**
+             * State of the recipient
+             * 1 - logged in
+             * 0 - not logged in
+             * -1 - not sure if logged in
+             */
+            virtual int recipientStatus() = 0;
+            virtual void goneSecure() = 0;
+            virtual void goneInsecure() = 0;
 
-        void registerService(Tp::DBusError *error);
+        Q_SIGNALS:
+            void invalidated(SessionContext *context);
 
-        QVariantMap immutableProperties() const;
+    };
 
-    private Q_SLOTS:
-        void onChannelProxyClosed();
-
-    private Q_SLOTS:
-        void onChannelReady(Tp::PendingOperation *pendingChanReady);
-
-    private:
-        ProxyServiceAdaptee adaptee;
-        QMap<OtrProxyChannel*, OtrProxyChannelPtr> channels;
-        ProxyObserverPtr observer;
-        Tp::ClientRegistrarPtr registrar;
-};
+    typedef QSharedPointer<Handler> HandlerPtr;
+}
 
 #endif
diff --git a/otr-proxy/KTpProxy/otr-manager.cpp b/otr-proxy/KTpProxy/otr-manager.cpp
new file mode 100644
index 0000000..1c6f5f3
--- /dev/null
+++ b/otr-proxy/KTpProxy/otr-manager.cpp
@@ -0,0 +1,212 @@
+/***************************************************************************
+ *   Copyright (C) 2014 by Marcin Ziemiński <zieminn at gmail.com>            *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2.1 of the License, or   *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
+ ***************************************************************************/
+
+#include "otr-manager.h"
+#include "otr-session.h"
+
+extern "C" {
+#include <gcrypt.h>
+#include <libotr/privkey.h>
+#include <libotr/proto.h>
+#include <libotr/message.h>
+#include <libotr/userstate.h>
+}
+
+namespace OTR
+{
+
+namespace {
+
+    /** OTR ops functions ------------------------------------------------------------------------- */
+    OtrlPolicy policy(void *opdata, ConnContext *context)
+    {
+        Q_UNUSED(context);
+
+        Session *session = reinterpret_cast<Session*>(opdata);
+        return session->parent()->getPolicy();
+    }
+
+    void create_privkey(void *opdata, const char *accountname, const char *protocol)
+    {
+
+    }
+
+    int is_logged_in(void *opdata, const char *accountname, const char *protocol, const char *recipient)
+    {
+        Q_UNUSED(accountname);
+        Q_UNUSED(protocol);
+        Q_UNUSED(recipient);
+
+        Session *session = reinterpret_cast<Session*>(opdata);
+        return session->handler()->recipientStatus();
+    }
+
+    void inject_message(void *opdata, const char *accountname,
+            const char *protocol, const char *recipient, const char *message)
+    {
+
+    }
+
+    void update_context_list(void *opdata)
+    {
+
+    }
+
+    void new_fingerprint(void *opdata, OtrlUserState us,
+            const char *accountname, const char *protocol,
+            const char *username, unsigned char fingerprint[20])
+    {
+
+    }
+
+    void write_fingerprints(void *opdata)
+    {
+
+    }
+
+    void gone_secure(void *opdata, ConnContext *context)
+    {
+
+    }
+
+    void gone_insecure(void *opdata, ConnContext *context)
+    {
+
+    }
+
+    void still_secure(void *opdata, ConnContext *context, int is_reply)
+    {
+
+    }
+
+    int max_message_size(void *opdata, ConnContext *context)
+    {
+        return 0;
+    }
+
+    const char* otr_error_message(void *opdata, ConnContext *context,
+            OtrlErrorCode err_code)
+    {
+        return 0;
+    }
+
+    void otr_error_message_free(void *opdata, const char *err_msg)
+    {
+
+    }
+
+    const char* resent_msg_prefix(void *opdata, ConnContext *context)
+    {
+        return 0;
+    }
+
+    void resent_msg_prefix_free(void *opdata, const char *prefix)
+    {
+
+    }
+
+    void handle_smp_event(void *opdata, OtrlSMPEvent smp_event,
+            ConnContext *context, unsigned short progress_percent,
+            char *question)
+    {
+
+    }
+
+    void handle_msg_event(void *opdata, OtrlMessageEvent msg_event,
+            ConnContext *context, const char *message,
+            gcry_error_t err)
+    {
+
+    }
+
+    void create_instag(void *opdata, const char *accountname,
+            const char *protocol)
+    {
+
+    }
+
+    void timer_control(void *opdata, unsigned int interval)
+    {
+        Session *session = reinterpret_cast<Session*>(opdata);
+        session->userState()->setInterval(interval);
+    }
+
+    /** OTR ops struct ---------------------------------------------------------------------------- */
+    const OtrlMessageAppOps appOps = {
+        policy,
+        create_privkey,
+        is_logged_in,
+        inject_message,
+        update_context_list,
+        new_fingerprint,
+        write_fingerprints,
+        gone_secure,
+        gone_insecure,
+        still_secure,
+        max_message_size,
+        NULL,           /* account_name */
+        NULL,           /* account_name_free */
+        NULL,           /* received symkey */
+        otr_error_message,
+        otr_error_message_free,
+        resent_msg_prefix,
+        resent_msg_prefix_free,
+        handle_smp_event,
+        handle_msg_event,
+        create_instag,
+        NULL,           /* convert_data */
+        NULL,           /* convert_data_free */
+        timer_control
+    };
+
+} /* anonymous namespace */
+
+
+/** Manager implementation -------------------------------------------------------------------- */
+Manager::Manager(Config *otrConfig)
+    : config(config)
+{
+
+}
+
+SessionPtr Manager::createSession(const HandlerPtr &handler)
+{
+    auto usIt = userStates.find(handler->context().accountId);
+    if(usIt == userStates.end()) {
+        // initiate new userstate
+        OtrlUserState userstate = otrl_userstate_create();
+
+        QString path = config->saveLocation() + handler->context().accountId + QLatin1String("_privkeys");
+        otrl_privkey_read(userstate, path.toLocal8Bit());
+
+        path = config->saveLocation() + handler->context().accountId + QLatin1String("_fingerprints");
+        otrl_privkey_read_fingerprints(userstate, path.toLocal8Bit(), NULL, NULL);
+
+        path = config->saveLocation() + handler->context().accountId + QLatin1String("_instags");
+        otrl_instag_read(userstate, path.toLocal8Bit());
+
+        UserStateBoxPtr usPtr(new UserStateBox(userstate));
+        userStates.insert(handler->context().accountId, usPtr);
+        return SessionPtr(new Session(handler, usPtr.data(), this));
+    } else {
+        return SessionPtr(new Session(handler, usIt->data(), this));
+    }
+}
+
+} /* namespace OTR */
diff --git a/otr-proxy/KTpProxy/pending-curry-operation.h b/otr-proxy/KTpProxy/otr-manager.h
similarity index 65%
copy from otr-proxy/KTpProxy/pending-curry-operation.h
copy to otr-proxy/KTpProxy/otr-manager.h
index 80e3fcc..1d54f90 100644
--- a/otr-proxy/KTpProxy/pending-curry-operation.h
+++ b/otr-proxy/KTpProxy/otr-manager.h
@@ -17,24 +17,39 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#ifndef KTP_PROXY_PENDING_CURRY_OPERATION_HEADER
-#define KTP_PROXY_PENDING_CURRY_OPERATION_HEADER
+#ifndef KTP_PROXY_OTR_MANAGER_HEADER
+#define KTP_PROXY_OTR_MANAGER_HEADER
 
-#include <TelepathyQt/PendingOperation>
+#include "otr-config.h"
+#include "otr-session.h"
+#include "otr-handler.h"
 
-class PendingCurryOperation : public Tp::PendingOperation
+extern "C" {
+#include <libotr/proto.h>
+#include <libotr/message.h>
+#include <libotr/userstate.h>
+}
+
+namespace OTR
 {
-    Q_OBJECT
+    extern const OtrlMessageAppOps appOps;
+
+    class Manager
+    {
+        public:
+            Manager(Config *otrConfig);
+
+            SessionPtr createSession(const HandlerPtr &handler);
 
-    public:
-        PendingCurryOperation(Tp::PendingOperation *op, const Tp::SharedPtr<Tp::RefCounted> &obj);
-        ~PendingCurryOperation();
+            OtrlPolicy getPolicy() const;
+            void setPolicy(OtrlPolicy policy);
 
-    protected:
-        virtual void extract(Tp::PendingOperation *op) = 0;
+        private:
+            Config *config;
+            // TODO - consider clearing states when not in use
+            QMap<QString, UserStateBoxPtr> userStates;
+    };
 
-    private Q_SLOTS:
-        void onFinished(Tp::PendingOperation *op);
-};
+} /* namespace OTR */
 
 #endif
diff --git a/otr-proxy/KTpProxy/types.h b/otr-proxy/KTpProxy/otr-message.h
similarity index 81%
copy from otr-proxy/KTpProxy/types.h
copy to otr-proxy/KTpProxy/otr-message.h
index dfe7ee9..9c79926 100644
--- a/otr-proxy/KTpProxy/types.h
+++ b/otr-proxy/KTpProxy/otr-message.h
@@ -17,17 +17,19 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#ifndef KTP_PROXY_TYPES_HEADER
-#define KTP_PROXY_TYPES_HEADER
+#ifndef KTP_PROXY_OTR_MESSAGE_HEADER
+#define KTP_PROXY_OTR_MESSAGE_HEADER
 
-#include <TelepathyQt/SharedPtr>
+#include <TelepathyQt/Message>
 
-class OtrProxyChannel;
-class ProxyService;
-class ProxyObserver;
+namespace OTR
+{
+    class Message
+    {
 
-typedef Tp::SharedPtr<OtrProxyChannel> OtrProxyChannelPtr;
-typedef Tp::SharedPtr<ProxyService> ProxyServicePtr;
-typedef Tp::SharedPtr<ProxyObserver> ProxyObserverPtr;
+        private:
+            Tp::MessagePartList message;
+    };
+}
 
 #endif
diff --git a/otr-proxy/KTpProxy/main.cpp b/otr-proxy/KTpProxy/otr-session.cpp
similarity index 53%
copy from otr-proxy/KTpProxy/main.cpp
copy to otr-proxy/KTpProxy/otr-session.cpp
index c7b12e0..98bd632 100644
--- a/otr-proxy/KTpProxy/main.cpp
+++ b/otr-proxy/KTpProxy/otr-session.cpp
@@ -17,53 +17,64 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include "proxy-service.h"
-#include "version.h"
-
-#include <KAboutData>
-#include <KCmdLineArgs>
-#include <KApplication>
-#include <KDebug>
-
-#include <QDBusConnection>
-
-#include <TelepathyQt/AbstractAdaptor>
-#include <TelepathyQt/Channel>
-#include <TelepathyQt/Connection>
-#include <TelepathyQt/ClientRegistrar>
-#include <TelepathyQt/TextChannel>
+#include "otr-session.h"
 
+extern "C" {
+#include <libotr/privkey.h>
+#include <libotr/proto.h>
+#include <libotr/message.h>
+#include <libotr/userstate.h>
+}
 
-int main(int argc, char *argv[])
+namespace OTR
 {
-    KAboutData aboutData("ktp-proxy", 0,
-                         ki18n("Channel proxy service"),
-                         KTP_PROXY_VERSION);
+    UserStateBox::UserStateBox(OtrlUserState userState)
+        : us(userState)
+    {
+        uint interval = otrl_message_poll_get_default_interval(us);
+        QObject::connect(&periodicTimer, SIGNAL(timeout()), SLOT(otrlMessagePoll()));
+        periodicTimer.start(interval * 1000);
+    }
 
-    aboutData.addAuthor(ki18n("Marcin Ziemiński"), ki18n("Developer"), "zieminn at gmail.com");
-    aboutData.setProductName("telepathy/ktp-proxy");
-    aboutData.setLicense(KAboutData::License_GPL_V2);
-    aboutData.setProgramIconName(QLatin1String("telepathy-kde"));
+    UserStateBox::~UserStateBox()
+    {
+        otrl_userstate_free(us);
+    }
 
-    KCmdLineArgs::init(argc, argv, &aboutData);
+    void UserStateBox::setInterval(uint interval)
+    {
+        if(interval) {
+            periodicTimer.start(interval * 1000);
+        } else {
+            periodicTimer.stop();
+        }
+    }
 
-    KApplication app(false);
+    void UserStateBox::otrlMessagePoll()
+    {
+        otrl_message_poll(us, 0, 0);
+    }
 
-    Tp::registerTypes();
+    Session::Session(const HandlerPtr &handler, UserStateBox *userstate, Manager *parent)
+        : hd(handler),
+        userstate(userstate),
+        pr(parent)
+    {
+    }
 
-    Tp::DBusError error;
-    QDBusConnection dbusConnection = QDBusConnection::sessionBus();
-    ProxyService ps(dbusConnection);
-    ps.registerService(&error);
+    const HandlerPtr& Session::handler()
+    {
+        return hd;
+    }
 
-    if(error.isValid())
+    UserStateBox* Session::userState()
     {
-        kError() << "Could not register ProxyService
"
-            << "error name: " << error.name() << "
"
-            << "error message: " << error.message();
+        return userstate;
+    }
 
-        return 1;
-    } else {
-        return app.exec();
+    Manager* Session::parent()
+    {
+        return pr;
     }
-}
+
+} /* namespace OTR */
diff --git a/otr-proxy/KTpProxy/otr-session.h b/otr-proxy/KTpProxy/otr-session.h
new file mode 100644
index 0000000..2a46181
--- /dev/null
+++ b/otr-proxy/KTpProxy/otr-session.h
@@ -0,0 +1,88 @@
+/***************************************************************************
+ *   Copyright (C) 2014 by Marcin Ziemiński <zieminn at gmail.com>            *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2.1 of the License, or   *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
+ ***************************************************************************/
+
+#ifndef KTP_PROXY_OTR_SESSION_HEADER
+#define KTP_PROXY_OTR_SESSION_HEADER
+
+#include "otr-message.h"
+#include "otr-handler.h"
+
+#include <QString>
+#include <QTimer>
+
+extern "C" {
+#include <gcrypt.h>
+#include <libotr/userstate.h>
+}
+
+namespace OTR
+{
+    class Manager;
+
+    class UserStateBox : public QObject
+    {
+        Q_OBJECT
+        public:
+            UserStateBox(OtrlUserState userState);
+            ~UserStateBox();
+
+            OtrlUserState userState();
+            /** if zero timer is stopped */
+            void setInterval(uint interval);
+
+        private Q_SLOTS:
+            void otrlMessagePoll();
+
+        private:
+            OtrlUserState us;
+            QTimer periodicTimer;
+    };
+
+    typedef QSharedPointer<UserStateBox> UserStateBoxPtr;
+
+    class Session : public QObject
+    {
+        Q_OBJECT
+
+        public:
+            Session(const HandlerPtr &handler, UserStateBox *userstate, Manager *parent);
+
+            const HandlerPtr& handler();
+            UserStateBox* userState();
+            Manager* parent();
+
+            void startSession();
+            void stopSession();
+            void encrypt();
+            void decrypt();
+            void verifyFingerprint();
+            void initSMPQuery();
+            void initSMPSecret();
+
+        private:
+            HandlerPtr hd;
+            UserStateBox *userstate;
+            Manager *pr;
+    };
+
+    typedef QSharedPointer<Session> SessionPtr;
+
+} /* namespace OTR */
+
+#endif

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list