LLXferManager Class Reference

#include <llxfermanager.h>

Collaboration diagram for LLXferManager:

Collaboration graph
[legend]

List of all members.

Public Types

enum  { LOW_PRIORITY = FALSE, HIGH_PRIORITY = TRUE }
typedef std::list< LLHostStatus * > status_list_t

Public Member Functions

 LLXferManager (LLVFS *vfs)
virtual ~LLXferManager ()
virtual void init (LLVFS *vfs)
virtual void free ()
void setUseAckThrottling (const BOOL use)
void setAckThrottleBPS (const F32 bps)
virtual LLXferfindXfer (U64 id, LLXfer *list_head)
virtual void removeXfer (LLXfer *delp, LLXfer **list_head)
virtual U32 numActiveListEntries (LLXfer *list_head)
virtual S32 numActiveXfers (const LLHost &host)
virtual S32 numPendingXfers (const LLHost &host)
virtual void changeNumActiveXfers (const LLHost &host, S32 delta)
virtual void setMaxOutgoingXfersPerCircuit (S32 max_num)
virtual void setMaxIncomingXfers (S32 max_num)
virtual void updateHostStatus ()
virtual void printHostStatus ()
virtual void registerCallbacks (LLMessageSystem *mesgsys)
virtual U64 getNextID ()
virtual S32 encodePacketNum (S32 packet_num, BOOL is_eof)
virtual S32 decodePacketNum (S32 packet_num)
virtual BOOL isLastPacket (S32 packet_num)
virtual U64 registerXfer (const void *datap, const S32 length)
virtual void requestFile (const char *local_filename, const char *remote_filename, ELLPath remote_path, const LLHost &remote_host, BOOL delete_remote_on_completion, void(*callback)(void **, S32, LLExtStat), void **user_data, BOOL is_priority=FALSE, BOOL use_big_packets=FALSE)
virtual void requestFile (const char *remote_filename, ELLPath remote_path, const LLHost &remote_host, BOOL delete_remote_on_completion, void(*callback)(void *, S32, void **, S32, LLExtStat), void **user_data, BOOL is_priority=FALSE)
virtual void requestVFile (const LLUUID &local_id, const LLUUID &remote_id, LLAssetType::EType type, LLVFS *vfs, const LLHost &remote_host, void(*callback)(void **, S32, LLExtStat), void **user_data, BOOL is_priority=FALSE)
virtual void processReceiveData (LLMessageSystem *mesgsys, void **user_data)
virtual void sendConfirmPacket (LLMessageSystem *mesgsys, U64 id, S32 packetnum, const LLHost &remote_host)
virtual void processFileRequest (LLMessageSystem *mesgsys, void **user_data)
virtual void processConfirmation (LLMessageSystem *mesgsys, void **user_data)
virtual void retransmitUnackedPackets ()
virtual void processAbort (LLMessageSystem *mesgsys, void **user_data)

Public Attributes

LLXfermSendList
LLXfermReceiveList
status_list_t mOutgoingHosts

Protected Member Functions

virtual void startPendingDownloads ()
virtual void addToList (LLXfer *xferp, LLXfer *&head, BOOL is_priority)

Protected Attributes

S32 mMaxOutgoingXfersPerCircuit
S32 mMaxIncomingXfers
BOOL mUseAckThrottling
LLLinkedQueue< LLXferAckInfomXferAckQueue
LLThrottle mAckThrottle

Private Attributes

LLVFSmVFS


Detailed Description

Definition at line 78 of file llxfermanager.h.


Member Typedef Documentation

Definition at line 103 of file llxfermanager.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
LOW_PRIORITY 
HIGH_PRIORITY 

Definition at line 94 of file llxfermanager.h.


Constructor & Destructor Documentation

LLXferManager::LLXferManager ( LLVFS vfs  ) 

Definition at line 58 of file llxfermanager.cpp.

References init().

Referenced by start_xfer_manager().

Here is the call graph for this function:

Here is the caller graph for this function:

LLXferManager::~LLXferManager (  )  [virtual]

Definition at line 65 of file llxfermanager.cpp.

References free().

Here is the call graph for this function:


Member Function Documentation

void LLXferManager::startPendingDownloads (  )  [protected, virtual]

Definition at line 1015 of file llxfermanager.cpp.

References LLXfer::abort(), e_LL_XFER_IN_PROGRESS, e_LL_XFER_PENDING, lldebugs, llendl, llmin(), mMaxIncomingXfers, LLXfer::mNext, mReceiveList, LLXfer::mStatus, S32, and LLXfer::startDownload().

Referenced by processAbort(), processReceiveData(), requestFile(), and requestVFile().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLXferManager::addToList ( LLXfer xferp,
LLXfer *&  head,
BOOL  is_priority 
) [protected, virtual]

Definition at line 1069 of file llxfermanager.cpp.

References LLXfer::mNext, and NULL.

Referenced by requestFile(), and requestVFile().

Here is the caller graph for this function:

void LLXferManager::init ( LLVFS vfs  )  [virtual]

Definition at line 72 of file llxfermanager.cpp.

References FALSE, LL_DEFAULT_MAX_REQUEST_FIFO_XFERS, LL_DEFAULT_MAX_SIMULTANEOUS_XFERS, mReceiveList, mSendList, mUseAckThrottling, mVFS, NULL, setAckThrottleBPS(), setMaxIncomingXfers(), and setMaxOutgoingXfersPerCircuit().

Referenced by LLXferManager().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLXferManager::free ( void   )  [virtual]

Definition at line 89 of file llxfermanager.cpp.

References LLXfer::mNext, mOutgoingHosts, mReceiveList, mSendList, and NULL.

Referenced by ~LLXferManager().

Here is the caller graph for this function:

void LLXferManager::setUseAckThrottling ( const BOOL  use  ) 

Definition at line 130 of file llxfermanager.cpp.

References mUseAckThrottling.

Referenced by idle_startup().

Here is the caller graph for this function:

void LLXferManager::setAckThrottleBPS ( const F32  bps  ) 

Definition at line 135 of file llxfermanager.cpp.

References LL_DEBUGS, LL_ENDL, LL_PACKET_TIMEOUT, llmax(), mAckThrottle, mMaxIncomingXfers, and LLThrottle::setRate().

Referenced by idle_startup(), and init().

Here is the call graph for this function:

Here is the caller graph for this function:

LLXfer * LLXferManager::findXfer ( U64  id,
LLXfer list_head 
) [virtual]

Definition at line 217 of file llxfermanager.cpp.

References LLXfer::mID, LLXfer::mNext, and NULL.

Referenced by processAbort(), processConfirmation(), processFileRequest(), and processReceiveData().

Here is the caller graph for this function:

void LLXferManager::removeXfer ( LLXfer delp,
LLXfer **  list_head 
) [virtual]

Definition at line 233 of file llxfermanager.cpp.

References LLXfer::mNext.

Referenced by processAbort(), processConfirmation(), processFileRequest(), processReceiveData(), registerXfer(), and retransmitUnackedPackets().

Here is the caller graph for this function:

U32 LLXferManager::numActiveListEntries ( LLXfer list_head  )  [virtual]

Definition at line 263 of file llxfermanager.cpp.

References e_LL_XFER_IN_PROGRESS, LLXfer::mNext, and LLXfer::mStatus.

S32 LLXferManager::numActiveXfers ( const LLHost host  )  [virtual]

Definition at line 298 of file llxfermanager.cpp.

References LLHostStatus::mHost, LLHostStatus::mNumActive, mOutgoingHosts, and NULL.

Referenced by processFileRequest(), and retransmitUnackedPackets().

Here is the caller graph for this function:

S32 LLXferManager::numPendingXfers ( const LLHost host  )  [virtual]

Definition at line 280 of file llxfermanager.cpp.

References LLHostStatus::mHost, LLHostStatus::mNumPending, mOutgoingHosts, and NULL.

Referenced by processFileRequest().

Here is the caller graph for this function:

void LLXferManager::changeNumActiveXfers ( const LLHost host,
S32  delta 
) [virtual]

Definition at line 316 of file llxfermanager.cpp.

References LLHostStatus::mHost, LLHostStatus::mNumActive, mOutgoingHosts, and NULL.

Referenced by processFileRequest(), and retransmitUnackedPackets().

Here is the caller graph for this function:

void LLXferManager::setMaxOutgoingXfersPerCircuit ( S32  max_num  )  [virtual]

Definition at line 125 of file llxfermanager.cpp.

References mMaxOutgoingXfersPerCircuit.

Referenced by init().

Here is the caller graph for this function:

void LLXferManager::setMaxIncomingXfers ( S32  max_num  )  [virtual]

Definition at line 118 of file llxfermanager.cpp.

References mMaxIncomingXfers.

Referenced by idle_startup(), and init().

Here is the caller graph for this function:

void LLXferManager::updateHostStatus (  )  [virtual]

void LLXferManager::printHostStatus (  )  [virtual]

void LLXferManager::registerCallbacks ( LLMessageSystem mesgsys  )  [virtual]

Definition at line 333 of file llxfermanager.cpp.

References _PREHASH_AbortXfer, _PREHASH_ConfirmXferPacket, _PREHASH_RequestXfer, _PREHASH_SendXferPacket, continue_file_receive(), NULL, process_abort_xfer(), process_confirm_packet(), process_request_xfer(), and LLMessageSystem::setHandlerFuncFast().

Referenced by idle_startup().

Here is the call graph for this function:

Here is the caller graph for this function:

U64 LLXferManager::getNextID (  )  [virtual]

Definition at line 343 of file llxfermanager.cpp.

References LLUUID::generate(), and LLUUID::mData.

Referenced by registerXfer(), requestFile(), and requestVFile().

Here is the call graph for this function:

Here is the caller graph for this function:

S32 LLXferManager::encodePacketNum ( S32  packet_num,
BOOL  is_eof 
) [virtual]

Definition at line 355 of file llxfermanager.cpp.

S32 LLXferManager::decodePacketNum ( S32  packet_num  )  [virtual]

Definition at line 366 of file llxfermanager.cpp.

Referenced by processReceiveData().

Here is the caller graph for this function:

BOOL LLXferManager::isLastPacket ( S32  packet_num  )  [virtual]

Definition at line 373 of file llxfermanager.cpp.

Referenced by processReceiveData().

Here is the caller graph for this function:

U64 LLXferManager::registerXfer ( const void *  datap,
const S32  length 
) [virtual]

Definition at line 380 of file llxfermanager.cpp.

References getNextID(), llendl, llerrs, LLXfer::mNext, mSendList, and removeXfer().

Here is the call graph for this function:

void LLXferManager::requestFile ( const char *  local_filename,
const char *  remote_filename,
ELLPath  remote_path,
const LLHost remote_host,
BOOL  delete_remote_on_completion,
void(*)(void **, S32, LLExtStat callback,
void **  user_data,
BOOL  is_priority = FALSE,
BOOL  use_big_packets = FALSE 
) [virtual]

void LLXferManager::requestFile ( const char *  remote_filename,
ELLPath  remote_path,
const LLHost remote_host,
BOOL  delete_remote_on_completion,
void(*)(void *, S32, void **, S32, LLExtStat callback,
void **  user_data,
BOOL  is_priority = FALSE 
) [virtual]

Definition at line 467 of file llxfermanager.cpp.

References addToList(), getNextID(), llendl, llerrs, mReceiveList, and startPendingDownloads().

Here is the call graph for this function:

void LLXferManager::requestVFile ( const LLUUID local_id,
const LLUUID remote_id,
LLAssetType::EType  type,
LLVFS vfs,
const LLHost remote_host,
void(*)(void **, S32, LLExtStat callback,
void **  user_data,
BOOL  is_priority = FALSE 
) [virtual]

void LLXferManager::processReceiveData ( LLMessageSystem mesgsys,
void **  user_data 
) [virtual]

void LLXferManager::sendConfirmPacket ( LLMessageSystem mesgsys,
U64  id,
S32  packetnum,
const LLHost remote_host 
) [virtual]

void LLXferManager::processFileRequest ( LLMessageSystem mesgsys,
void **  user_data 
) [virtual]

void LLXferManager::processConfirmation ( LLMessageSystem mesgsys,
void **  user_data 
) [virtual]

Definition at line 866 of file llxfermanager.cpp.

References _PREHASH_ID, _PREHASH_Packet, _PREHASH_XferID, e_LL_XFER_IN_PROGRESS, FALSE, findXfer(), LLMessageSystem::getS32Fast(), LLMessageSystem::getU64Fast(), mSendList, LLXfer::mStatus, LLXfer::mWaitingForACK, removeXfer(), S32, and LLXfer::sendNextPacket().

Referenced by process_confirm_packet().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLXferManager::retransmitUnackedPackets (  )  [virtual]

void LLXferManager::processAbort ( LLMessageSystem mesgsys,
void **  user_data 
) [virtual]

Definition at line 994 of file llxfermanager.cpp.

References _PREHASH_ID, _PREHASH_Result, _PREHASH_XferID, findXfer(), LLMessageSystem::getS32Fast(), LLMessageSystem::getU64Fast(), LLXfer::mCallbackResult, mReceiveList, LLXfer::processEOF(), removeXfer(), S32, and startPendingDownloads().

Referenced by process_abort_xfer().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 81 of file llxfermanager.h.

Referenced by init(), and processFileRequest().

Definition at line 85 of file llxfermanager.h.

Referenced by setAckThrottleBPS(), setMaxIncomingXfers(), and startPendingDownloads().

Definition at line 87 of file llxfermanager.h.

Referenced by init(), processReceiveData(), and setUseAckThrottling().

Definition at line 88 of file llxfermanager.h.

Referenced by processReceiveData(), and retransmitUnackedPackets().

Definition at line 89 of file llxfermanager.h.

Referenced by retransmitUnackedPackets(), and setAckThrottleBPS().


The documentation for this class was generated from the following files:

Generated on Fri May 16 09:41:00 2008 for SecondLife by  doxygen 1.5.5