diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/driver1__dev_8h_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/driver1__dev_8h_source.html Tue Mar 30 16:16:55 2010 +0100 @@ -0,0 +1,137 @@ + + + + +TB9.2 Example Applications: examples/Base/IPC/AdvancedClientServerExample/driver/driver1_dev.h Source File + + + + + +

examples/Base/IPC/AdvancedClientServerExample/driver/driver1_dev.h

Go to the documentation of this file.
00001 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+00002 // All rights reserved.
+00003 // This component and the accompanying materials are made available
+00004 // under the terms of "Eclipse Public License v1.0"
+00005 // which accompanies this distribution, and is available
+00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
+00007 //
+00008 // Initial Contributors:
+00009 // Nokia Corporation - initial contribution.
+00010 //
+00011 // Contributors:
+00012 //
+00013 // Description:
+00014 // Kernel side interfaces to the example Logical and Physical Device Drivers
+00015 //
+00016 
+00017 
+00018 
+00023 #ifndef __DRIVER1_DEV_H__
+00024 #define __DRIVER1_DEV_H__
+00025 
+00029 class DDriver1Factory : public DLogicalDevice
+00030         {
+00031 public:
+00032         DDriver1Factory();
+00033         ~DDriver1Factory();
+00034         
+00035         //      Inherited from DLogicalDevice
+00036         virtual TInt Install();
+00037         virtual void GetCaps(TDes8& aDes) const;
+00038         virtual TInt Create(DLogicalChannelBase*& aChannel);
+00039         };
+00040 
+00041 class DDriver1;
+00042 
+00046 class DDriver1Channel : public DLogicalChannel
+00047         {
+00048 public:
+00049         DDriver1Channel();
+00050         virtual ~DDriver1Channel();
+00051         
+00052         //      Inherited from DObject
+00053         virtual TInt RequestUserHandle(DThread* aThread, TOwnerType aType);
+00054         
+00055         // Inherited from DLogicalChannelBase
+00056         virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer);
+00057         
+00058         // Inherited from DLogicalChannel
+00059         virtual void HandleMsg(TMessageBase* aMsg);
+00060 private:
+00061         // Panic reasons
+00062         enum TPanic
+00063                 {
+00064                 // A request was issued when one is outstanding.
+00065                 ERequestAlreadyPending = 1
+00066                 };
+00067                 
+00068         // Implementation of the different kinds of messages sent through RBusLogicalChannel
+00069         TInt DoControl(TInt aFunction, TAny* a1, TAny* a2);
+00070         TInt DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2);
+00071         void DoCancel(TUint aMask);
+00072         // Accessor for the PDD
+00073         inline DDriver1* Pdd();
+00074         // Methods for configuration
+00075         TInt GetConfig(TDes8* aConfigBuf);
+00076         TInt SetConfig(const TDesC8* aConfigBuf);
+00077         void CurrentConfig(RDriver1::TConfig& aConfig);
+00078         // Methods for processing a SendData request
+00079         TInt SendData(TRequestStatus* aStatus,const TDesC8* aData);
+00080         void SendDataCancel();
+00081         void DoSendDataComplete();
+00082         static void SendDataDfc(TAny* aPtr);
+00083         // Methods for processing a ReceiveData request
+00084         TInt ReceiveData(TRequestStatus* aStatus,TDes8* aBuffer);
+00085         void ReceiveDataCancel();
+00086         void DoReceiveDataComplete();
+00087         static void ReceiveDataDfc(TAny* aPtr);
+00088 public:
+00089         // Interface methods for use by PDD
+00090         virtual void SendDataComplete(TInt aResult);
+00091         virtual void ReceiveDataComplete(TInt aResult);
+00092 private:
+00093         DThread* iClient;
+00094         // Members used for processing a SendData request
+00095         TRequestStatus* iSendDataStatus;
+00096         TDfc iSendDataDfc;
+00097         TInt iSendDataResult;
+00098         TBuf8<256> iSendDataBuffer;
+00099         // Members used for processing a ReceiveData request
+00100         TDes8* iReceiveDataDescriptor;
+00101         TRequestStatus* iReceiveDataStatus;
+00102         TDfc iReceiveDataDfc;
+00103         TInt iReceiveDataResult;
+00104         TBuf8<256> iReceiveDataBuffer;
+00105         };
+00106 
+00107 inline DDriver1* DDriver1Channel::Pdd()
+00108         { return (DDriver1*)iPdd; }
+00109 
+00113 class DDriver1 : public DBase
+00114         {
+00115 public:
+00119         class TCaps
+00120                 {
+00121         public:
+00122                 TVersion iVersion;
+00123                 };
+00124 public:
+00125         virtual TInt BufferSize() const =0;
+00126         virtual TInt Speed() const =0;
+00127         virtual TInt SetSpeed(TInt aSpeed) =0;
+00128         virtual TInt SendData(const TDesC8& aData) =0;
+00129         virtual void SendDataCancel() =0;
+00130         virtual TInt ReceiveData(TDes8& aBuffer) =0;
+00131         virtual void ReceiveDataCancel() =0;
+00132 public:
+00133         DDriver1Channel* iLdd;
+00134         };
+00135 
+00136 #endif
+00137 
+
+
Generated by  + +doxygen 1.6.2
+ +