Package org.serviceconnector.registry
Class PublishMessageQueue<E>
java.lang.Object
org.serviceconnector.registry.PublishMessageQueue<E>
- Type Parameters:
E- the element type to handle in the queue
The Class PublishMessageQueue. The PublishMessageQueue is responsible for queuing incoming data from server, to inform subscriptions about new arrived messages, to observe there
timeouts and to know there current position in queue (TimeAwareDataPointer). The queue needs also to handle the deleting of consumed messages and to assure queue does not
overflow.
- Author:
- JTraber
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidchangeSubscription(String sessionId, SubscriptionMask mask) Change subscription.voiddump(XMLDumpWriter writer) Dump publish message queue.getMessage(String sessionId) Return message if any.getMessageOrListen(String sessionId, IRequest request, IResponse response) Return message if any.intgetPeak()Gets the peak the queue ever reached.intGets the referenced node count.intGets the total size of the queue.booleanChecks for next.voidInserts a new message into the queue.Iterator<LinkedNode<E>>.voidRemoves the non referenced nodes.voidsubscribe(String sessionId, SubscriptionMask mask, ReceivePublicationTimeout crpTimeout) Subscribe.voidunsubscribe(String sessionId) Unsubscribe.
-
Constructor Details
-
PublishMessageQueue
public PublishMessageQueue()Instantiates a new PublishMessageQueue.
-
-
Method Details
-
nodeIterator
Iterator<LinkedNode<E>>.- Returns:
- the iterator
-
getTotalSize
public int getTotalSize()Gets the total size of the queue.- Returns:
- the size
-
getReferencedNodesCount
public int getReferencedNodesCount()Gets the referenced node count.- Returns:
- the referenced node count
-
insert
Inserts a new message into the queue.- Parameters:
message- the message
-
hasNext
Checks for next.- Parameters:
sessionId- the session id- Returns:
- true, if successful
-
getMessage
Return message if any. If no message is available null will be returned.- Parameters:
sessionId- the session id- Returns:
- the e
-
getMessageOrListen
Return message if any. If no message is available null will be returned.- Parameters:
sessionId- the session idrequest- the requestresponse- the response- Returns:
- the e
-
removeNonreferencedNodes
public void removeNonreferencedNodes()Removes the non referenced nodes. Starts removing nodes in first position of queue - stops at the position a node is referenced. -
subscribe
public void subscribe(String sessionId, SubscriptionMask mask, ReceivePublicationTimeout crpTimeout) Subscribe. Sets up subscription, create data pointer.- Parameters:
sessionId- the session idmask- the filter maskcrpTimeout- the timer run
-
changeSubscription
Change subscription.- Parameters:
sessionId- the session idmask- the mask
-
unsubscribe
Unsubscribe. Deletes subscription, remove data pointer.- Parameters:
sessionId- the session id
-
getPeak
public int getPeak()Gets the peak the queue ever reached.- Returns:
- the peak
-
dump
Dump publish message queue.- Parameters:
writer- the writer- Throws:
Exception- the exception
-