--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/dataport/dataport_csy/inc/dppif.h Fri Nov 06 17:28:23 2009 +0000
@@ -0,0 +1,189 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+*
+*/
+
+
+
+#ifndef DPPIF_H
+#define DPPIF_H
+
+// INCLUDES
+#include "dpobserver.h" // cdpsubject is defined here
+
+// LOCAL CONSTANTS
+// none
+
+// DATA TYPES
+// none
+
+// FORWARD DECLARATIONS
+// none
+
+// CLASS DECLARATION
+
+/**
+* CDpPif pipe interface (PIF) controls pipe state.
+* CDpPif opens and closes the pipe, and handles pipe state related
+* PEP messages from message interface (MIF). CDpPif is also used
+* to send pipe flow control change indication.
+*/
+class CDpPif : public CActive
+ {
+
+ public: // Enumerations
+
+ enum TDpPipeState
+ {
+ EDpPipeDisabled = 0,
+ EDpPipeEnabled,
+ EDpPipeDisconnected
+ };
+
+ enum TDpPifState
+ {
+ EDpPifInitial,
+ EDpPifReady,
+ EDpPifRegister
+ };
+
+ public: // Constructors and destructor
+
+ /**
+ * C++ default constructor.
+ * @param aDataPort: Dataport main class
+ */
+ CDpPif( CDpDataPort& aDataPort );
+
+ /**
+ * Destructor.
+ */
+ ~CDpPif();
+
+ public: // New methods
+
+ /**
+ * This method returns pipe state.
+ * @return TDpPipeState: Pipe state
+ */
+ inline TDpPipeState PipeState();
+
+ /**
+ * This method returns pipe handle.
+ * @return TUint8: Pipe handle
+ */
+ inline TUint8 PipeHandle();
+
+ /**
+ * This method sets pipe handle.
+ * @param aPipeHandle: Pipe handle
+ */
+ inline void SetPipeHandle( const TUint8 aPipeHandle );
+
+ /**
+ * This method sets pipe state.
+ * @param aPipeState: Pipe state
+ */
+ inline void SetPipeState( const TDpPipeState aPipeState );
+
+ /**
+ * This method registers DataPort to Name Service.
+ * @param aUnit: Port unit number
+ */
+ TInt InitiatePipe( const TUint aUnit );
+
+ /**
+ * This method unregisters DataPort from Name Service.
+ * @param aUnit: Port unit number
+ */
+ void ClosePipeL( const TUint aUnit );
+
+ /**
+ * This method returns pif state.
+ * @return TDpPifState: Pif state
+ */
+ inline CDpPif::TDpPifState CDpPif::PifState();
+
+ /**
+ * Attach observer to CDpSubject.
+ * @param aObserver: Observer
+ */
+ void Attach( CDpObserver& aObserver );
+
+ /**
+ * Detach observer from CDpSubject.
+ * @param aObserver: Observer
+ */
+ void Detach( CDpObserver& aObserver );
+
+ /**
+ * Notify all observers of CDpSubject object.
+ */
+ void Notify();
+
+ public: // Methods from base classes
+
+ // From CActive
+
+ /**
+ * From CActive This method signals PIF with KErrCancel,
+ * if PIF is registered state.
+ */
+ void DoCancel();
+
+ /**
+ * From CActive This method changes PIF state after registration.
+ */
+ void RunL();
+
+ /**
+ * From CActive This method handles leave in RunL().
+ * This method returns the given error value.
+ * @param aError: Leave reason
+ * @return TInt: Leave reason is returned in error code
+ */
+ TInt RunError( TInt aError );
+
+ protected: // Data
+
+ // Pif subject
+ CDpSubject iDpSubject;
+
+ // DataPort
+ CDpDataPort& iDataPort;
+
+ // Pipe state
+ TDpPipeState iPipeState;
+
+ // Pipe handle
+ TUint8 iPipeHandle;
+
+ // PIF state
+ TDpPifState iPifState;
+
+ // Is PEP registered
+ TBool iPepRegistered;
+
+ private: // Data
+
+ //none
+
+ };
+
+#include "dppif.inl" // inline methods
+
+#endif // DPPIF_H
+
+// End of File