org.jgroups.stack
Class Configurator
java.lang.Object
org.jgroups.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.
createProtocol
public Protocol createProtocol(String prot_spec,
ProtocolStack stack)
throws Exception
Creates a new protocol given the protocol specification. Initializes the properties and starts the
up and down handler threads.
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
- Protocol The newly created protocol
insertProtocol
public void insertProtocol(Protocol prot,
int position,
String neighbor_prot,
ProtocolStack stack)
throws 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.
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
main
public static void main(args[] )
parseComponentStrings
public Vector parseComponentStrings(String config_str,
String delimiter)
Get a string of the form "P1(config_str1):P2:P3(config_str3)" and return
ProtocolConfigurations for it. That means, parse "P1(config_str1)", "P2" and
"P3(config_str3)"
config_str
- Configuration string
- Vector of ProtocolConfigurations
parseConfigurations
public Vector parseConfigurations(String configuration)
throws Exception
Return a number of ProtocolConfigurations in a vector
configuration
- protocol-stack configuration string
- Vector of ProtocolConfigurations
removeProtocol
public void removeProtocol(String prot_name)
throws Exception
Removes a protocol from the stack. Stops the protocol and readjusts the linked lists of
protocols.
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.
sanityCheck
public void sanityCheck(Vector protocols)
throws Exception
Throws an exception if sanity check fails. Possible sanity check is uniqueness of all protocol
names.
setupProtocolStack
public Protocol setupProtocolStack(String configuration,
ProtocolStack st)
throws 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)
Copyright B) 2001,2002 www.jgroups.com . All Rights Reserved.