next up previous top
Next: Player
Up: Component Type
Previous: SchedProcess

General

Semantics

The component type General is used to describe components that do not exhibit the behavior described by any of the other pre-defined UniCon component types. It is useful for describing systems and subsystems which do not, as a whole, exhibit the behavior described by a single component type. For example, it is useful for describing a system of Process or SchedProcess components. Since this type of system cannot be described with any of the other UniCon component types, the type General is used. The component type General does not describe a specific set of semantics, and therefore no special type-related semantic checks are performed.

The danger in using this type is that any component can be described using the type
General, and so it can be misused to bypass the checks that guarantee that a component behaves according to the semantics defined by one of the other pre-defined component types in UniCon.

A proper use of the General component type is to describe systems or subsystems that do not exhibit the behavior described by a single one of any of the other pre-defined component types in UniCon.

Player types

Players of any of the legal UniCon player types may be exposed in the interface of a component of type General:

an exported procedure or function definition
a call to an exported procedure or function definition in another compilation unit
an exported global data definition
a reference to an exported global data definition in another compilation unit
a collection of programming language players, players of types
RoutineDef, RoutineCall, GlobalDataDef, and GlobalDataUse
an exported remote procedure or function definition
a call to a remote procedure or function exported by another process
data arriving as an input stream at a port in a Unix filter
data exiting as an output stream from a port in a Unix filter
a read operation from a file
a write operation to a file
the next data item to be read
the next data item to be written
the execution-time and period information for the real-time process

Properties

Any of the component properties can be legally included in the property list of a General component. Properties legal in an <interface> property list have a C in parentheses after the property name; those legal in an <instantiation> property list have an I:

The syntax for an InstFormals property in a component of type
General is a comma-separated list of <parameter>s enclosed in parentheses. A <parameter> consists of an <identifier>, followed by a `=', followed by a <complex string> or the language keyword NODEFAULT. A <complex string> is a simple "string" or a sequence of "string"s concatenated by the `&' character:

INSTFORMALS (first_parameter = "an initial value",
second_parameter = "a much" &
"longer initial value that " &
"will not fit on one line",
third_parameter = NODEFAULT)
The syntax for a Variant property in a component of type
General is a single <identifier> or "string" surrounded by parentheses:

VARIANT (a_variant_name)
VARIANT ("a variant name")
The syntax for a Processor property in a component of type
General is a single <identifier> or "string" surrounded by parentheses:

PROCESSOR (a_processor_name)
PROCESSOR ("a.processor.name")
The syntax for the EntryPoint property in a General component is a single <identifier> or "string" surrounded by parentheses:

ENTRYPOINT (an_entrypoint_name)
ENTRYPOINT ("an entrypoint name")
The syntax for the InitRoutine property in a General component is a single <identifier> or "string" surrounded by parentheses:

INITROUTINE (a_routine_name)
INITROUTINE ("a routine name")
The syntax for an RPCTypeDef property in a General component consists of a sequence of three fields, all separated by semicolons, with the entire sequence enclosed in parentheses. The first field is an <identifier> or "string". The second field is also an <identifier> or "string". The third field is optional, and consists of a <size item> (if the third field is omitted, the semicolon following the second field is also omitted). A <size item> consists of an optional <array item>, followed by an <integer>. An <array item> consists of one or more consecutive <array index>s of the form `[` <integer> `]':

RPCTYPEDEF (a_type_name; "another one")
RPCTYPEDEF (a_type_name; another_one; 32)
RPCTYPEDEF ("a type name"; another_one; [25] [16] 32)
The syntax for an RPCTypesIn property in a General component is a comma-separated list of items, surrounded by parentheses, that are either <identifier>s or "string"s:

RPCTYPESIN ("an_include_file.h", "another_one.h")
The syntax for a Priority property in a General component is a single <integer>:

PRIORITY (12)
The syntax for a SegmentDef property in a General component consists of two fields, separated by a semicolon, and enclosed in parentheses. The first field is a single <identifier> or "string". The second field is a single <floating point number>:

SEGMENTDEF (a_segment_name, 1.0E2)
SEGMENTDEF ("a segment name", 1.0E2)
The syntax for a TriggerDef property in a General component consists of two fields, separated by a semicolon, and enclosed in parentheses. The first field is a single <identifier> or "string". The second field is a single <floating point number> or the word "asynchronous" (either quoted, or unquoted):

TRIGGERDEF (a_trigger_name, 1.0E2)
TRIGGERDEF ("a trigger name", asynchronous)
The syntax for a RecordFormat property in a component of type
General is a comma-separated list of items, surrounded by parentheses, that are either <identifier>s or "strings":

RECORDFORMAT (a_type_name, "another type name")
The syntax for an OpenMode property in a component of type
General is a comma-separated list containing a subset of the words truncate, append, and create, surrounded by parentheses. These words can be specified as either <identifier>s or "strings":

OPENMODE (create, "append")
The Library property has no associated value. The syntax, therefore, is simply:

LIBRARY

Semantic Checks

No special semantic checks are made for components of type General.

Implementation Considerations

At this time, no implementation considerations are suggested, since no semantics are associated with this component type.


next up previous top
Next: Player
Up: Component Type
Previous: SchedProcess

Comments? Mail the current maintainer of this page.

Author: Gregory Zelesnik

Last Modified: May 12, 1996