-- IDL module extracted from ITU-T X.780 (01/2001)
#ifndef _itut_x780ct_idl_
#define _itut_x780ct_idl_
#include <itut_x780.idl>
#include <itut_x780_1.idl>
#pragma prefix "itu.int"
/**
This IDL code is intended to be stored in a file named "itut_x780ct.idl"
located in the search path used by IDL compilers on your system.
*/
/**
This module, itut_x780ct, contains common data type for ITU-T CORBA
framework based information model. This module can be extended by adding
new data type.
*/
module itut_x780ct
{
// Imports
/**
Types imported from itut_x780
*/
typedef itut_x780::GeneralizedTimeType GeneralizedTimeType;
typedef itut_x780::PerceivedSeverityType PerceivedSeverityType;
// Data Types (X.721)
struct CounterThresholdType
{
long comparisonLevel;
long offsetValue;
boolean notificationOnOff;
};
struct NotifyThresholdType
{
float threshold;
boolean notifyOnOff;
};
struct GaugeThresholdType
{
NotifyThresholdType notifyLow;
NotifyThresholdType notifyHigh;
};
typedef sequence<GaugeThresholdType> GaugeThresholdSetType;
enum TideMarkChoice
{
tideMarkChoiceMax,
tideMarkChoiceMin
};
union TideMarkType switch (TideMarkChoice)
{
case tideMarkChoiceMax:
float maxTideMark;
case tideMarkChoiceMin:
float minTideMark;
};
struct TideMarkInfoType
{
TideMarkType currentTideMark;
TideMarkType previousTideMark;
GeneralizedTimeType resetTime;
};
// Data Types (X.739)
/**
PerceivedSeverityTypeOpt is an optional type. If the discriminator is true
the value is present, otherwise the value is null.
*/
union PerceivedSeverityTypeOpt switch (boolean)
{
case TRUE:
PerceivedSeverityType val;
};
/**
The SeverityIndicatingThresholdType contains the threshold level, which is to
be applied to counter/gauge attribute. It shall be initialized when the
managed object in which it is included is created and may be modified. An
optional parameter is used to associate the threshold level to the severity
parameter of the emitted notification. The generation of the notification can
be switched off using the boolean parameter notifyOnOff. The severity parameter
is mandatory if notifyOnOff is true.
If a notify-high or notify-low switch is on (true) and the severity indication
value is not present, then the indeterminate value is sent in the notification
unless the managed object behaviour specifies another value.
*/
struct SeverityIndicatingThresholdType
{
float threshold;
boolean notifyOnOff;
PerceivedSeverityTypeOpt severityIndication;
};
/**
The attribute of SeverityIndicatingGaugeThresholdType has similar behaviour to
the gauge-threshold attribute defined in X.721. The syntax has an added
parameter for indicating the associated severity, as defined in
SeverityIndicatingThresholdType, to the notification triggered by the crossing
of the corresponding threshold level. As an enhancement to the syntax of the
gauge-threshold attribute type it adds an optional severity indication
parameter to the syntax of both the notify-high and notify-low sub-members
within each threshold level member. This attribute type has additional
behaviour associated with these optional perceived severity indication
parameters, which is defined as follows:
- If the notify-high's switch is on (true), the notify-high's severity
indication value shall be reported in the perceived severity parameter of a
notification triggered by the gauge value crossing the notify-high's
gauge-threshold value in the positive going direction.
- If the notify-low's switch is on (true), the notify-low's severity
indication value shall be reported in the perceived severity parameter of a
notification triggered by the gauge value crossing the notify-low's
gauge-threshold value in the negative going direction.
- If both switches are on (true) for a single threshold level, one of the
severity indication values shall be "clear". The severity indicating
gauge-threshold shall only emit a clear event notification if the
corresponding threshold level (either notify-high or notify-low) notification
has been emitted and no other clear notification for this threshold level pair
has been emitted since the previous corresponding threshold level notification
has been emitted.
*/
struct SeverityIndicatingGaugeThresholdType
{
SeverityIndicatingThresholdType notifyLow;
SeverityIndicatingThresholdType notifyHigh;
};
/**
The order is insignificant.
*/
typedef sequence<SeverityIndicatingGaugeThresholdType>
SeverityIndicatingGaugeThresholdSetType;
struct TimeIntervalType
{
unsigned short day;
unsigned short hour;
unsigned short minute;
unsigned short second;
unsigned short ms;
};
/**
The following definitions are translated from X.739 ASN.1 definitions.
*/
enum TimePeriodChoice
{
timePeriodChoiceDays,
timePeriodChoiceHours,
timePeriodChoiceMinutes,
timePeriodChoiceSeconds,
timePeriodChoiceMilliSeconds,
timePeriodChoiceMicroSeconds,
timePeriodChoiceNanoSeconds,
timePeriodChoicePicoSeconds
};
union TimePeriodType switch (TimePeriodChoice)
{
case timePeriodChoiceDays:
long day;
case timePeriodChoiceHours:
long hour;
case timePeriodChoiceMinutes:
long minute;
case timePeriodChoiceSeconds:
long second;
case timePeriodChoiceMilliSeconds:
long ms;
case timePeriodChoiceMicroSeconds:
long us;
case timePeriodChoiceNanoSeconds:
long ns;
case timePeriodChoicePicoSeconds:
long ps;
};
}; // module itut_x780ct
#endif // _itut_x780ct_idl_