com.foxsmart.csu.config.global
Class SchedulerComponent

java.lang.Object
  extended by com.foxsmart.csu.config.CiscoRouterConfigParser
      extended by com.foxsmart.csu.config.CiscoRouterConfigComponent
          extended by com.foxsmart.csu.config.global.SchedulerComponent
All Implemented Interfaces:
MultiLineComponent, java.io.Serializable

public class SchedulerComponent
extends CiscoRouterConfigComponent
implements MultiLineComponent

The Scheduler class represents the behavior and priorities for the router's system process scheduler.

See Also:
Serialized Form

Field Summary
static java.lang.String ALLOCATE
           
static java.lang.String HANG
           
static java.lang.String INTERVAL
           
static int MAX_INTERVAL_MILLISECS
          Maximum internal microseconds.
static int MIN_INTERVAL_MILLISECS
          Minimum interval microseconds.
static java.lang.String NORMAL
           
static java.lang.String PROCESS_WATCHDOG
           
static java.lang.String RELOAD
           
static java.lang.String SCHEDULER
           
static java.lang.String TERMINATE
           
 
Fields inherited from class com.foxsmart.csu.config.CiscoRouterConfigComponent
commentComponent, componentMap, log, parentComponent
 
Fields inherited from class com.foxsmart.csu.config.CiscoRouterConfigParser
NO, tokenIndex
 
Constructor Summary
SchedulerComponent()
          Constructs a scheduler object.
 
Method Summary
 java.util.List buildFromIos(java.util.List configLines)
          Parse and populate the specific CiscoRouterComponent object based on the passed in individual lines of the IOS configuration.
 Commands generateDeleteIos(CiscoRouterConfig updatedCiscoRouterConfig)
          Generates the IOS configuration commands to delete this component.
 Commands generateIos()
          Returns the IOS configuration commands for this component.
 SchedulerAllocate getAllocate()
          Gets the scheduler allocation information.
 java.lang.Integer getInterval()
          Gets the scheduler interval in milliseconds.
 java.lang.String getProcessWatchdog()
          Gets the process watchdog functionality.
 void setAllocate(SchedulerAllocate allocate)
          Sets the scheduler allocation information.
 void setInterval(java.lang.Integer interval)
          Sets the scheduler interval in milliseconds.
 void setProcessWatchdog(java.lang.String processWatchdog)
          Sets the process watchdog functionality which Configures an action for a looping process.
 void validate()
          Validates this object to ensure it contains a valid IOS configuration.
 
Methods inherited from class com.foxsmart.csu.config.CiscoRouterConfigComponent
addComponent, addComponent, checkComponentType, deleteOldConfigWhenUpdating, dumpComponents, generateChildrenUpdateConfiglet, generateCompositeIos, generateCompositeIos, generateIos, generateIos, generateIos, generateMultiLineUpdateConfiglet, generateUpdateCompositeIos, generateUpdateIos, generateUpdateIos, getAllComponents, getCiscoRouterConfig, getComment, getComponentClassName, getComponentClassName, getComponentKeys, getComponents, getComponents, getDeferredDelete, getFirstComponent, getFirstComponent, getParentComponent, getTotalComponents, getTotalComponents, getUpdateConfiglet, instantiateComponent, instantiateComponent, isValid, removeAllComponents, removeAllComponents, removeAllComponents, removeComponent, removeComponent, removeComponent, requiresCommentSeparator, setComment, setParentComponent, validateChildren
 
Methods inherited from class com.foxsmart.csu.config.CiscoRouterConfigParser
checkExists, checkLineComplete, checkNotEmpty, checkRange, checkTokenCount, checkTokenCount, checkTokenMatch, checkTokenMatch, decrementTokenIndex, generateCommands, getBigDecimalNumberFromString, getDoubleNumberFromString, getEnum, getHexadecimalNumberFromString, getIntegerNumberFromString, getIpAddressFromString, getLine, getLongNumberFromString, getMacAddressFromString, getNextOptionalToken, getNextToken, getToken, getTokenIndex, getTokens, getTotalIndentedLines, getTotalLines, incrementTokenIndex, invalidConfiguration, invalidTokenFound, isEmpty, moreIndentedLines, moreLines, moreTokens, removeLines, resetTokenIndex, setTokenIndex, tokensLeft
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MIN_INTERVAL_MILLISECS

public static final int MIN_INTERVAL_MILLISECS
Minimum interval microseconds.

See Also:
Constant Field Values

MAX_INTERVAL_MILLISECS

public static final int MAX_INTERVAL_MILLISECS
Maximum internal microseconds.

See Also:
Constant Field Values

SCHEDULER

public static final java.lang.String SCHEDULER
See Also:
Constant Field Values

ALLOCATE

public static final java.lang.String ALLOCATE
See Also:
Constant Field Values

HANG

public static final java.lang.String HANG
See Also:
Constant Field Values

INTERVAL

public static final java.lang.String INTERVAL
See Also:
Constant Field Values

NORMAL

public static final java.lang.String NORMAL
See Also:
Constant Field Values

PROCESS_WATCHDOG

public static final java.lang.String PROCESS_WATCHDOG
See Also:
Constant Field Values

RELOAD

public static final java.lang.String RELOAD
See Also:
Constant Field Values

TERMINATE

public static final java.lang.String TERMINATE
See Also:
Constant Field Values
Constructor Detail

SchedulerComponent

public SchedulerComponent()
Constructs a scheduler object.

Method Detail

setAllocate

public void setAllocate(SchedulerAllocate allocate)
Sets the scheduler allocation information. For the Cisco 7200 series and Cisco 7500 series, this will change the default time the CPU spends on process tasks and fast switching. If set to null, no allocate command will be issued and the router will use its default "no allocation" behavior. If allocate is a valid object that contains all null values, the default schedule allocate command (i.e. one with no parameters) will be issued. The routers default values are 4000 network interrupt microseconds and 1000 running process microseconds in this case.

Parameters:
allocate - The allocation information.

getAllocate

public SchedulerAllocate getAllocate()
Gets the scheduler allocation information.

Returns:
the allocation information.

setInterval

public void setInterval(java.lang.Integer interval)
Sets the scheduler interval in milliseconds. This value defines the maximum amount of time that can elapse without the router running the lowest-priority system processes. Valid values are from 100-2147483647 milliseconds.

Parameters:
interval - The scheduler interval.

getInterval

public java.lang.Integer getInterval()
Gets the scheduler interval in milliseconds.

Returns:
the scheduler interval.

setProcessWatchdog

public void setProcessWatchdog(java.lang.String processWatchdog)
Sets the process watchdog functionality which Configures an action for a looping process. Valid values are null, or one of the following class constants: HANG, NORMAL, RELOAD, or TERMINATE. The following is a description of each value: HANG: Retain the process but do not schedule it. NORMAL: Factory specified per-process behavior (default) RELOAD: Reload the system TERMINATE: Terminate the process and continue.

Parameters:
processWatchdog - The process watchdog functionality.

getProcessWatchdog

public java.lang.String getProcessWatchdog()
Gets the process watchdog functionality.

Returns:
the process watchdog functionality.

buildFromIos

public java.util.List buildFromIos(java.util.List configLines)
                            throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Parse and populate the specific CiscoRouterComponent object based on the passed in individual lines of the IOS configuration. The passed in configuration lines should represent the first line in the configuration that applies to the specific component. The component should use all lines needed by its specific part of the configuration and return a List with the remaining lines that are not part of the component's configuration.

Specified by:
buildFromIos in class CiscoRouterConfigComponent
Parameters:
configLines - The list of IOS configuration lines.
Returns:
The rest of the lines that were not parsed by the component.
Throws:
InvalidConfigurationException - if the IOS configuration can not be parsed for any reason.
See Also:
CiscoRouterConfigComponent

validate

public void validate()
              throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Validates this object to ensure it contains a valid IOS configuration.

Specified by:
validate in class CiscoRouterConfigComponent
Throws:
InvalidConfigurationException - if the configuration is invalid.
See Also:
CiscoRouterConfigComponent

generateIos

public Commands generateIos()
                     throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Returns the IOS configuration commands for this component.

Specified by:
generateIos in class CiscoRouterConfigComponent
Returns:
The IOS configuration string as a list of Command objects. To generate a configlet from the list of Command objects, use Command.getConfiglet().
Throws:
InvalidConfigurationException - if the IOS configuration is invalid and the IOS string can not be generated. The validate() method is used to determine if the configuration is valid.
See Also:
CiscoRouterConfigComponent

generateDeleteIos

public Commands generateDeleteIos(CiscoRouterConfig updatedCiscoRouterConfig)
                           throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Generates the IOS configuration commands to delete this component. This is the default implementation that generates a "no" statement followed by the generateIos() string for non CompositeComponents or generateHeaderIos() for CompositeComponents. Specific components may choose to override this method if this implementation is incorrect. The "no" keyword is placed where the first character of the command is located. For example, if the IOS command is " length 255", then the returned command will be " no length 255" (and not "no length 255").

Note that this implementation will call the getDeferredDelete method on the component and set the "deferred flag" on the returned Commands with its returned value.

Specified by:
generateDeleteIos in interface MultiLineComponent
Overrides:
generateDeleteIos in class CiscoRouterConfigComponent
Parameters:
updatedCiscoRouterConfig - the updated Cisco router configuration.
Returns:
The generated IOS string to deleted the component.
Throws:
InvalidConfigurationException - if the IOS configuration is invalid and the IOS string can not be generated. The validate() method is used to determine if the configuration is valid.
See Also:
MultiLineComponent


Copyright © 2005-2008 Fox Smart, Inc. All Rights Reserved.