wmdrm/wmdrmengine/wmdrmfileserver/server/inc/wmdrmfileserversession.h
changeset 0 95b198f216e5
equal deleted inserted replaced
-1:000000000000 0:95b198f216e5
       
     1 /*
       
     2 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Server definitions
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef __WMDRMFILESERVERSESSION_H
       
    20 #define __WMDRMFILESERVERSESSION_H
       
    21 
       
    22 #include <e32base.h>
       
    23 #include <f32file.h>
       
    24 #include "wmdrmfileserver.h"
       
    25 
       
    26 class CWmDrmFileServerSession : public CSession2
       
    27 	{
       
    28 public:
       
    29 	CWmDrmFileServerSession();
       
    30 
       
    31     /* Create a file
       
    32      *
       
    33      * @param aMessage  IPC message (file name)
       
    34      * @return KErrNone if successful, KErrArgument if the file name is not valid,
       
    35      *         KErrDiskFull if system drive doesn't have enough free space
       
    36      */
       
    37 	TInt CreateL( const RMessage2& aMessage );
       
    38 
       
    39     /* Open a file
       
    40      *
       
    41      * @param aMessage  IPC message (file name)
       
    42      * @return  KErrNone if successful, KErrNotFound if the file does not exist,
       
    43      *          KErrArgument if the file name is not valid
       
    44      */
       
    45     TInt OpenL( const RMessage2& aMessage );
       
    46 
       
    47     /* Close a file
       
    48      *
       
    49      * @param aMessage  IPC message (not used)
       
    50      * @return KErrNone
       
    51      */
       
    52     TInt CloseFileL( const RMessage2& aMessage );
       
    53 
       
    54     /* Read the file content into a buffer
       
    55      *
       
    56      * @param aMessage  IPC message (output buffer)
       
    57      * @return  KErrNone if successful, KErrNotReady if the file is not open,
       
    58      *          KErrBadDescriptor if not enough space is available in the buffer.
       
    59      */
       
    60     TInt ReadL( const RMessage2& aMessage );
       
    61 
       
    62     /* Write the file content into a buffer
       
    63      *
       
    64      * @param aMessage  IPC message (input buffer)
       
    65      * @return  KErrNone if successful, KErrNotReady if the file is not open,
       
    66      *          KErrDiskFull if system drive doesn't have enough free space
       
    67      */
       
    68     TInt WriteL( const RMessage2& aMessage );
       
    69 
       
    70     /* Delete a file
       
    71      *
       
    72      * @param aMessage  IPC message (file name)
       
    73      * @return  KErrNone if successful, KErrArgument if the file name is not valid
       
    74      */
       
    75     TInt DeleteL( const RMessage2& aMessage );
       
    76 
       
    77     /* Return the size of a file
       
    78      *
       
    79      * @param aMessage  IPC message (output parameter for the size)
       
    80      * @return KErrNone if successful, KErrNotReady if the file is not open
       
    81      */
       
    82     TInt SizeL( const RMessage2& aMessage );
       
    83 
       
    84     /* Checks whether a file is open for this session
       
    85      *
       
    86      * @param aMessage  IPC message (not used)
       
    87      * @return  ETrue if a file is open, EFalse otherwise
       
    88      */
       
    89     TInt IsOpenL( const RMessage2& aMessage );
       
    90 
       
    91     /* Creates a full file path
       
    92      *
       
    93      * @param aMessage  IPC message (path, flag indicating whether the path should be
       
    94      *                  created in case it doesn't exist)
       
    95      * @return KErrNone if successful, KErrArgument if the file name is not valid
       
    96      *         KErrDiskFull if system drive doesn't have enough free space
       
    97      */
       
    98     TInt MkDirAllL( const RMessage2& aMessage );
       
    99 
       
   100     /* Remove a complete path including contents
       
   101      *
       
   102      * @param aMessage  IPC message (path to remove)
       
   103      * @return  KErrNone if successful, KErrArgument if the file name is not valid
       
   104      */
       
   105     TInt RmDirAllL( const RMessage2& aMessage );
       
   106 
       
   107     /* Remove a non-empty directory
       
   108      *
       
   109      * @param aMessage  IPC message (directory name)
       
   110      * @return  KErrNone if successful, KErrArgument if the file name is not valid
       
   111      */
       
   112     TInt RmDirL( const RMessage2& aMessage );
       
   113     
       
   114     /* Update secure time on terminal
       
   115      *
       
   116      * @param aMessage  IPC message ( TTime, TTime )
       
   117      * @return  KErrNone if successful
       
   118      */
       
   119     TInt UpdateSecureTimeL( const RMessage2& aMessage );
       
   120 
       
   121     /* Delete all rights files
       
   122      *
       
   123      * @param aMessage Not used
       
   124      * @return  KErrNone if successful
       
   125      */
       
   126     TInt DeleteRightsL( const RMessage2& aMessage );	
       
   127     
       
   128 private:
       
   129     /* Desctructor, closes the file
       
   130      */
       
   131 	~CWmDrmFileServerSession();
       
   132     
       
   133     /* Returns a reference to the owning server
       
   134      * @return  File server reference
       
   135      */
       
   136 	inline CWmDrmFileServer& Server();
       
   137 
       
   138     /* Main service function
       
   139      *
       
   140      * @param aMessage  IPC message
       
   141      */
       
   142 	void ServiceL( const RMessage2& aMessage );
       
   143     
       
   144     /* Service error handling function, panics the client if necessary.
       
   145      *
       
   146      * @param aMessage  IPC message
       
   147      * @param TInt      Error code to handle
       
   148      */
       
   149 	void ServiceError( const RMessage2& aMessage, TInt aError );
       
   150 
       
   151     // Handle to the currently opened file
       
   152     RFile iFile;
       
   153 	};
       
   154 
       
   155 #endif