Main Page   Modules   Class Hierarchy   Data Structures   File List   Data Fields   Globals   Related Pages  

oscl_socket_recv_from.h

Go to the documentation of this file.
00001 
00002 #ifndef OSCL_SOCKET_RECV_FROM_H_INCLUDED
00003 #define OSCL_SOCKET_RECV_FROM_H_INCLUDED
00004 
00005 #include "oscl_socket_serv_imp.h"
00006 #include "oscl_socket_imp.h"
00007 #include "oscl_socket_method.h"
00008 
00012 class OsclRecvFromRequest;
00013 
00014 class OsclRecvFromMethod : public OsclSocketMethod
00015 {
00016     public:
00017         static OsclRecvFromMethod *NewL(OsclIPSocketI& c);
00018 
00019         ~OsclRecvFromMethod();
00020 
00021         TPVSocketEvent RecvFrom(uint8* &aPtr, uint32 aMaxLen,
00022                                 OsclNetworkAddress &aAddress,
00023                                 int32 aTimeout,
00024                                 uint32 aMultiMax,
00025                                 Oscl_Vector<uint32, OsclMemAllocator>* aPacketLen,
00026                                 Oscl_Vector<OsclNetworkAddress, OsclMemAllocator>* aPacketSource);
00027 
00028         uint8 *GetRecvData(int32 *aLength);
00029 
00030     private:
00031         OsclRecvFromMethod(OsclIPSocketI& c)
00032                 : OsclSocketMethod(c, "osclrecvfrommethod", EPVSocketRecvFrom)
00033         {}
00034 
00035         void ConstructL();
00036 
00037     public:
00038         OsclRecvFromRequest *RecvFromRequest()
00039         {
00040             return (OsclRecvFromRequest*)iSocketRequestAO;
00041         }
00042 };
00043 
00047 class OsclRecvFromRequest : public OsclSocketRequestAO
00048 {
00049     public:
00050         uint8 *GetRecvData(int32 *aLength);
00051 
00052         OsclRecvFromRequest(OsclSocketMethod& c)
00053                 : OsclSocketRequestAO(c, "osclRecvFromRequest")
00054         {}
00055 
00056         void RecvFrom(uint8* &aPtr, uint32 aMaxLen,
00057                       OsclNetworkAddress& aAddress, uint32 aMultiMax,
00058                       Oscl_Vector<uint32, OsclMemAllocator>* aPacketLen,
00059                       Oscl_Vector<OsclNetworkAddress, OsclMemAllocator>* aPacketSource);
00060         void Success();
00061 
00062     private:
00063         RecvFromParam*Param()
00064         {
00065             return(RecvFromParam*)iParam;
00066         }
00067 };
00068 
00069 
00070 #endif
00071 

OSCL API
Posting Version: CORE_8.000.1.1_RC4