example/TwitterAuthApp/src/sessionSP.cpp
author cgandhi
Mon, 11 Oct 2010 21:59:54 +0530
changeset 26 83d6a149c755
permissions -rw-r--r--
Submitting following changes - AuthApps for Last.fm and Twitter added API for checking ServiceAuthorization added for SMFCredMgrClient API added for forcefully removing credential details from SMFCredMgr Extra argument checks in SMfClient APIs APIs for service login and logout from SMFClient Redundant members removed from SmfServerSymbian DSM bug fixes Test Apps included
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     1
/**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     2
* Copyright (c) 2010 Sasken Communication Technologies Ltd.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     3
* All rights reserved.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     5
* under the terms of the "{License}"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     6
* which accompanies  this distribution, and is available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     7
* at the URL "{LicenseUrl}".
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     8
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     9
* Initial Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    10
* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    11
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    12
* Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    13
* Siddhartha Chandra, Sasken Communication Technologies Ltd
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    14
* Description:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    15
* class to maintian session & all credential keys.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    16
*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    17
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    18
#include "sessionSP.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    19
#include "requestSP.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    20
#include <qfile.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    21
#include <QTimer>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    22
#include <qdebug.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    23
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    24
#include "keys.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    25
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    26
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    27
// global
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    28
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    29
static const QString kAPIRestURL = "http://api.facebook.com/restserver.php";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    30
static const QString kAPIRestSecureURL = "https://api.facebook.com/restserver.php";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    31
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    32
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    33
static const int kMaxBurstRequests = 3;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    34
static const int kBurstDuration = 2;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    35
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    36
static FBSession* sharedSession = NULL;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    37
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    38
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    39
// Static class functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    40
FBSession* FBSession::session()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    41
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    42
    return sharedSession;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    43
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    44
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    45
void FBSession::setSession(FBSession* aSession)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    46
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    47
    sharedSession = aSession;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    48
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    49
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    50
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    51
FBSession* FBSession::sessionForApplication ( const QString& aAppKey, const QString& aAppSecret, const QString& aSessionProxy)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    52
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    53
    FBSession* session = new FBSession ( aAppKey, aAppSecret, aSessionProxy );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    54
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    55
    return session;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    56
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    57
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    58
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    59
// instance public functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    60
FBSession::FBSession( const QString& aAppKey, const QString& aAppSecret, const QString& aGetSessionProxy ) :
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    61
        iApiKey (aAppKey),
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    62
        iApiSecret ( aAppSecret ),
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    63
        iGetSessionProxy ( aGetSessionProxy ),
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    64
        iRequestBurstCount(0),
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    65
        m_Client(new SmfCredMgrClient(this))	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    66
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    67
    if (!sharedSession)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    68
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    69
        sharedSession = this;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    70
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    71
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    72
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    73
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    74
FBSession::~FBSession()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    75
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    76
	if(m_Client){
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    77
		delete m_Client;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    78
		m_Client = NULL;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    79
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    80
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    81
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    82
const QString& FBSession::apiURL() const
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    83
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    84
    return kBase;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    85
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    86
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    87
const QString& FBSession::apiSecureURL() const
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    88
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    89
    return kAPIRestSecureURL;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    90
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    91
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    92
bool FBSession::isConnected() const
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    93
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    94
    return iSessionKey.length() > 0 ;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    95
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    96
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    97
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    98
void FBSession::beginSession (const QString& aSessionKey, const QString& aSessionSecret, const QDateTime& aExpires )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    99
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   100
	qDebug()<<"Inside FBSession::beginSession()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   101
    iSessionKey = aSessionKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   102
    iSessionSecret = aSessionSecret;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   103
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   104
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   105
    iExpirationDate = aExpires;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   106
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   107
    save();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   108
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   109
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   110
bool FBSession::resume()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   111
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   112
	qDebug()<<"Inside FBSession::resume()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   113
	QString fbCMRegToken = iSettings.value("FBCMRegToken").toString();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   114
	QDateTime fbExpiryTime = iSettings.value("FBExpiryTime").toDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   115
	SmfAuthParams Params;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   116
	if(m_Client->AuthDataSet(fbCMRegToken,fbExpiryTime,Params))
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   117
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   118
		QByteArray accessToken = Params.value("accessToken");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   119
		emit sessionDidLogin( accessToken );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   120
        return true;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   121
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   122
    return false;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   123
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   124
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   125
void FBSession::cancelLogin() {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   126
	qDebug()<<"Inside FBSession::cancelLogin()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   127
    if (!isConnected()) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   128
        emit sessionDidNotLogin();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   129
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   130
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   131
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   132
void FBSession::logout() {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   133
	qDebug()<<"Inside FBSession::logout()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   134
	iExpirationDate = QDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   135
	iSessionKey.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   136
	iSessionSecret.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   137
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   138
	unsave();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   139
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   140
	emit sessionDidLogout();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   141
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   142
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   143
void FBSession::send (FBRequest* aRequest) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   144
	qDebug()<<"Inside FBSession::send()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   145
    performRequest (aRequest, true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   146
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   147
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   148
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   149
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   150
// instance private functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   151
void FBSession::save()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   152
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   153
	qDebug()<<"Inside FBSession::save()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   154
    SmfAuthParams Params;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   155
    Params.insert("ApiKey",kApiKey.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   156
    Params.insert("ConsumerKey",kConsumerKey.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   157
    Params.insert("ConsumerSecret",kConsumerSecret.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   158
    Params.insert("oauth_Token",stroauth_Token.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   159
    Params.insert("oauth_TokenSecret",stroauth_TokenSecret.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   160
    Params.insert("oauth_verifier",stroauth_verifier.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   161
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   162
    QList<QUrl> UrlList;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   163
    UrlList.append(QUrl("https://api.twitter.com/oauth/"));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   164
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   165
    QStringList PluginList;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   166
    PluginList.append(QString("twitter.qtplugin"));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   167
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   168
    QString UID("0xEFE2EF23");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   169
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   170
    //Currently Hardcoded with current time bcoz CM is not handling expiry time as '0' value
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   171
    iExpirationDate = QDateTime::currentDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   172
    iExpirationDate.addYears(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   173
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   174
    QString twCMRegToken = m_Client->StoreAuthData(Params,iExpirationDate,UrlList,PluginList,UID,true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   175
    qDebug()<<"Reg token returned by auth app = "<<twCMRegToken;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   176
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   177
    iSettings.remove("twCMRegToken");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   178
    iSettings.remove("twExpiryTime");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   179
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   180
    if(twCMRegToken.size()){
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   181
    	iSettings.setValue("twCMRegToken", twCMRegToken);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   182
    	iSettings.setValue("twExpiryTime", iExpirationDate);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   183
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   184
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   185
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   186
void FBSession::unsave()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   187
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   188
	qDebug()<<"Inside FBSession::unsave()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   189
	//Delete saved keys from Credential Manager.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   190
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   191
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   192
void FBSession::startFlushTimer()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   193
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   194
	int t = kBurstDuration;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   195
    QTimer::singleShot( t, this, SLOT(requestTimerReady()));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   196
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   197
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   198
void FBSession::enqueueRequest(FBRequest* aRequest)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   199
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   200
    iRequestQueue.append(aRequest);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   201
    startFlushTimer();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   202
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   203
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   204
bool FBSession::performRequest(FBRequest* aRequest, bool aEnqueue) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   205
    // Stagger requests that happen in short bursts to prevent the server from rejecting
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   206
    // them for making too many requests in a short time
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   207
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   208
    int seconds = iLastRequestTime.secsTo( QDateTime::currentDateTime() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   209
	bool burst = seconds && (seconds < kBurstDuration);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   210
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   211
	if (burst && (iRequestBurstCount > kMaxBurstRequests))
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   212
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   213
        if (aEnqueue)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   214
        {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   215
            enqueueRequest(aRequest);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   216
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   217
        return false;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   218
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   219
    else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   220
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   221
        aRequest->connect();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   222
		if (burst) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   223
			iRequestBurstCount++;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   224
		} else {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   225
            iRequestBurstCount = 1;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   226
            iLastRequestTime = aRequest->timeStamp();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   227
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   228
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   229
    return true;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   230
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   231
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   232
void FBSession::flushRequestQueue()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   233
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   234
    while ( iRequestQueue.count() ) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   235
      FBRequest* request = iRequestQueue.at(0);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   236
      if (performRequest(request, false)) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   237
          iRequestQueue.removeAt(0);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   238
      } else {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   239
        startFlushTimer();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   240
        break;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   241
      }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   242
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   243
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   244
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   245
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   246
// instance provate slots
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   247
void FBSession::requestTimerReady()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   248
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   249
    flushRequestQueue();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   250
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   251
void FBSession::send_req (QString uri,FBRequest* aRequest)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   252
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   253
		aRequest->connect_req(uri);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   254
	}