org.javagroups.stack
Class Configurator
java.lang.Object
|
+--org.javagroups.stack.Configurator
- public class Configurator
- extends java.lang.Object
The task if this class is to setup and configure the protocol stack. A string describing
the desired setup, which is both the layering and the configuration of each layer, is
given to the configurator which creates and configures the protocol stack and returns
a reference to the top layer (Protocol).
Future functionality will include the capability to dynamically modify the layering
of the protocol stack and the properties of each layer.
- Author:
- Bela Ban
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Configurator
public Configurator()
setupProtocolStack
public Protocol setupProtocolStack(java.lang.String configuration,
ProtocolStack st)
throws java.lang.Exception
- The configuration string has a number of entries, separated by a ':' (colon).
Each entry consists of the name of the protocol, followed by an optional configuration
of that protocol. The configuration is enclosed in parentheses, and contains entries
which are name/value pairs connected with an assignment sign (=) and separated by
a semicolon.
UDP(in_port=5555;out_port=4445):FRAG(frag_size=1024)
The first entry defines the bottommost layer, the string is parsed
left to right and the protocol stack constructed bottom up. Example: the string
"UDP(in_port=5555):FRAG(frag_size=32000):DEBUG" results is the following stack:
-----------------------
| DEBUG |
|-----------------------|
| FRAG frag_size=32000 |
|-----------------------|
| UDP in_port=32000 |
-----------------------
startProtocolStack
public void startProtocolStack(Protocol bottom_prot)
stopProtocolStack
public void stopProtocolStack(Protocol start_prot)
findProtocol
public Protocol findProtocol(Protocol prot_stack,
java.lang.String name)
getBottommostProtocol
public Protocol getBottommostProtocol(Protocol prot_stack)
throws java.lang.Exception
createProtocol
public Protocol createProtocol(java.lang.String prot_spec,
ProtocolStack stack)
throws java.lang.Exception
- Creates a new protocol given the protocol specification. Initializes the properties and starts the
up and down handler threads.
- Parameters:
prot_spec
- The specification of the protocol. Same convention as for specifying a protocol stack.
An exception will be thrown if the class cannot be created. Example:
"VERIFY_SUSPECT(timeout=1500)"
Note that no colons (:) have to be
specifiedstack
- The protocol stack- Returns:
- Protocol The newly created protocol
- Throws:
java.lang.Exception
- Will be thrown when the new protocol cannot be created
insertProtocol
public void insertProtocol(Protocol prot,
int position,
java.lang.String neighbor_prot,
ProtocolStack stack)
throws java.lang.Exception
- Inserts an already created (and initialized) protocol into the protocol list. Sets the links
to the protocols above and below correctly and adjusts the linked list of protocols accordingly.
- Parameters:
prot
- The protocol to be inserted. Before insertion, a sanity check will ensure that none
of the existing protocols have the same name as the new protocol.position
- Where to place the protocol with respect to the neighbor_prot (ABOVE, BELOW)neighbor_prot
- The name of the neighbor protocol. An exception will be thrown if this name
is not foundstack
- The protocol stack- Throws:
java.lang.Exception
- Will be thrown when the new protocol cannot be created, or inserted.
removeProtocol
public void removeProtocol(java.lang.String prot_name)
throws java.lang.Exception
- Removes a protocol from the stack. Stops the protocol and readjusts the linked lists of
protocols.
- Parameters:
prot_name
- The name of the protocol. Since all protocol names in a stack have to be unique
(otherwise the stack won't be created), the name refers to just 1 protocol.- Throws:
java.lang.Exception
- Thrown if the protocol cannot be stopped correctly.
main
public static void main(java.lang.String[] args)
Copyright © 2001,2002 www.javagroups.com . All Rights Reserved.