00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00028 #ifndef INTERFACE_H
00029 #define INTERFACE_H
00030
00031 #include <QObject>
00032 #include <QMultiMap>
00033
00034 #include <QtCrypto>
00035
00036 #include "qoauth_global.h"
00037 #include "qoauth_namespace.h"
00038
00039
00040 namespace QOAuth {
00041
00042 class InterfacePrivate;
00043
00044 class QOAUTH_EXPORT Interface : public QObject
00045 {
00046 Q_OBJECT
00047
00048 Q_PROPERTY( QByteArray consumerKey READ consumerKey WRITE setConsumerKey )
00049 Q_PROPERTY( QByteArray consumerSecret READ consumerSecret WRITE setConsumerSecret )
00050 Q_PROPERTY( uint requestTimeout READ requestTimeout WRITE setRequestTimeout )
00051 Q_PROPERTY( int error READ error )
00052
00053 public:
00054 Interface( QObject *parent = 0 );
00055 virtual ~Interface();
00056
00057 QByteArray consumerKey() const;
00058 void setConsumerKey( const QByteArray &consumerKey );
00059
00060 QByteArray consumerSecret() const;
00061 void setConsumerSecret( const QByteArray &consumerSecret );
00062
00063 uint requestTimeout() const;
00064 void setRequestTimeout( uint msec );
00065
00066 int error() const;
00067
00068 bool setRSAPrivateKey( const QString &key,
00069 const QCA::SecureArray &passphrase = QCA::SecureArray() );
00070 bool setRSAPrivateKeyFromFile( const QString &filename,
00071 const QCA::SecureArray &passphrase = QCA::SecureArray() );
00072
00073
00074 ParamMap requestToken( const QString &requestUrl, HttpMethod httpMethod,
00075 SignatureMethod signatureMethod = HMAC_SHA1, const ParamMap ¶ms = ParamMap() );
00076
00077 ParamMap accessToken( const QString &requestUrl, HttpMethod httpMethod, const QByteArray &token,
00078 const QByteArray &tokenSecret, SignatureMethod signatureMethod = HMAC_SHA1,
00079 const ParamMap ¶ms = ParamMap() );
00080
00081 QByteArray createParametersString( const QString &requestUrl, HttpMethod httpMethod,
00082 const QByteArray &token, const QByteArray &tokenSecret,
00083 SignatureMethod signatureMethod, const ParamMap ¶ms, ParsingMode mode );
00084
00085 QByteArray inlineParameters( const ParamMap ¶ms, ParsingMode mode = ParseForRequestContent );
00086
00087
00088
00089 protected:
00090 InterfacePrivate * const d_ptr;
00091
00092 private:
00093 Q_DISABLE_COPY(Interface)
00094 Q_DECLARE_PRIVATE(Interface)
00095
00096 #ifdef UNIT_TEST
00097 friend class Ut_Interface;
00098 friend class Ft_Interface;
00099 #endif
00100 };
00101
00102 }
00103
00104 #endif // INTERFACE_H