Package org.globus.ftp.dc
Class SocketPool
java.lang.Object
org.globus.ftp.dc.SocketPool
Represents a set of open sockets that are being cached for subsequent transfers.
CheckIn() a socket to add it to the pool. Other threads can use it. CheckOut() a socket to mark it busy; it will remain in the pool but noone
else can check it out. Finally, you can remove a socket from the pool, in which case the pool will remove it from all its references.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
add socketBox to the pool.void
Apply the suplied callback to all socketBoxes.void
Before calling this method, the socket needs to be first add()ed to the pool and checked out.checkOut()
checks out the next free socket and returns it, or returns null if there aren't any.int
count()
int
int
void
flush()
Forcibly close all sockets, and remove them from the pool.boolean
hasFree()
void
remove socketBox from the pool, remove all references to it
-
Field Details
-
allSockets
-
freeSockets
-
busySockets
-
-
Constructor Details
-
SocketPool
public SocketPool()Constructor for SocketPool.
-
-
Method Details
-
add
add socketBox to the pool. Depending on its state, it will be added to free or busy sockets. -
remove
remove socketBox from the pool, remove all references to it -
checkOut
checks out the next free socket and returns it, or returns null if there aren't any. Before calling this method, the socket needs to be first add()ed to the pool. -
checkIn
Before calling this method, the socket needs to be first add()ed to the pool and checked out. Note: checking in a socket that is not reusable will cause its removal from the pool. -
count
public int count()- Returns:
- number of all cached sockets
-
countFree
public int countFree()- Returns:
- number of free sockets
-
countBusy
public int countBusy()- Returns:
- number of busy sockets
-
hasFree
public boolean hasFree()- Returns:
- true if there is at least 1 free socket
-
applyToAll
Apply the suplied callback to all socketBoxes.- Throws:
Exception
-
flush
Forcibly close all sockets, and remove them from the pool.- Throws:
IOException
-