Class AbstractSynchroService

  • All Implemented Interfaces:
    SynchroService
    Direct Known Subclasses:
    SynchroServiceImpl

    public abstract class AbstractSynchroService
    extends java.lang.Object
    implements SynchroService
    Author:
    Emmanuel Duchastenier, Charles Souillard
    • Method Detail

      • getWaitersMap

        protected abstract java.util.Map<java.util.Map<java.lang.String,​java.io.Serializable>,​java.lang.String> getWaitersMap()
        String value is an identifier of the sempaphore for the current event.
      • getEventKeyAndIdMap

        protected abstract java.util.Map<java.lang.String,​java.io.Serializable> getEventKeyAndIdMap()
        Maitains a map of
      • releaseWaiter

        protected abstract void releaseWaiter​(java.lang.String semaphoreKey)
      • getServiceLock

        protected abstract java.util.concurrent.locks.Lock getServiceLock()
      • fireEvent

        public void fireEvent​(java.util.Map<java.lang.String,​java.io.Serializable> event,
                              java.io.Serializable id)
        Specified by:
        fireEvent in interface SynchroService
      • getWaiterAndRemoveIt

        protected java.lang.String getWaiterAndRemoveIt​(java.util.Map<java.lang.String,​java.io.Serializable> event)
      • matchedAtLeastAllExpectedEntries

        protected boolean matchedAtLeastAllExpectedEntries​(java.util.Map<java.lang.String,​java.io.Serializable> expectedEventEntries,
                                                           java.util.Map<java.lang.String,​java.io.Serializable> actualEventEntries)
      • getFiredAndRemoveIt

        protected java.io.Serializable getFiredAndRemoveIt​(java.util.Map<java.lang.String,​java.io.Serializable> expectedEvent)
      • throwTimeout

        protected void throwTimeout​(java.util.Map<java.lang.String,​java.io.Serializable> event,
                                    long timeout)
                             throws java.util.concurrent.TimeoutException
        Throws:
        java.util.concurrent.TimeoutException