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 |
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 |
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 |
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() |