00001
00032 #ifndef LL_LLXFER_MEM_H
00033 #define LL_LLXFER_MEM_H
00034
00035 #include "message.h"
00036 #include "lltimer.h"
00037 #include "llxfer.h"
00038 #include "lldir.h"
00039
00040 class LLXfer_Mem : public LLXfer
00041 {
00042 private:
00043 protected:
00044 void (*mCallback)(void *, S32, void **, S32, LLExtStat);
00045 char mRemoteFilename[LL_MAX_PATH];
00046 ELLPath mRemotePath;
00047 BOOL mDeleteRemoteOnCompletion;
00048
00049 public:
00050
00051 private:
00052 protected:
00053 public:
00054 LLXfer_Mem ();
00055 virtual ~LLXfer_Mem();
00056
00057 virtual void init();
00058 virtual void free();
00059
00060 virtual S32 startSend (U64 xfer_id, const LLHost &remote_host);
00061 virtual U64 registerXfer(U64 xfer_id, const void *datap, const S32 length);
00062 virtual void setXferSize (S32 data_size);
00063
00064 virtual S32 initializeRequest(U64 xfer_id,
00065 const std::string& remote_filename,
00066 ELLPath remote_path,
00067 const LLHost& remote_host,
00068 BOOL delete_remote_on_completion,
00069 void (*callback)(void*,S32,void**,S32,LLExtStat),
00070 void** user_data);
00071 virtual S32 startDownload();
00072
00073 virtual S32 processEOF();
00074
00075 virtual U32 getXferTypeTag();
00076 };
00077
00078 #endif
00079
00080
00081
00082
00083