Serial Gateway Sender Class Diagram

skinparam dpi 80
title Serial Gateway Sender Class Diagram
@startuml
hide empty members
interface GatewaySender
interface AsyncEventQueue
GemFireCacheImpl "*" *-- GatewaySender
GemFireCacheImpl "*" *-- AsyncEventQueue
AbstractGatewaySender "1" *-- "*" GatewayTransportFilter
AbstractGatewaySender "1" *-- "*" GatewaySenderAdvisor
AsyncEventQueueImpl *-- SerialAsyncEventQueueImpl
AbstractGatewaySender *-- AbstractGatewaySenderEventProcessor
AbstractGatewaySenderEventProcessor *-- SerialGatewaySenderQueue
AbstractGatewaySenderEventProcessor *-- SerialGatewaySenderEventProcessor
AbstractGatewaySenderEventProcessor *-- GatewaySenderEventDispatcher
AbstractGatewaySender <|-- AbstractRemoteGatewaySender 
AsyncEventQueue <|-- AsyncEventQueueImpl 
AbstractGatewaySender <|-- SerialAsyncEventQueueImpl 
SerialGatewaySenderEventProcessor <|-- RemoteSerialGatewaySenderEventProcessor 
GatewaySenderEventDispatcher <|-- GatewaySenderEventRemoteDispatcher 
GatewaySender <|-- AbstractGatewaySender
AbstractRemoteGatewaySender <|-- SerialGatewaySenderImpl
 

Gateway Receiver Class Diagram

 

title GatewayReceiver Class Diagram
skinparam dpi 80
@startuml
hide empty members
interface GatewayReceiver
GemFireCacheImpl "*" *-- GatewayReceiver
GatewayReceiverImpl --|> GatewayReceiver
GemFireCacheImpl *-- GatewayConflictResolver
GatewayConflictResolver -- AbstractRegionEntry
GatewayReceiverImpl *-- GatewayTransportFilter
GatewayReceiverImpl *-- CacheServer
 

 

Serial Gateway Sender Sequence

 

title Serial Gateway Sender Sequence
LocalRegion -> AbstractGatewaySender : distribute(event, dsid)
AbstractGatewaySender -> AbstractGatewaySender : filter, clone, stat
AbstractGatewaySender -> SerialGatewaySenderEventProcessor: enqueueEvent()
SerialGatewaySenderEventProcessor -> RegionQueue : put()
loop processQueue
  SerialGatewaySenderEventProcessor -> RegionQueue: peek()
  RegionQueue -> SerialGatewaySenderEventProcessor: events
  SerialGatewaySenderEventProcessor -> SerialGatewaySenderEventProcessor: filter, conflate
  SerialGatewaySenderEventProcessor -> GatewaySenderEventDispatcher:dispatchBatch
  note right: connect to receiver\nConnectionManagerImpl\ncreateClientToServerConnection
  GatewaySenderEventDispatcher -> SerialGatewaySenderEventProcessor: success?
  group if AsyncQueue
    SerialGatewaySenderEventProcessor -> SerialGatewaySenderEventProcessor: eventQueueRemove
  end
end
group WAN Ack handler
  AckReaderThread -> SerialGatewaySenderEventProcessor : handleSuccessBatchAck
  SerialGatewaySenderEventProcessor -> SerialGatewaySenderEventProcessor: eventQueueRemove
end
 

 

Locator Discovery Sequence

 

title Locator Discovery Sequence
-> InternalLocator: distribute(event, dsid)
InternalLocator-> WanLocatorDiscovererImpl: discover()
WanLocatorDiscovererImpl -> RemoteLocatorJoinRequest: RemoteLocatorJoinRequest()
RemoteLocatorJoinRequest -->WanLocatorDiscovererImpl
WanLocatorDiscovererImpl -> LocatorDiscovery: exchangeRemoteLocators()
LocatorDiscovery->LocatorHelper: addExchangedLocators()
LocatorHelper -> LocatorMembershipListenerImpl : locatorJoined()