os/ossrv/genericopenlibs/openenvcore/backend/inc/ReadRequestHandler.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     1 /*
     2 * Copyright (c) 2006-2009 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:
    15 * Name        : readrequesthandler.h
    16 * Part of     : stdio server
    17 * To handle request for read
    18 * 
    19 *
    20 */
    21 
    22 
    23  
    24 
    25 
    26 #ifndef _READREQUEST_H_
    27 #define _READREQUEST_H_
    28 
    29 #include<e32base.h>//CActive
    30 
    31 //Enumarations for Polling
    32 //duplicate of fdesc.h
    33 enum TPollMode
    34     {
    35     EReadyForReading = 1,
    36     EReadyForWriting = 2,
    37     EAnyException = 4
    38     };
    39 
    40 class CStreamBase;
    41 	
    42 //-----------------------------------------------------------------------
    43 //Class name: 	TReadRequest
    44 //Description: 	Request object created for every read request from a
    45 //				client. These are queued as a singly linked list.
    46 //-----------------------------------------------------------------------
    47 
    48 class TReadRequest
    49 	{
    50 public:
    51 	inline TReadRequest(const RMessage2&);
    52 	const RMessage2 iMessage2;
    53 	
    54 	TSglQueLink   iLink;
    55 	};
    56 
    57 
    58 
    59 //-----------------------------------------------------------------------
    60 //Class name: 	CReadRequestHandler
    61 //Description: 	Request Handler class created for Read media. This 
    62 //				Class is an active object and will handle all read
    63 //				requests in the form of RReadRequest objects.
    64 //-----------------------------------------------------------------------
    65 
    66 class CReadRequestHandler : public CActive
    67 	{
    68 public:
    69 	static CReadRequestHandler* NewL(CStreamBase* aConsoleRead);
    70 	~CReadRequestHandler();
    71 	void RunL();
    72 	void ServiceL(const RMessage2& aMessage2);
    73 	void NotifyActivityL(const RMessage2& aMessage2);
    74 	void CancelNotify();
    75 	void DoCancel();
    76 	
    77 private:
    78 	CReadRequestHandler();
    79 	CReadRequestHandler(CStreamBase* aConsoleRead);
    80 	void Complete(const RMessage2 &aMessage);
    81 	TSglQue<TReadRequest> iQueue; 
    82 	CStreamBase* iReadStream;
    83 	TInt iNotifyHandle;
    84 	TPtr8 iPtr;
    85 	};
    86 	
    87 #endif //_READREQUEST_H_
    88 	 
    89 
    90