voicerecorder/NewServiceSrc/RNewFileServiceClient.h
branchRCL_3
changeset 21 c6bafb5162d8
parent 0 845549f293a7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/voicerecorder/NewServiceSrc/RNewFileServiceClient.h	Wed Sep 01 12:29:14 2010 +0100
@@ -0,0 +1,114 @@
+/*
+* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Service implementation class
+*
+*/
+
+
+
+#ifndef RNEWFILESERVICECLIENT_H
+#define RNEWFILESERVICECLIENT_H
+
+//  INCLUDES
+#include <AknServerApp.h>
+#include <e32base.h>
+#include <f32file.h>
+#include <badesca.h>
+#include <NewFileService.hrh>
+
+// FORWARD DECLARATIONS
+class CNewFileServiceServerObserver;
+class CNewFileServiceClient;
+
+
+class MNewFileServiceServerObserver
+	{
+	public: // New functions
+
+		/**
+		* This is a callback function which is called when a IHF mode changes.
+		* User must derive his class from MVRIHFObserver
+		* and implement this method if he is to use notify services.
+		*/
+		virtual void ServerRequestReady( TInt aError ) = 0;
+    };
+
+/**
+*  Class that implements the actual client-server communication
+*
+*  @lib NewService.lib
+*  @since Series 60 3.0
+*/
+class RNewFileServiceClient : public RAknAppServiceBase,
+    public MNewFileServiceServerObserver
+    {
+
+   public:  // Constructors and destructor
+
+        /**
+        * C++ default constructor.
+        */
+        RNewFileServiceClient();
+
+        /**
+        * Destructor.
+        */
+        virtual ~RNewFileServiceClient();
+
+    public: // New functions
+
+        /**
+        * Handles the communication between server application.
+        * After this synchronic operation the new file service has completed
+        * and the new file is available for the client
+        * @since Series 60 3.0
+        * @param aFile File handle to media file
+        * @param aGenericParams Parameters passed to server
+        * @param aType Type of the media file
+        * @param aMultipleFiles ETrue if multiple files can be created
+        * @return Was the creation succesful
+        */
+        TBool NewFileL( RFile& aFile, TDesC8* aGenericParams, TNewServiceFileType aType );
+        TBool NewFileL( CDesCArray& aFilenames, TDesC8* aGenericParams, TNewServiceFileType aType, TBool aMultipleFiles );
+
+        void SetFileServiceClient(CNewFileServiceClient*);
+        
+        CNewFileServiceClient* iNewFileServiceClient;
+        
+        TInt iError;
+
+    public: // Functions from base classes
+
+        /**
+        * Returns the Uid of the service
+        * @since Series 60 3.0
+        */
+        TUid ServiceUid() const;
+
+        /**
+        * From MNewFileServiceServerObserver
+        */
+        void ServerRequestReady( TInt aError );
+
+    private:
+		// Wait object used to synchronise asynchronic server request
+        CActiveSchedulerWait iWait;
+
+		// Active object observing server request completion. Owned.
+        CNewFileServiceServerObserver* iObserver;
+     };
+
+#endif      // RNEWFILESERVICECLIENT_H
+
+// End of File