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