libsolidcontrol
bluetoothsecurity.h
Go to the documentation of this file.00001 /* This file is part of the KDE project 00002 Copyright (C) 2006 Will Stephenson <wstephenson@kde.org> 00003 Copyright (C) 2007 Daniel Gollub <dgollub@suse.de> 00004 Copyright (C) 2007 Juan González <jaguilera@opsiland.info> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License version 2 as published by the Free Software Foundation. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public License 00016 along with this library; see the file COPYING.LIB. If not, write to 00017 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00018 Boston, MA 02110-1301, USA. 00019 00020 */ 00021 00022 #ifndef SOLID_CONTROL_BLUETOOTHSECURITY_H 00023 #define SOLID_CONTROL_BLUETOOTHSECURITY_H 00024 00025 #include <QtCore/QObject> 00026 #include <QtCore/QPair> 00027 00028 #include "singletondefs.h" 00029 #include "solid_control_export.h" 00030 00031 namespace Solid 00032 { 00033 namespace Control 00034 { 00040 class SOLIDCONTROL_EXPORT BluetoothPasskeyAgent : public QObject 00041 { 00042 Q_OBJECT 00043 Q_PROPERTY(QString remote READ remote) 00044 public: 00050 BluetoothPasskeyAgent(QObject *parent = 0,const QString &remote=""); 00051 //FIXME This method shouldn't be virtual, but the linker complains (and halts) if it isn't 00056 virtual QString remote(); 00057 public Q_SLOTS: 00064 virtual QString requestPasskey(const QString &ubi, bool isNumeric); 00072 virtual bool confirmPasskey(const QString &ubi, const QString &passkey); 00079 virtual void displayPasskey(const QString &ubi, const QString &passkey); 00084 virtual void keypress(const QString &ubi); 00089 virtual void completedAuthentication(const QString &ubi); 00094 virtual void cancelAuthentication(const QString &ubi); 00095 private: 00097 QString m_remote; 00098 }; 00099 00105 class SOLIDCONTROL_EXPORT BluetoothAuthorizationAgent: public QObject 00106 { 00107 Q_OBJECT 00108 public: 00113 BluetoothAuthorizationAgent(QObject *parent); 00114 public Q_SLOTS: 00122 virtual bool authorize(const QString &localUbi,const QString &remoteAddress,const QString& serviceUuid)=0; 00129 virtual void cancel(const QString &localUbi,const QString &remoteAddress,const QString& serviceUuid)=0; 00130 }; 00131 00132 class BluetoothSecurityPrivate; 00137 class SOLIDCONTROL_EXPORT BluetoothSecurity : public QObject 00138 { 00139 Q_OBJECT 00140 public: 00144 BluetoothSecurity(); 00145 00151 explicit BluetoothSecurity(QObject *backendObject); 00152 00156 ~BluetoothSecurity(); 00157 00164 BluetoothSecurity &operator=(const BluetoothSecurity &object); 00165 public Q_SLOTS: 00170 void setPasskeyAgent(Solid::Control::BluetoothPasskeyAgent *agent); 00175 void setAuthorizationAgent(Solid::Control::BluetoothAuthorizationAgent *agent); 00176 private: 00177 Q_PRIVATE_SLOT(d, void _k_destroyed(QObject *)) 00178 00179 BluetoothSecurityPrivate * const d; 00180 }; 00181 } //Control 00182 } //Solid 00183 00184 #endif