Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## things.thinger
Interface SystemSuperInterface

All Superinterfaces:
  SystemInterface

All Known Implementing Classes:
  KernelBasic, KernelBasicBase

    public interface SystemSuperInterface

extends SystemInterface

System Interface used by internal systems.

Version:
  1.0

  Version History

       EPG - Initial - 8 OCT 03
       EPG - Add user global properties - 19 JUL 07

Author:
  Erich P. Gatejen

Field Summary

Fields inherited from interface things.thinger.SystemInterface
`DEFAULT_REPORTING_THRESHOLD`

Method Summary
`void` | `deathNotice(ThingsException te)` Typically, this is how a process will tell the kernel it is dying, so that the kernel can clear resources.
`void` | `flingException(ThingsException te)` Typically, this is a last ditch way for a process or module to pass info to the kernel when something very bad is happening.
`ThingsPropertyView` | `getConfigPropertiesWritable()` Get the configuration properties that are writable.
`ThingsPropertyView` | `getGlobalProperties()` Get system global property view.
`ThingsPropertyView` | `getLocalProperties(java.lang.String id)` Get local property view for the given id.
`ConduitController` | `getSystemConduits()` Get the system conduit controller.
`ThingsPropertyView` | `getUserGlobalProperties()` Get user global property view.
`void` | `registerProcess(PCB processPCB, Clearance processClearance)` Register a ready-made PCB.
`void` | `requestQuit()` Ask the server to quit.
`WhoAmI` | `startProcess(ThingsProcess processObject, ThingsPropertyView properties)` Start the passed process.
`WhoAmI` | `startProcess(ThingsProcess processObject, ThingsPropertyView properties, Clearance processClearance)` Start the passed process.

Methods inherited from interface things.thinger.SystemInterface
`getCallingProcessId, getConfigProperties, getLocalProperties, getLocalPropertiesImplementation, getLogLocal, getNamedExpressor, getNamedLogger, getProcessInterface, getProcessList, getProcessState, getSharedProperties, getSystemLogger, getUniverse, loadModule, loadThing, requestSuperSystemInterface, runThing, runThing, runThing, waitProcessDone`

Method Detail

### getGlobalProperties

    ThingsPropertyView getGlobalProperties()
                                           throws SystemException

  Get system global property view. This is primarily for system work.

  Returns:
    a property view
  Throws:
    `SystemException`

### getUserGlobalProperties

    ThingsPropertyView getUserGlobalProperties()
                                               throws SystemException

  Get user global property view. These properties are copied into a user process as local properties when the process is created. It's a snapshot, updated to the original global properties and the new local properties will not affect each other.

  Returns:
    a property view
  Throws:
    `SystemException`

### getConfigPropertiesWritable

    ThingsPropertyView getConfigPropertiesWritable()
                                                   throws SystemException

  Get the configuration properties that are writable. Anything that has access to the SSI can touch these.

  Returns:
    a property view
  Throws:
    `SystemException`

### getLocalProperties

    ThingsPropertyView getLocalProperties(java.lang.String id)
                                          throws SystemException

  Get local property view for the given id.

  Parameters:
    `id` - String id of the process.
  Returns:
    a property view or null if the id doesn't identify any known process.
  Throws:
    `SystemException`

### flingException

    void flingException(ThingsException te)

  Typically, this is a last ditch way for a process or module to pass info to the kernel when something very bad is happening. There is no feedback loop.

  Parameters:
    `te` - a Things exception
  Throws:
    `SystemException`
  See Also:
    `WhoAmI`

### deathNotice

    void deathNotice(ThingsException te)

  Typically, this is how a process will tell the kernel it is dying, so that the kernel can clear resources. This really should be the LAST thing a process does before exiting run(). If can be used instead of flingException.

  Parameters:
    `te` - a Things exception that indicates the reason for the death. It may be null if it was normal termination.
  Throws:
    `SystemException`
  See Also:
    `WhoAmI`

### requestQuit

    void requestQuit()

  Ask the server to quit.

### startProcess

    WhoAmI startProcess(ThingsProcess processObject,
                        ThingsPropertyView properties,
                        Clearance processClearance)
                        throws java.lang.Throwable

  Start the passed process. Assume a loader will be doing this. The process should be loaded, constructed, but not initialized. If the state is not STATE_CONSTRUCTION, it will throw an exception.

  Parameters:
    `processObject` - This will be a ThingsProcess or subclass.
    `properties` - These are properties to add (or supplant) to the processes specific view before starting the process. It is ok to pass null if there are none.
    `processClearance` - specify the process clearance level. This must be at or lower than the calling process's clearance.
  Returns:
    the ID of the started process.
  Throws:
    `java.lang.Throwable`
  See Also:
    `WhoAmI`

### startProcess

    WhoAmI startProcess(ThingsProcess processObject,
                        ThingsPropertyView properties)
                        throws java.lang.Throwable

  Start the passed process. Assume a loader will be doing this. The process should be loaded, constructed, but not initialized. If the state is not STATE_CONSTRUCTION, it will throw an exception.
  All processes started with this will have DEFAULT_USER_CLEARANCE.

  Parameters:
    `processObject` - This will be a ThingsProcess or subclass.
    `properties` - These are properties to add (or supplant) to the processes specific view before starting the process. It is ok to pass null if there are none.
  Returns:
    the ID of the started process.
  Throws:
    `java.lang.Throwable`
  See Also:
    `WhoAmI`

### registerProcess

    void registerProcess(PCB processPCB,
                         Clearance processClearance)
                         throws ThingsException

  Register a ready-made PCB. It'll allows you to set the clearance level. The kernel may choose to deny the operation. So normally, use startProcess instead. The process will not be given standard property paths and initialization, as you get with the startProcess method. This exists mostly for debugging and testing, but may be useful for processes that live outside the normal processing framework.

  Parameters:
    `processPCB` - This will be a ready-made PCB.
    `processClearance` - The clearance level. This will be immutable.
  Throws:
    `ThingsException`

### getSystemConduits

    ConduitController getSystemConduits()
                                        throws SystemException

  Get the system conduit controller. These are for conduits between privileged services.

  Returns:
    a ConduitController
  Throws:
    `SystemException`
  See Also:
    `ConduitController`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Things.