java.lang.Objectcom.realtime.crossfire.jxclient.faces.AbstractFaceQueue
com.realtime.crossfire.jxclient.faces.AskfaceFaceQueue
public class AskfaceFaceQueue
A FaceQueue requesting faces by "askface" commands sent to the
Crossfire server.
| Field Summary | |
|---|---|
private static int |
CONCURRENT_ASKFACE_COMMANDS
The maximum number of concurrently sent "askface" commands. |
private CrossfireServerConnection |
crossfireServerConnection
The connection to use. |
private CrossfireUpdateFaceListener |
crossfireUpdateFaceListener
The CrossfireUpdateFaceListener registered to crossfireServerConnection receive face commands. |
private java.util.Map<java.lang.Integer,Face> |
pendingAskfaces
Face numbers for which "askface" commands have been sent without having received a response from the server. |
private java.util.Map<java.lang.Integer,Face> |
pendingFaces
Face numbers for which an "askface" command should be sent. |
private java.util.List<Face> |
pendingFacesQueue
The same elements as pendingFaces in query order. |
private java.lang.Object |
sync
The object use for synchronization. |
| Constructor Summary | |
|---|---|
AskfaceFaceQueue(CrossfireServerConnection crossfireServerConnection)
Creates a new instance. |
|
| Method Summary | |
|---|---|
private void |
faceReceived(int faceNum,
int faceSetNum,
java.nio.ByteBuffer packet)
Notifies the askface manager that image information have been received from the server. |
void |
loadFace(Face face)
Request a face. |
private void |
processFaceData(Face face,
byte[] data)
Processes face information received from the server. |
void |
reset()
Reset the processing: forget about pending faces. |
private void |
sendAskface()
Sends some pending "askface" commands. |
| Methods inherited from class com.realtime.crossfire.jxclient.faces.AbstractFaceQueue |
|---|
addFaceQueueListener, fireFaceFailed, fireFaceLoaded, removeFaceQueueListener |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private static final int CONCURRENT_ASKFACE_COMMANDS
@Nullable private final CrossfireServerConnection crossfireServerConnection
@NotNull private final CrossfireUpdateFaceListener crossfireUpdateFaceListener
CrossfireUpdateFaceListener registered to crossfireServerConnection receive face commands.
@NotNull private final java.util.Map<java.lang.Integer,Face> pendingAskfaces
Face
instance.
@NotNull private final java.util.Map<java.lang.Integer,Face> pendingFaces
pendingAskfaces.
@NotNull private final java.util.List<Face> pendingFacesQueue
pendingFaces in query order.
@NotNull private final java.lang.Object sync
| Constructor Detail |
|---|
public AskfaceFaceQueue(@Nullable
CrossfireServerConnection crossfireServerConnection)
crossfireServerConnection - the connection instance for sending
askface commands| Method Detail |
|---|
private void faceReceived(int faceNum,
int faceSetNum,
@NotNull
java.nio.ByteBuffer packet)
faceNum - the face IDfaceSetNum - the face setpacket - the face data
public void loadFace(@NotNull
Face face)
FaceQueueListener.faceLoaded(Face, FaceImages) or FaceQueueListener.faceFailed(Face) for the face. Faces re-requested
while still processing may be notified only once.
face - the requested face
private void processFaceData(@NotNull
Face face,
@NotNull
byte[] data)
face - the facedata - the face information; it is supposed to be a .png filepublic void reset()
private void sendAskface()