[Spread-cvs] cvs commit: spread/javaapps User.java recThread.java

spread-users@lists.spread.org spread-users@lists.spread.org


jonathan    04/10/29 17:13:10

  Modified:    javaapps User.java recThread.java
  Log:
  Apply Ryan Caudy's rework of groups code to report multiple VS sets
  in membership messages. This breaks the SP API, althought some backwards
  compability code is included. Also fixes the Java interface to support
  new methods.
  
  Revision  Changes    Path
  1.4       +51 -45    spread/javaapps/User.java
  
  Index: User.java
  ===================================================================
  RCS file: /storage/cvsroot/spread/javaapps/User.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- User.java	5 Mar 2004 00:37:11 -0000	1.3
  +++ User.java	29 Oct 2004 21:13:09 -0000	1.4
  @@ -59,7 +59,7 @@
   	// True if there is a listening thread.
   	///////////////////////////////////////
   	private boolean listening;
  -        private recThread rt;
  +	private recThread rt;
   
   	private void PrintMenu()
   	{
  @@ -90,6 +90,55 @@
   		}
   		System.out.print("\tq -- quit\n");
   	}
  +
  +	// Print this membership data.  Does so in a generic way so identical
  +	// function is used in recThread and User. 
  +	private void printMembershipInfo(MembershipInfo info) 
  +	{
  +	        SpreadGroup group = info.getGroup();
  +		if(info.isRegularMembership()) {
  +			SpreadGroup members[] = info.getMembers();
  +			MembershipInfo.VirtualSynchronySet virtual_synchrony_sets[] = info.getVirtualSynchronySets();
  +			MembershipInfo.VirtualSynchronySet my_virtual_synchrony_set = info.getMyVirtualSynchronySet();
  +
  +			System.out.println("REGULAR membership for group " + group +
  +					   " with " + members.length + " members:");
  +			for( int i = 0; i < members.length; ++i ) {
  +				System.out.println("\t\t" + members[i]);
  +			}
  +			System.out.println("Group ID is " + info.getGroupID());
  +
  +			System.out.print("\tDue to ");
  +			if(info.isCausedByJoin()) {
  +				System.out.println("the JOIN of " + info.getJoined());
  +			}	else if(info.isCausedByLeave()) {
  +				System.out.println("the LEAVE of " + info.getLeft());
  +			}	else if(info.isCausedByDisconnect()) {
  +				System.out.println("the DISCONNECT of " + info.getDisconnected());
  +			} else if(info.isCausedByNetwork()) {
  +				System.out.println("NETWORK change");
  +				for( int i = 0 ; i < virtual_synchrony_sets.length ; ++i ) {
  +					MembershipInfo.VirtualSynchronySet set = virtual_synchrony_sets[i];
  +					SpreadGroup         setMembers[] = set.getMembers();
  +					System.out.print("\t\t");
  +					if( set == my_virtual_synchrony_set ) {
  +						System.out.print( "(LOCAL) " );
  +					} else {
  +						System.out.print( "(OTHER) " );
  +					}
  +					System.out.println( "Virtual Synchrony Set " + i + " has " +
  +							    set.getSize() + " members:");
  +					for( int j = 0; j < set.getSize(); ++j ) {
  +						System.out.println("\t\t\t" + setMembers[j]);
  +					}
  +				}
  +			}
  +		} else if(info.isTransition()) {
  +			System.out.println("TRANSITIONAL membership for group " + group);
  +		} else if(info.isSelfLeave()) {
  +			System.out.println("SELF-LEAVE message for group " + group);
  +		}
  +	}
   	
   	private void DisplayMessage(SpreadMessage msg)
   	{
  @@ -132,50 +181,7 @@
   			else if (msg.isMembership())
   			{
   				MembershipInfo info = msg.getMembershipInfo();
  -				
  -				if(info.isRegularMembership())
  -				{
  -					SpreadGroup groups[] = msg.getGroups();
  -				
  -					System.out.println("Received a REGULAR membership.");
  -					System.out.println("For group " + info.getGroup() + ".");
  -					System.out.println("With " + groups.length + " members.");
  -					System.out.println("I am member " + msg.getType() + ".");
  -					for(int i = 0 ; i < groups.length ; i++)
  -						System.out.println("  " + groups[i]);
  -				
  -					System.out.println("Group ID is " + info.getGroupID());
  -				
  -					System.out.print("Due to ");
  -					if(info.isCausedByJoin())
  -					{
  -						System.out.println("the JOIN of " + info.getJoined() + ".");
  -					}
  -					else if(info.isCausedByLeave())
  -					{
  -						System.out.println("the LEAVE of " + info.getLeft() + ".");
  -					}
  -					else if(info.isCausedByDisconnect())
  -					{
  -						System.out.println("the DISCONNECT of " + info.getDisconnected() + ".");
  -					}
  -					else if(info.isCausedByNetwork())
  -					{
  -						SpreadGroup stayed[] = info.getStayed();
  -						System.out.println("NETWORK change.");
  -						System.out.println("VS set has " + stayed.length + " members:");
  -						for(int i = 0 ; i < stayed.length ; i++)
  -							System.out.println("  " + stayed[i]);
  -					}
  -				}
  -				else if(info.isTransition())
  -				{
  -					System.out.println("Received a TRANSITIONAL membership for group " + info.getGroup());
  -				}
  -				else if(info.isSelfLeave())
  -				{
  -					System.out.println("Received a SELF-LEAVE message for group " + info.getGroup());
  -				}
  +				printMembershipInfo(info);
   			} else if ( msg.isReject() ) 
   			{
   			        // Received a Reject message 
  
  
  
  1.4       +51 -44    spread/javaapps/recThread.java
  
  Index: recThread.java
  ===================================================================
  RCS file: /storage/cvsroot/spread/javaapps/recThread.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- recThread.java	5 Mar 2004 00:37:11 -0000	1.3
  +++ recThread.java	29 Oct 2004 21:13:09 -0000	1.4
  @@ -41,6 +41,56 @@
   	public recThread(SpreadConnection aConn) {
   		connection=aConn;
   	}
  +
  +	// Print this membership data.  Does so in a generic way so identical
  +	// function is used in recThread and User. 
  +	private void printMembershipInfo(MembershipInfo info) 
  +	{
  +	        SpreadGroup group = info.getGroup();
  +		if(info.isRegularMembership()) {
  +			SpreadGroup members[] = info.getMembers();
  +			MembershipInfo.VirtualSynchronySet virtual_synchrony_sets[] = info.getVirtualSynchronySets();
  +			MembershipInfo.VirtualSynchronySet my_virtual_synchrony_set = info.getMyVirtualSynchronySet();
  +
  +			System.out.println("REGULAR membership for group " + group +
  +					   " with " + members.length + " members:");
  +			for( int i = 0; i < members.length; ++i ) {
  +				System.out.println("\t\t" + members[i]);
  +			}
  +			System.out.println("Group ID is " + info.getGroupID());
  +
  +			System.out.print("\tDue to ");
  +			if(info.isCausedByJoin()) {
  +				System.out.println("the JOIN of " + info.getJoined());
  +			}	else if(info.isCausedByLeave()) {
  +				System.out.println("the LEAVE of " + info.getLeft());
  +			}	else if(info.isCausedByDisconnect()) {
  +				System.out.println("the DISCONNECT of " + info.getDisconnected());
  +			} else if(info.isCausedByNetwork()) {
  +				System.out.println("NETWORK change");
  +				for( int i = 0 ; i < virtual_synchrony_sets.length ; ++i ) {
  +					MembershipInfo.VirtualSynchronySet set = virtual_synchrony_sets[i];
  +					SpreadGroup         setMembers[] = set.getMembers();
  +					System.out.print("\t\t");
  +					if( set == my_virtual_synchrony_set ) {
  +						System.out.print( "(LOCAL) " );
  +					} else {
  +						System.out.print( "(OTHER) " );
  +					}
  +					System.out.println( "Virtual Synchrony Set " + i + " has " +
  +							    set.getSize() + " members:");
  +					for( int j = 0; j < set.getSize(); ++j ) {
  +						System.out.println("\t\t\t" + setMembers[j]);
  +					}
  +				}
  +			}
  +		} else if(info.isTransition()) {
  +			System.out.println("TRANSITIONAL membership for group " + group);
  +		} else if(info.isSelfLeave()) {
  +			System.out.println("SELF-LEAVE message for group " + group);
  +		}
  +	}
  +
   	private void DisplayMessage(SpreadMessage msg)
   	{
   		try
  @@ -83,50 +133,7 @@
   			else if ( msg.isMembership() )
   			{
   				MembershipInfo info = msg.getMembershipInfo();
  -				
  -				if(info.isRegularMembership())
  -				{
  -					SpreadGroup groups[] = msg.getGroups();
  -				
  -					System.out.println("Received a REGULAR membership.");
  -					System.out.println("For group " + info.getGroup() + ".");
  -					System.out.println("With " + groups.length + " members.");
  -					System.out.println("I am member " + msg.getType() + ".");
  -					for(int i = 0 ; i < groups.length ; i++)
  -						System.out.println("  " + groups[i]);
  -				
  -					System.out.println("Group ID is " + info.getGroupID());
  -				
  -					System.out.print("Due to ");
  -					if(info.isCausedByJoin())
  -					{
  -						System.out.println("the JOIN of " + info.getJoined() + ".");
  -					}
  -					else if(info.isCausedByLeave())
  -					{
  -						System.out.println("the LEAVE of " + info.getLeft() + ".");
  -					}
  -					else if(info.isCausedByDisconnect())
  -					{
  -						System.out.println("the DISCONNECT of " + info.getDisconnected() + ".");
  -					}
  -					else if(info.isCausedByNetwork())
  -					{
  -						SpreadGroup stayed[] = info.getStayed();
  -						System.out.println("NETWORK change.");
  -						System.out.println("VS set has " + stayed.length + " members:");
  -						for(int i = 0 ; i < stayed.length ; i++)
  -							System.out.println("  " + stayed[i]);
  -					}
  -				}
  -				else if(info.isTransition())
  -				{
  -					System.out.println("Received a TRANSITIONAL membership for group " + info.getGroup());
  -				}
  -				else if(info.isSelfLeave())
  -				{
  -					System.out.println("Received a SELF-LEAVE message for group " + info.getGroup());
  -				}
  +				printMembershipInfo(info);
   			} else if ( msg.isReject() )
   			{
   			        // Received a Reject message