THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
/** * Creates the membership system, given the provided configuration */ interface MembershipBuilder { static MembershipBuilder newMembershipBuilder() MembershipBuilder setConfig(Config) MembershipBuilder setAuthenticator(Authenticator) MembershipBuilder setMembershipListener(MembershipListener) MembershipBuilder setMessageHandler(MessageHandler) MembershipBuilder setMembershipStatistics(MembershipStatistics) MembershipBuilder setMemberFactory(MemberIDFactory) create() : Membership } /** * Core class of a running membership system. */ interface Membership { getMembershipView(): MembershipView getMessenger(): Messenger getLocalMember(): MemberID contactedBy(MemberID) isShunned(MemberID) close() isClosed() } /** * API for sending messages to other members, using memberships messaging system * Membership currently allows geode-core to send messages over it's UDP messaging system. * This interface provides that functionality. */ interface Messenger { send(Message) /** Get an object the represents what messages have been sent to to the given * memberID. This is used in waitForMessageState to wait for these messages * to arrive on the remote side */ getMessageState(MemberID): MessageState waitForMessageState(MessageState) } /** * A Message that will be sent to the returned recipients. */ interface Message { Set<MemberID> getRecipients() } /** * An object which represents the state of the sending side of a communication * channel at a point in time. This object can be passed to the waitForMessageState * method on the receiving side to ensure all messages have been received on * the receiving side */ interface MessageState extends DataSerializableFixedID { }/** * Interface used to create a MemberID from a set of properties * This API is provided solely to allow geode-core to add additional * properties to the MemberID that are not relevant to membership * For example DurableClientAttributes. Membership will provide * A default MemberID which just has the membership relevant attributes */ interface MemberIDFactory { MemberID create(host, port, uuid, ...) } /** * A single member of the system. In practice, this will * be implemented by InternalDistributedMember */ interface MemberID { } /** * Provides the current members of the system */ interface MembershipView { List<MemberID> getMembers() } /** * Receives notifications about changes to membership */ interface MembershipListener { memberJoined(MemberID) memberDeparted(MemberID) memberCrashed(MemberID) forceDisconnected(String reason) } /** * Receives all messages sent from other members */ interface MessageHandler { processMessage(Message) } /** * Interface used by membership to authenticate other members */ interface Authenticator { } /** * Interface to notify statistics systems about membership changes */ interface MembershipStatistics { memberJoined() memberDeparted() ... } /** * Primitive configuration options for membership * - timeouts, etc. */ interface Config { getJoinTimeout() ... } |
...