os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/server/controller/include/cusbhostmslogicalunit.h
First public contribution.
1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
21 #ifndef CUSBHOSTMSLOGICALUNIT_H
22 #define CUSBHOSTMSLOGICALUNIT_H
27 class THostMassStorageConfig;
31 This class represents a Logical Unit supporting SCSI Mass Storage Class. The
32 class provides inteface methods to read, write and get the media capacity of the
33 Logical Unit. Each instance is identified by the LUN.
35 class CUsbHostMsLogicalUnit : public CBase
38 static CUsbHostMsLogicalUnit* NewL(TLun aLun);
39 ~CUsbHostMsLogicalUnit();
42 CUsbHostMsLogicalUnit(TLun aLun);
47 void ReadL(const RMessage2& aMessage);
48 void WriteL(const RMessage2& aMessage);
49 void EraseL(const RMessage2& aMessage);
50 void CapsL(const RMessage2& aMessage);
52 void NotifyChange(const RMessage2& aMessage);
53 void ForceCompleteNotifyChangeL();
54 void CancelChangeNotifierL();
56 void ReadyToSuspend();
58 TBool IsReadyToSuspend();
59 void CancelReadyToSuspend();
63 void DoLunReadyCheckL();
65 TInt InitialiseProtocolL(TLun aLun,
66 THostMassStorageConfig& aConfig,
67 MTransport& aTransport);
72 TInt CheckPosition(const TReadWrite& aReadWrite);
74 /** The Protocol interface (Owned by this class) */
78 /** The Size (updated by CapsL) */
81 TBool iSuspendRequest;
92 inline TLun CUsbHostMsLogicalUnit::Lun() const
97 #endif // CUSBHOSTMSLOGICALUNIT_H