--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclientsymbiansession.h Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ */
+
+#ifndef SMFCLIENTSYMBIANSESSION_H_
+#define SMFCLIENTSYMBIANSESSION_H_
+
+#include <e32cmn.h>
+#include <QByteArray>
+#include <QString>
+#include <QVariant>
+#include <QList>
+#include <smfglobal.h>
+
+/**
+ * Corresponds to client session in Symbian
+ */
+class RSmfClientSymbianSession : public RSessionBase
+{
+public:
+ /**
+ * Constructs
+ */
+ RSmfClientSymbianSession();
+
+ /**
+ * Creates the server process if not already running and creates session
+ * @return Error code while creating server process/ creating session
+ */
+ TInt connectToServer();
+
+ /**
+ * Version
+ */
+ TVersion Version() const{return TVersion(0,0,1);};
+
+ void Close(){};
+
+ bool isConnected();
+
+ bool connected;
+
+ /**
+ * Calls SendReceive with requestType opcode and packaged data
+ * depending on requestType
+ */
+ TInt sendRequest(SmfRequestTypeID requestType);
+
+ /**
+ * Sends sync request to the Smf server - overloaded
+ */
+ TPtr8 sendSyncRequest(QByteArray& aSerializedData,
+ QString aInterfaceName,
+ SmfRequestTypeID aRequestType,
+ TInt maxSize);
+
+ /**
+ * Sends DSM related sync request to the Smf server
+ */
+ TPtr8 sendDSMSyncRequest(SmfRequestTypeID aRequestType,
+ QByteArray& aSerializedData,
+ SmfError aErr, TInt maxSize = 0 );
+
+ /**
+ * Sends synchronous requests to the Smf server
+ */
+ TPtr8 sendSyncRequest( QString aInterfaceName,
+ SmfRequestTypeID aRequestType,
+ TInt maxSize, QByteArray& aSerializedData );
+
+ /**
+ * Sends async request to the Smf server
+ * @param aSerializedData Serialized data to be sent to the server.
+ * Consists of provider Info(SmfProvider*)+ Other common class data
+ * (when applicable)-serialized
+ * @param aInterfaceName Name of the interface
+ * @param aStatus TRequestStatus
+ * @param maxSize Size of the data to be allocated. This info is sent to the server
+ */
+ void sendAsyncRequest(QByteArray& aSerializedData,
+ QString aInterfaceName, SmfRequestTypeID aRequestType,
+ TRequestStatus& aStatus, TInt aMaxAllocation);
+
+ /**
+ * Returns data,used to return back the data received from server
+ */
+ TPtr8 getData()
+ {
+ return iDataPtr8;
+ }
+
+ TInt getLastRequest()
+ {
+ return iLastRequest;
+ }
+ TPtr8 iDataPtr8;
+ TPtr iDataPtr16;
+private:
+ /**
+ * Following are to form message body.
+ */
+ QByteArray iBaseProvider;
+ TBuf8<525> iProviderSymbian;
+ TBuf<125> iInterfaceSymbian;
+ TBuf8<125> iInterfaceSymbian8;
+ QString iInterfaceName;
+ HBufC* iIntfNameBuffer;
+ TPtr iIntfNamePtr;
+ HBufC* iBuffer16;
+ TPtr iPtrToXtraInfo;
+ TPtr iPtrProvider;
+ QByteArray iInterfaceNamebyte;
+ TBuf<100> iDSMErr;
+ HBufC8* iProviderBuf8;
+ TPtr8 iPtrProvider8;
+ HBufC8* iIntfNameBuffer8;
+ TPtr8 iIntfNamePtr8;
+ HBufC8* iBuffer8;
+ HBufC8* iXtraInfoBuf8;
+ TPtr8 iPtrToXtraInfo8;
+ HBufC8* iSlot0Buffer8;
+ TPtr8 iPtr8ToSlot0;
+ TInt iMaxMessageSize;
+ TInt iMaxSize;
+ /**
+ * Last request opcode
+ */
+ TInt iLastRequest;
+
+private:
+ QList<QVariant*> result;
+
+ };
+
+#endif /* SMFCLIENTSYMBIANSESSION_H_ */