1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 19 #ifndef OSCL_SOCKET_RECV_H_INCLUDED 20 #define OSCL_SOCKET_RECV_H_INCLUDED 21 22 #include "oscl_socket_serv_imp.h" 23 #include "oscl_socket_imp.h" 24 #include "oscl_socket_method.h" 25 26 27 /** 28 Internal implementation of Recv 29 */ 30 class OsclRecvRequest; 31 32 class OsclRecvMethod : public OsclSocketMethod 33 { 34 public: 35 static OsclRecvMethod *NewL(OsclIPSocketI& c); 36 37 ~OsclRecvMethod(); 38 39 TPVSocketEvent Recv(uint8* &aPtr, uint32 aMaxLen, 40 int32 aTimeout); 41 42 uint8 *GetRecvData(int32 *aLength); 43 44 private: OsclRecvMethod(OsclIPSocketI & c)45 OsclRecvMethod(OsclIPSocketI& c) 46 : OsclSocketMethod(c, "osclrecvmethod", EPVSocketRecv) 47 {} 48 49 void ConstructL(); 50 51 public: RecvRequest()52 OsclRecvRequest *RecvRequest() 53 { 54 return (OsclRecvRequest*)iSocketRequestAO; 55 } 56 }; 57 58 /** 59 This is the AO that interacts with the socket server 60 */ 61 class OsclRecvRequest : public OsclSocketRequestAO 62 { 63 public: 64 uint8 *GetRecvData(int32 *aLength); 65 OsclRecvRequest(OsclSocketMethod & c)66 OsclRecvRequest(OsclSocketMethod& c) 67 : OsclSocketRequestAO(c, "osclRecvRequest") 68 {} 69 70 void Recv(uint8* &aPtr, uint32 aMaxLen); 71 void Success(); 72 73 private: 74 Param()75 RecvParam*Param() 76 { 77 return(RecvParam*)iParam; 78 } 79 80 }; 81 82 83 84 #endif 85 86