2015-07-05 14:23:53 +01:00
/**
* Copyright 2015 Vineet Garg < grg . vineet @ 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 of
* the License or ( at your option ) version 3 or any later version
* accepted by the membership of KDE e . V . ( or its successor approved
* by the membership of KDE e . V . ) , which shall act as a proxy
* defined in Section 14 of version 3 of the license .
*
* 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 , see < http : //www.gnu.org/licenses/>.
*/
# ifndef KDECONNECT_PAIRINGHANDLER_H
# define KDECONNECT_PAIRINGHANDLER_H
2015-07-25 12:45:19 +01:00
# include "networkpackage.h"
# include "devicelink.h"
2015-07-05 14:23:53 +01:00
2015-07-27 16:28:58 +01:00
# include <QTimer>
2015-08-11 04:34:02 +01:00
/*
* This class separates the pairing interface for each type of link .
* Since different links can pair via different methods , like for LanLink certificate and public key should be shared ,
* for Bluetooth link they should be paired via bluetooth etc .
* Each " Device " instance maintains a hash map for these pairing handlers so that there can be single pairing handler per
* per link type per device .
* Pairing handler keeps information about device , latest link , and pair status of the link
* During first pairing process , the pairing process is nearly same as old process .
* After that if any one of the link is paired , then we can say that device is paired , so new link will pair automatically
*/
2015-12-01 18:45:14 +00:00
class KDECONNECTCORE_EXPORT PairingHandler : public QObject
2015-07-25 12:45:19 +01:00
{
Q_OBJECT
2015-07-27 16:28:58 +01:00
2015-11-30 18:36:01 +00:00
public :
2015-12-17 13:54:24 +00:00
PairingHandler ( DeviceLink * parent ) ;
2015-07-05 14:23:53 +01:00
virtual ~ PairingHandler ( ) { }
2015-12-01 18:45:14 +00:00
DeviceLink * deviceLink ( ) const ;
2015-12-01 15:25:34 +00:00
void setDeviceLink ( DeviceLink * dl ) ;
2015-07-27 16:28:58 +01:00
2015-07-14 13:04:04 +01:00
virtual void createPairPackage ( NetworkPackage & np ) = 0 ;
2015-07-27 16:28:58 +01:00
virtual void packageReceived ( const NetworkPackage & np ) = 0 ;
2015-07-25 12:45:19 +01:00
virtual void unpair ( ) = 0 ;
public Q_SLOTS :
2015-12-01 18:45:14 +00:00
virtual bool requestPairing ( ) = 0 ;
virtual bool acceptPairing ( ) = 0 ;
virtual void rejectPairing ( ) = 0 ;
2015-07-27 16:28:58 +01:00
2015-11-30 18:36:01 +00:00
Q_SIGNALS :
2015-12-01 18:45:14 +00:00
void pairingError ( const QString & errorMessage ) ;
2015-11-30 18:36:01 +00:00
2015-07-27 16:28:58 +01:00
private :
2015-11-30 18:36:01 +00:00
DeviceLink * m_deviceLink ; // We keep the latest link here, if this is destroyed without new link, linkDestroyed is emitted and device will destroy pairing handler
2015-07-05 14:23:53 +01:00
} ;
# endif //KDECONNECT_PAIRINGHANDLER_H