Saros
Distributed Collaborative Editing and Distributed Party Programming
de.fu_berlin.inf.dpp.negotiation.OutgoingSessionNegotiation Class Reference
Inheritance diagram for de.fu_berlin.inf.dpp.negotiation.OutgoingSessionNegotiation:
de.fu_berlin.inf.dpp.negotiation.SessionNegotiation de.fu_berlin.inf.dpp.negotiation.CancelableProcess

List of all members.

Public Member Functions

 OutgoingSessionNegotiation (JID peer, ISarosSession sarosSession, String description, ISarosContext sarosContext)
Status start (IProgressMonitor monitor)
String toString ()

Protected Member Functions

void executeCancellation ()

Constructor & Destructor Documentation

de.fu_berlin.inf.dpp.negotiation.OutgoingSessionNegotiation.OutgoingSessionNegotiation ( JID  peer,
ISarosSession  sarosSession,
String  description,
ISarosContext  sarosContext 
)

Member Function Documentation

void de.fu_berlin.inf.dpp.negotiation.OutgoingSessionNegotiation.executeCancellation ( ) [protected, virtual]

This method is called after terminateProcess decides to perform a cleanup because the execution of the process was canceled. Implementing classes should try a maximum effort to revert all the changes that were made before the process was aborted.

Implements de.fu_berlin.inf.dpp.negotiation.CancelableProcess.

Status de.fu_berlin.inf.dpp.negotiation.OutgoingSessionNegotiation.start ( IProgressMonitor  monitor)

5, Invitation Process:

The details of the invitation process are implemented in the invitation package. OutgoingSessionNegotiation is an example of a class that participates in this process.

The host of a session needs negotiations for:

All other participants need negotiations for:

6, Invitation Process:

For starting a session, the host does the following things (see next JTourBusStops for the corresponding steps on the client side):

(1) Check whether Saros is available on the client's side (via the DiscoveryManager).

(2) Check whether the client's Saros is compatible with own version (via the VersionManager).

(3a) Send a session invitation offering to the client.

(3b) [client side, see subsequent stops]

(3c) Waits until the client automatically responds to the offering ("acknowledgement").

(4a, 4b) [client side, see subsequent stops]

(4c) Wait until the remote user manually accepted the session invitation ("acceptance").

(5a) [client side, see subsequent stops]

(5b) Wait for the client's wishlist of the session's parameters (e.g. his own favorite color).

(6a) Consider these preferences and send the settled session parameters back to the client.

(6b, 7, 8) [client side, see subsequent stops]

(9) Wait until the client signals the session invitation is complete.

(10) Formally add client to the session so he will receive activities, then send final acknowledgement to inform client about this.

String de.fu_berlin.inf.dpp.negotiation.OutgoingSessionNegotiation.toString ( )
 All Classes Namespaces Files Functions Variables Enumerations