notificationirpsystem.idl

来自「UCS (Ultra Corba Simulator) is one more 」· IDL 代码 · 共 173 行

IDL
173
字号
//File: NotificationIRPSystem.idl
#ifndef _NOTIFICATION_IRP_SYSTEM_IDL_
#define _NOTIFICATION_IRP_SYSTEM_IDL_

#include <CosNotifyChannelAdmin.idl>
#include <ManagedGenericIRPConstDefs.idl>
#include <ManagedGenericIRPSystem.idl>
#include <NotificationIRPConstDefs.idl>

// This statement must appear after all include statements
#pragma prefix "3gppsa5.org"

/* ## Module: NotificationIRPSystem
This module implements capabilities of Notification IRP.
================================================================
*/
module NotificationIRPSystem
{
   /*
   System fails to complete the operation. System can provide reason
   to qualify the exception. The semantics carried in reason
   is outside the scope of this IRP.
   */
   exception GetNotificationIRPVersions { string reason; };
   exception GetNotificationIRPOperationsProfile { string reason; };
   exception GetNotificationIRPNotificationProfile { string reason; };
   exception Attach { string reason; };
   exception DetachException { string reason; };
   exception GetSubscriptionStatus { string reason; };
   exception ChangeSubscriptionFilter { string reason; };
   exception GetNotificationCategories { string reason; };
   exception GetSubscriptionIds { string reason; };

   exception AlreadySubscribed {};
   exception AtLeastOneNotificationCategoryNotSupported {};

   interface NotificationIRP
   {
      /*
      Return the list of all supported Notification IRP versions
      Each IRPVersion is defined by the rule in TS 32.311 clause titled
      "IRP document version number string"
      */
      ManagedGenericIRPConstDefs::VersionNumberSet get_notification_irp_versions
      (
      )
      raises (GetNotificationIRPVersions);

      /*
      Return the list of all supported operations and their supported
      parameters for a specific Notification IRP version.
      */
      ManagedGenericIRPConstDefs::MethodList
         get_notification_irp_operations_profile (
            in ManagedGenericIRPConstDefs::VersionNumber
               notification_irp_version
      )
      raises (GetNotificationIRPOperationsProfile,
              ManagedGenericIRPSystem::OperationNotSupported,
              ManagedGenericIRPSystem::InvalidParameter);

      /*
      Return the list of all supported notifications.
      Agent should always throw a ManagedGenericIRPSystem::OperationNotSupported
      exception.
      Similar method, such as get_alarm_IRP_notification_profile,
      is supported in other IRP versions such as Alarm IRP.
      */
      ManagedGenericIRPConstDefs::MethodList
         get_notification_irp_notification_profile (
            in ManagedGenericIRPConstDefs::VersionNumber
               notification_irp_version
      )
      raises (GetNotificationIRPNotificationProfile,
              ManagedGenericIRPSystem::OperationNotSupported,
              ManagedGenericIRPSystem::InvalidParameter);

      /*
      Obtain the list of all supported notification categories.
      */
      NotificationIRPConstDefs::NotificationCategorySet
         get_notification_categories (
            out NotificationIRPConstDefs::NotificationTypesSetOpt
               notification_type_list
      )
      raises (GetNotificationCategories,
              ManagedGenericIRPSystem::OperationNotSupported);

      NotificationIRPConstDefs::SubscriptionId attach_push (
         in string manager_reference,
         in ManagedGenericIRPConstDefs::UnsignedLongOpt time_tick,
         in NotificationIRPConstDefs::NotificationCategorySetOpt
            notification_categories,
         in ManagedGenericIRPConstDefs::StringOpt filter
      )
      raises (Attach, ManagedGenericIRPSystem::ParameterNotSupported,
              ManagedGenericIRPSystem::InvalidParameter, AlreadySubscribed,
              AtLeastOneNotificationCategoryNotSupported);

      NotificationIRPConstDefs::SubscriptionId attach_push_b (
         in string manager_reference,
         in ManagedGenericIRPConstDefs::UnsignedLongOpt time_tick,
         in NotificationIRPConstDefs::NotificationCategorySetOpt
            notification_categories,
         in ManagedGenericIRPConstDefs::StringOpt filter,
         out CosNotifyChannelAdmin::SequenceProxyPushSupplier system_reference
      )
      raises (Attach, ManagedGenericIRPSystem::OperationNotSupported,
              ManagedGenericIRPSystem::ParameterNotSupported,
              ManagedGenericIRPSystem::InvalidParameter,
              AlreadySubscribed, AtLeastOneNotificationCategoryNotSupported);

      NotificationIRPConstDefs::SubscriptionId attach_pull (
         in string manager_reference,
         in ManagedGenericIRPConstDefs::UnsignedLongOpt time_tick,
         in NotificationIRPConstDefs::NotificationCategorySetOpt
            notification_categories,
         in ManagedGenericIRPConstDefs::StringOpt filter,
         out CosNotifyChannelAdmin::SequenceProxyPullSupplier system_reference
      )
      raises (Attach, ManagedGenericIRPSystem::OperationNotSupported,
              ManagedGenericIRPSystem::ParameterNotSupported,
              ManagedGenericIRPSystem::InvalidParameter,
              AlreadySubscribed, AtLeastOneNotificationCategoryNotSupported);

      /*
      Replace the present filter constraint with the one provided.
      */
      void change_subscription_filter (
         in NotificationIRPConstDefs::SubscriptionId subscription_id,
         in string filter
      )
      raises (ChangeSubscriptionFilter,
              ManagedGenericIRPSystem::OperationNotSupported,
              ManagedGenericIRPSystem::InvalidParameter);

      /*
      Check the current state of the subscription.
      */
      NotificationIRPConstDefs::NotificationCategorySet get_subscription_status
      (
         in NotificationIRPConstDefs::SubscriptionId subscription_id,
         out ManagedGenericIRPConstDefs::StringOpt filter_in_effect,
         out NotificationIRPConstDefs::SubscriptionStateOpt subscription_state,
         out ManagedGenericIRPConstDefs::UnsignedLongOpt time_tick
      )
      raises (GetSubscriptionStatus,
              ManagedGenericIRPSystem::OperationNotSupported,
              ManagedGenericIRPSystem::InvalidParameter);

      NotificationIRPConstDefs::SubscriptionIdSet get_subscription_ids (
         in string manager_reference
      )
      raises (GetSubscriptionIds,
              ManagedGenericIRPSystem::OperationNotSupported,
              ManagedGenericIRPSystem::InvalidParameter);

      /*
      Terminates the subscription with the agent.
      */
      void detach (
         in string manager_reference,
         in NotificationIRPConstDefs::SubscriptionIdOpt subscription_id
      )
      raises (DetachException,
              ManagedGenericIRPSystem::ParameterNotSupported,
              ManagedGenericIRPSystem::InvalidParameter);
   };

};

#endif // _NOTIFICATION_IRP_SYSTEM_IDL_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?