JavaGroups
Class Util

java.lang.Object
  |
  +--JavaGroups.Util

public class Util
extends java.lang.Object

Collection of various utility routines that can not be assigned to other classes.


Constructor Summary
Util()
           
 
Method Summary
static java.lang.String Array2String(boolean[] array)
           
static java.lang.String Array2String(int[] array)
           
static java.lang.String Array2String(long[] array)
           
static void Crash()
           
static byte[] DefragmentBuffer(byte[][] fragments)
          Concatenates smaller fragments into entire buffers.
static void DumpStack(boolean exit)
           
static byte[][] FragmentBuffer(byte[] buf, int frag_size)
          Fragments a byte buffer into smaller fragments of (max.) frag_size.
static void main(java.lang.String[] args)
           
static java.lang.Object ObjectFromByteBuffer(byte[] buffer)
          Creates an object from a byte buffer
static byte[] ObjectToByteBuffer(java.lang.Object obj)
          Serializes an object into a byte buffer.
static View PeekViews(Channel channel, int number_of_views, long timeout)
          Peeks for view on the channel until n views have been received or timeout has elapsed.
static java.util.Vector PickSubset(java.util.Vector members, double subset_percentage)
          Selects a random subset of members according to subset_percentage and returns them.
static void Print(java.lang.String msg)
           
static java.lang.String PrintEvent(Event evt)
           
static void PrintFragments(byte[][] frags)
           
static java.lang.String PrintMessage(Message msg)
          Tries to read an object from the message's buffer and prints it
static java.lang.String PrintMethodCall(Message msg)
          Tries to read a MethodCall object from the message's buffer and prints it.
static void PrintThreads()
           
static void Sleep(long timeout)
           
static void SleepRandom(long timeout)
          Sleeps between 1 and timeout milliseconds, chosen randomly.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Util

public Util()
Method Detail

ObjectFromByteBuffer

public static java.lang.Object ObjectFromByteBuffer(byte[] buffer)
                                             throws java.lang.Exception
Creates an object from a byte buffer

ObjectToByteBuffer

public static byte[] ObjectToByteBuffer(java.lang.Object obj)
                                 throws java.lang.Exception
Serializes an object into a byte buffer. The object has to implement interface Serializable.

Sleep

public static void Sleep(long timeout)

SleepRandom

public static void SleepRandom(long timeout)
Sleeps between 1 and timeout milliseconds, chosen randomly. Timeout must be > 1

DumpStack

public static void DumpStack(boolean exit)

Crash

public static void Crash()

PrintEvent

public static java.lang.String PrintEvent(Event evt)

PrintMessage

public static java.lang.String PrintMessage(Message msg)
Tries to read an object from the message's buffer and prints it

PrintMethodCall

public static java.lang.String PrintMethodCall(Message msg)
Tries to read a MethodCall object from the message's buffer and prints it. Returns empty string if object is not a method call

Print

public static void Print(java.lang.String msg)

PrintThreads

public static void PrintThreads()

FragmentBuffer

public static byte[][] FragmentBuffer(byte[] buf,
                                      int frag_size)
Fragments a byte buffer into smaller fragments of (max.) frag_size. Example: a byte buffer of 1024 bytes and a frag_size of 248 gives 4 fragments of 248 bytes each and 1 fragment of 32 bytes.
Returns:
An array of byte buffers (byte[]).

DefragmentBuffer

public static byte[] DefragmentBuffer(byte[][] fragments)
Concatenates smaller fragments into entire buffers.
Parameters:
fragments - An array of byte buffers (byte[])
Returns:
A byte buffer

PrintFragments

public static void PrintFragments(byte[][] frags)

PeekViews

public static View PeekViews(Channel channel,
                             int number_of_views,
                             long timeout)
Peeks for view on the channel until n views have been received or timeout has elapsed. Used to determine the view in which we want to start work. Usually, we start as only member in our own view (1st view) and the next view (2nd view) will be the full view of all members, or a timeout if we're the first member. If a non-view (a message or block) is received, the method returns immediately.
Parameters:
channel - The channel used to peek for views. Has to be operational.
number_of_views - The number of views to wait for. 2 is a good number to ensure that, if there are other members, we start working with them included in our view.
timeout - Number of milliseconds to wait until view is forced to return. A value of <= 0 means wait forever.

Array2String

public static java.lang.String Array2String(long[] array)

Array2String

public static java.lang.String Array2String(int[] array)

Array2String

public static java.lang.String Array2String(boolean[] array)

PickSubset

public static java.util.Vector PickSubset(java.util.Vector members,
                                          double subset_percentage)
Selects a random subset of members according to subset_percentage and returns them. Picks no member twice from the same membership. If the percentage is smaller than 1 -> picks 1 member.

main

public static void main(java.lang.String[] args)