examples/ForumNokia/Symbian_OS_End-to-End_Sockets_API_Example/SocketTaskManager/inc/TaskManagerEngineReader.h

00001 /*
00002  * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
00003  *    
00004  * Redistribution and use in source and binary forms, with or without
00005  * modification, are permitted provided that the following conditions are met:
00006  *    
00007  *  * Redistributions of source code must retain the above copyright notice, this
00008  *    list of conditions and the following disclaimer.
00009  *  * Redistributions in binary form must reproduce the above copyright notice,
00010  *    this list of conditions and the following disclaimer in the documentation
00011  *    and/or other materials provided with the distribution.
00012  *  * Neither the name of Nokia Corporation nor the names of its contributors
00013  *    may be used to endorse or promote products derived from this software
00014  *    without specific prior written permission.
00015  *    
00016  *    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00017  *    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00018  *    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00019  *    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00020  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00021  *    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00022  *    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00023  *    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00024  *    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00025  *    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026  *    
00027  *    Description:  
00028  */
00029 
00030 
00031 #ifndef __TASKMANAGERENGINEREADER_H__
00032 #define __TASKMANAGERENGINEREADER_H__
00033 
00034 // INCLUDE FILES
00035 #include <in_sock.h>
00036 
00037 // FORWARD DECLARATIONS
00038 class CSecureSocket;
00039 
00040 // CLASS DECLARATIONS
00041 
00045 class MEngineNotifier
00046     {
00047 public:
00048     virtual TBool PackageReceivedL( const TDesC8& aData ) = 0;
00049     };
00050 
00051 
00056 class CTaskManagerEngineReader : public CActive
00057     {
00058 public:
00059 
00063         static CTaskManagerEngineReader* NewL( MEngineNotifier& aNotifier );
00064     static CTaskManagerEngineReader* NewLC( MEngineNotifier& aNotifier );
00065 
00069         ~CTaskManagerEngineReader();
00070 
00074         void Start();
00075         
00080     void SetSecureSocket( CSecureSocket* aSocket );
00081 
00082 protected: // from CActive
00083 
00087         void DoCancel();
00088 
00092         void RunL();    
00093 
00094 private:
00095 
00100         CTaskManagerEngineReader( MEngineNotifier& aNotifier );
00101 
00105         void ConstructL();
00106 
00110         void IssueRead();
00111 
00112 private: // Member variables
00113 
00114     // The size of the read buffer in bytes.
00115     enum { KReadBufferSize = 20 };
00116 
00117     // Socket to read data from.
00118     CSecureSocket*          iSocket;
00119 
00120     // Buffer for receiving data.
00121         TBuf8<KReadBufferSize>  iBuffer;
00122 
00123     // Handle to notify engine.
00124     MEngineNotifier&        iNotifier;
00125     
00126     // Stores the amount of bytes read from socket.
00127     // Must be defined even though it's not used anywhere except when reading.
00128     TSockXfrLength          iDummyLength;
00129     };
00130 
00131 #endif
00132 
00133 // End of file

Generated by  doxygen 1.6.2