--- a/activityfw/activitydatabase/hsactivitydbclient/s60/src/hsactivitydbclient_p.cpp Fri Apr 16 15:16:09 2010 +0300
+++ b/activityfw/activitydatabase/hsactivitydbclient/s60/src/hsactivitydbclient_p.cpp Mon May 03 12:48:45 2010 +0300
@@ -19,12 +19,14 @@
#include "hsactivitydbasyncrequest_p.h"
#include "hsactivityglobals.h"
#include "hsserializer.h"
+#include <qvariant.h>
+
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
-HsActivityDbClientPrivate::HsActivityDbClientPrivate(HsActivityDbAsyncRequestObserver& observer)
+HsActivityDbClientPrivate::HsActivityDbClientPrivate(HsActivityDbAsyncRequestObserver &observer)
{
mAsyncDataHandler = HsActivityDbAsyncRequestPrivate::NewL(observer, *this);
}
@@ -55,8 +57,8 @@
//
int HsActivityDbClientPrivate::addActivity(const QVariantHash &activity)
{
- TRAPD( errNo, execSimpleRequestL(AddActivity, activity);)
- return errNo;
+ TRAPD(errNo, execSimpleRequestL(AddActivity, activity);)
+ return errNo;
}
// -----------------------------------------------------------------------------
@@ -65,8 +67,8 @@
//
int HsActivityDbClientPrivate::updateActivity(const QVariantHash &activity)
{
- TRAPD( errNo, execSimpleRequestL(UpdateActivity, activity);)
- return errNo;
+ TRAPD(errNo, execSimpleRequestL(UpdateActivity, activity);)
+ return errNo;
}
// -----------------------------------------------------------------------------
@@ -75,8 +77,8 @@
//
int HsActivityDbClientPrivate::removeActivity(const QVariantHash &activity)
{
- TRAPD( errNo, execSimpleRequestL(RemoveActivity, activity);)
- return errNo;
+ TRAPD(errNo, execSimpleRequestL(RemoveActivity, activity);)
+ return errNo;
}
// -----------------------------------------------------------------------------
@@ -85,8 +87,8 @@
//
int HsActivityDbClientPrivate::removeApplicationActivities(const QVariantHash &activity)
{
- TRAPD( errNo, execSimpleRequestL(RemoveApplicationActivities, activity);)
- return errNo;
+ TRAPD(errNo, execSimpleRequestL(RemoveApplicationActivities, activity);)
+ return errNo;
}
// -----------------------------------------------------------------------------
@@ -103,8 +105,8 @@
//
// -----------------------------------------------------------------------------
//
-int HsActivityDbClientPrivate::applicationActivities(QList<QVariantHash>& result,
- const QVariantHash & condition)
+int HsActivityDbClientPrivate::applicationActivities(QList<QVariantHash>& result,
+ const QVariantHash &condition)
{
TRAPD(errNo, applicationActivitiesL(result, condition));
return errNo;
@@ -117,7 +119,7 @@
//
int HsActivityDbClientPrivate::waitActivity(const QVariantHash &activity)
{
- TRAPD( errNo, waitActivityL(activity);)
+ TRAPD(errNo, waitActivityL(activity);)
return errNo;
}
@@ -127,7 +129,7 @@
//
int HsActivityDbClientPrivate::launchActivity(const QVariantHash &activity)
{
- TRAPD( errNo, execSimpleRequestL(LaunchActivity, activity);)
+ TRAPD(errNo, execSimpleRequestL(LaunchActivity, activity);)
return errNo;
}
@@ -148,18 +150,18 @@
{
RProcess server;
const TUidType uid(KNullUid, KNullUid, KActivityServerUid);
- User::LeaveIfError(server.Create( KActivityServerName, KNullDesC, uid));
+ User::LeaveIfError(server.Create(KActivityServerName, KNullDesC, uid));
TRequestStatus stat;
- server.Rendezvous( stat );
- if ( stat != KRequestPending ) {
+ server.Rendezvous(stat);
+ if (stat != KRequestPending) {
server.Kill(0);
} else {
server.Resume();
}
User::WaitForRequest(stat);
- int errNo = (EExitPanic == server.ExitType()) ?
+ int errNo = (EExitPanic == server.ExitType()) ?
KErrGeneral : stat.Int();
- if(KErrCancel == errNo) {
+ if (KErrCancel == errNo) {
errNo = KErrNone;
}
server.Close();
@@ -174,20 +176,21 @@
{
const int asyncMessageSlots(4);
const int maxRetry(4);
-
+
TInt retry = maxRetry;
TInt errNo(KErrNone);
do {
- errNo = CreateSession( KActivityServerName, TVersion( 0, 0, 0 ), asyncMessageSlots );
- if( KErrNotFound != errNo && KErrServerTerminated != errNo) {
+ errNo = CreateSession(KActivityServerName, TVersion(0, 0, 0), asyncMessageSlots);
+ if (KErrNotFound != errNo && KErrServerTerminated != errNo) {
retry =0;
} else {
TRAP(errNo, startServerL());
if (KErrNone != errNo && KErrAlreadyExists != errNo) {
retry =0;
+ errNo = CreateSession(KActivityServerName, TVersion(0, 0, 0), asyncMessageSlots);
}
}
- } while(--retry > 0);
+ } while (--retry > 0);
User::LeaveIfError(errNo);
}
@@ -209,7 +212,7 @@
//
// -----------------------------------------------------------------------------
//
-void HsActivityDbClientPrivate::requestedActivityNameL(QString& result,
+void HsActivityDbClientPrivate::requestedActivityNameL(QString &result,
const QVariantHash &activity)
{
RBuf8 data;
@@ -218,11 +221,11 @@
data.CreateL(256);
data << activity;
User::LeaveIfError(SendReceive(RequestedActivityName, TIpcArgs(&data,&sizeBuf)));
- if(sizeBuf() > data.MaxSize()) {
- data.ReAlloc(sizeBuf());
+ if (sizeBuf() > data.MaxSize()) {
+ data.ReAlloc(sizeBuf());
}
User::LeaveIfError(SendReceive(GetData, TIpcArgs(&data)));
- result = QString::fromAscii(reinterpret_cast<const char*>(data.Ptr()),
+ result = QString::fromAscii(reinterpret_cast<const char *>(data.Ptr()),
data.Length());
CleanupStack::PopAndDestroy(&data);
}
@@ -238,8 +241,8 @@
CleanupClosePushL(data);
data.CreateL(256);
User::LeaveIfError(SendReceive(Activities, TIpcArgs(&data, &sizeBuf)));
- if(sizeBuf() > data.MaxSize()) {
- data.ReAlloc(sizeBuf());
+ if (sizeBuf() > data.MaxSize()) {
+ data.ReAlloc(sizeBuf());
}
User::LeaveIfError(SendReceive(GetData, TIpcArgs(&data)));
result << data;
@@ -250,7 +253,7 @@
//
// -----------------------------------------------------------------------------
//
-void HsActivityDbClientPrivate::applicationActivitiesL(QList<QVariantHash>& result,
+void HsActivityDbClientPrivate::applicationActivitiesL(QList<QVariantHash>& result,
const QVariantHash & condition)
{
RBuf8 data;
@@ -259,8 +262,8 @@
data.CreateL(256);
data << condition;
User::LeaveIfError(SendReceive(ApplicationActivities, TIpcArgs(&data, &sizeBuf)));
- if(sizeBuf() > data.MaxSize()) {
- data.ReAlloc(sizeBuf());
+ if (sizeBuf() > data.MaxSize()) {
+ data.ReAlloc(sizeBuf());
}
User::LeaveIfError(SendReceive(GetData, TIpcArgs(&data)));
result << data;
@@ -273,7 +276,7 @@
//
void HsActivityDbClientPrivate::waitActivityL(const QVariantHash &activity)
{
- if(mAsyncDataHandler->IsActive()) {
+ if (mAsyncDataHandler->IsActive()) {
User::Leave(KErrServerBusy);
} else {
mAsyncDataHandler->waitActivity(activity);
@@ -284,7 +287,7 @@
//
// -----------------------------------------------------------------------------
//
-void HsActivityDbClientPrivate::getData(RBuf8& data)
+void HsActivityDbClientPrivate::getData(RBuf8 &data)
{
SendReceive(GetData, TIpcArgs(&data));
}
@@ -299,3 +302,26 @@
{
SendReceive(func, data, status);
}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+int HsActivityDbClientPrivate::getThumbnail(QPixmap &dst, const QString & src)
+{
+ RBuf8 data;
+ QVariantHash thumbnailRequest;
+ thumbnailRequest.insert(ActivityScreenshotKeyword, src);
+ TPckgBuf<int> sizeBuf(0);
+ CleanupClosePushL(data);
+ data.CreateL(256);
+ data << thumbnailRequest;
+ User::LeaveIfError(SendReceive(GetThumbnail, TIpcArgs(&data, &sizeBuf)));
+ if (sizeBuf() > data.MaxSize()) {
+ data.ReAlloc(sizeBuf());
+ }
+ User::LeaveIfError(SendReceive(GetData, TIpcArgs(&data)));
+ dst << data;
+ CleanupStack::PopAndDestroy(&data);
+ return 0;
+}