00001 00002 #ifndef OSCL_SOCKET_RECV_H_INCLUDED 00003 #define OSCL_SOCKET_RECV_H_INCLUDED 00004 00005 #include "oscl_socket_serv_imp.h" 00006 #include "oscl_socket_imp.h" 00007 #include "oscl_socket_method.h" 00008 00009 00013 class OsclRecvRequest; 00014 00015 class OsclRecvMethod : public OsclSocketMethod 00016 { 00017 public: 00018 static OsclRecvMethod *NewL(OsclIPSocketI& c); 00019 00020 ~OsclRecvMethod(); 00021 00022 TPVSocketEvent Recv(uint8* &aPtr, uint32 aMaxLen, 00023 int32 aTimeout); 00024 00025 uint8 *GetRecvData(int32 *aLength); 00026 00027 private: 00028 OsclRecvMethod(OsclIPSocketI& c) 00029 : OsclSocketMethod(c, "osclrecvmethod", EPVSocketRecv) 00030 {} 00031 00032 void ConstructL(); 00033 00034 public: 00035 OsclRecvRequest *RecvRequest() 00036 { 00037 return (OsclRecvRequest*)iSocketRequestAO; 00038 } 00039 }; 00040 00044 class OsclRecvRequest : public OsclSocketRequestAO 00045 { 00046 public: 00047 uint8 *GetRecvData(int32 *aLength); 00048 00049 OsclRecvRequest(OsclSocketMethod& c) 00050 : OsclSocketRequestAO(c, "osclRecvRequest") 00051 {} 00052 00053 void Recv(uint8* &aPtr, uint32 aMaxLen); 00054 void Success(); 00055 00056 private: 00057 00058 RecvParam*Param() 00059 { 00060 return(RecvParam*)iParam; 00061 } 00062 00063 }; 00064 00065 00066 00067 #endif 00068