Previous section.

Book 2: Inter-Domain Management: Interaction Translation (JIDM_IT)
Copyright © 1999 The Open Group

Complete IDL Specification

This appendix presents the complete IDL specified in this Interaction Translation technical standard and in the associated Specification Translation technical standard.

Interaction Translation IDL

IDL listed in this section is specified in this Interaction Translation document.

JIDM.idl


// File: JIDM.idl
#ifndef _JIDM_IDL_
#define _JIDM_IDL_

#include <CosNaming.idl>
#include <CosLifeCycle.idl>
#include <CosEventChannelAdmin.idl>

#pragma prefix jidm.org

module JIDM
{
	typedef CosNaming::Name Key;
	typedef CosLifeCycle::Criteria Criteria;

	exception InvalidKey {};
	exception InvalidCriteria {};
	exception CannotMeetCriteria { Criteria reason; };
	exception CannotAccess {};
	exception AlreadyExists {};
	exception NoEventPort {};

	interface ProxyAgent {
		enum DestructionMode {gracefully, non_gracefully};
		readonly attribute Criteria access_criteria;

		CosLifeCycle::FactoryFinder get_domain_factory_finder ();
		CosNaming::NamingContext get_domain_naming_context ();

		Criteria destroy (in DestructionMode mode, in Criteria the_criteria)
			raises (InvalidCriteria, CannotMeetCriteria);
	};

	interface ProxyAgentController {
		Criteria destruction_is_allowed (in Criteria the_criteria)
			raises (InvalidCriteria,CannotMeetCriteria);
		void destroyed (in Criteria the_criteria);
	};

	interface ProxyAgentFinder {
		ProxyAgent access_domain (in Key k, in Criteria the_criteria)
			raises (InvalidKey, CannotAccess, InvalidCriteria, CannotMeetCriteria);
	};

	interface DomainPort {
		readonly attribute Criteria associated_criteria; 
	void destroy ();
	};

	interface DomainPortFactory {
		DomainPort create_domain_port (in Key k, in Criteria creation_criteria)
			raises (InvalidKey, InvalidCriteria, CannotMeetCriteria);
	};

	interface EventPort {
		readonly attribute CosEventChannelAdmin::SupplierAdmin supplier_admin;
		readonly attribute Criteria associated_criteria;
		void destroy ();
	};

	interface EventPortFactory {
		EventPort
			create_event_port (in Key k, in Criteria creation_criteria,
				in CosEventChannelAdmin::SupplierAdmin the_supplier_admin)
				raises (InvalidKey, InvalidCriteria, CannotMeetCriteria, AlreadyExists);
	};

	interface EventPortFinder {
		CosEventChannelAdmin::SupplierAdmin
			find_event_port (in Key k, in Criteria the_criteria)
				raises (InvalidKey, InvalidCriteria, CannotMeetCriteria, NoEventPort);
	};
};

#endif /* _JIDM_IDL_ */


OSIMgmt.idl


// File: OSIMgmt.idl
#ifndef _OSIMGMT_IDL_
#define _OSIMGMT_IDL_

#include <orb.idl>
#include <JIDM.idl>
#include X501Inf.idl
#include X711CMI.idl

#pragma prefix jidm.org

// Macros used in the `raises clauses

#define ROSE_ERRORS\
	OSIMgmt::ROSEDuplicateInvocation,\
	OSIMgmt::ROSEMistypedArgument,\
	OSIMgmt::ROSEResourceLimitation, \
	OSIMgmt::ROSEUnrecognizedOperation

#define CREATE_ERRORS\
	ROSE_ERRORS, \
	OSIMgmt::AccessDenied,\
	OSIMgmt::ClassInstanceConflict,\
	OSIMgmt::DuplicateManagedObjectInstance,\
	OSIMgmt::InvalidAttributeValue,\
	OSIMgmt::InvalidObjectInstance,\
	OSIMgmt::MissingAttributeValue,\
	OSIMgmt::NoSuchAttribute,\
	OSIMgmt::NoSuchObjectClass,\
	OSIMgmt::NoSuchObjectInstance,\
	OSIMgmt::NoSuchReferenceObject,\
	OSIMgmt::ProcessingFailure,\
	OSIMgmt::ProcessingFailureEmpty

#define COMMON_ERRORS \
	ROSE_ERRORS, \
	OSIMgmt::AccessDenied, \
	OSIMgmt::ClassInstanceConflict, \
	OSIMgmt::ComplexityLimitation, \
	OSIMgmt::ComplexityLimitationEmpty, \
	OSIMgmt::InvalidScope, \
	OSIMgmt::InvalidFilter, \
	OSIMgmt::NoSuchObjectClass, \
	OSIMgmt::NoSuchObjectInstance, \
	OSIMgmt::ProcessingFailure, \
	OSIMgmt::ProcessingFailureEmpty, \
	OSIMgmt::SyncNotSupported

#define GET_ERRORS \
	COMMON_ERRORS, \
	OSIMgmt::GetListError, \
	OSIMgmt::OperationCancelled

#define SET_ERRORS \
	COMMON_ERRORS, \
	OSIMgmt::SetListError

#define ATTRIBUTE_ERRORS \
	COMMON_ERRORS, \
	OSIMgmt::GetListError, \
	OSIMgmt::SetListError

#define ACTION_ERRORS \
	COMMON_ERRORS, \
	OSIMgmt::InvalidArgumentValue, \
	OSIMgmt::NoSuchAction, \
	OSIMgmt::NoSuchArgument

#define DELETE_ERRORS \
	COMMON_ERRORS

module OSIMgmt
{
	// Definitions of ROSE and CMIS exceptions
	exception ROSEDuplicateInvocation { };
	exception ROSEMistypedArgument { };
	exception ROSEResourceLimitation { };
	exception ROSEUnrecognizedOperation { };

	exception AccessDenied { };
	exception ClassInstanceConflict
		{ X711CMI::BaseManagedObjectIdType error_info; };
	exception ComplexityLimitation
		{ X711CMI::ComplexityLimitationType error_info; };
	exception ComplexityLimitationEmpty { };
	exception DuplicateManagedObjectInstance
		{ X711CMI::ObjectInstanceType error_info; };
	exception GetListError
		{ X711CMI::GetListErrorType error_info; };
	exception InvalidArgumentValue
		{ X711CMI::InvalidArgumentValueType error_info; };
	exception InvalidAttributeValue
		{ X711CMI::AttributeType error_info; };
	exception InvalidFilter
		{ X711CMI::CMISFilterType error_info; };
	exception InvalidScope
		{ X711CMI::ScopeType error_info; };
	exception InvalidObjectInstance
		{ X711CMI::ObjectInstanceType error_info; };
	exception MissingAttributeValue
		{ X711CMI::MissingAttributeValueType error_info; };
	exception MistypedOperation { };
	exception NoSuchAction
		{ X711CMI::NoSuchActionType error_info; };
	exception NoSuchArgument
		{ X711CMI::NoSuchArgumentType error_info; };
	exception NoSuchAttribute
		{ X711CMI::AttributeIdType error_info; };
	exception NoSuchObjectClass
		{ X711CMI::ObjectClassType error_info; };
	exception NoSuchObjectInstance
		{ X711CMI::ObjectInstanceType error_info; };
	exception NoSuchReferenceObject
		{ X711CMI::ObjectInstanceType error_info; };
	exception OperationCancelled { };
	exception ProcessingFailure
		{ X711CMI::ProcessingFailureType error_info; };
	exception ProcessingFailureEmpty { };
	exception SetListError
		{ X711CMI::SetListErrorType error_info; };
	exception SyncNotSupported
		{ X711CMI::CMISSyncType error_info; };
	exception NoSuchEventType
		{ X711CMI::NoSuchEventTypeType error_info; };
	exception NoSuchInvokeId
		{ X711CMI::InvokeIdTypeType error_info; };

	// Using Multiple Replies exception for Actions
	interface RepliesIterator; // forward declaration
	exception UsingMR
		{ RepliesIterator replies_iterator; };

	// Definition of specific types used within this module
	typedef string NameString;
	typedef sequence<ASN1_ObjectIdentifier> ASN1_ObjectIdentifierSeq;
	struct AttributeValue {
		ASN1_ObjectIdentifier attribute_id;
		ASN1_DefinedAny value;
	};
	typedef sequence<AttributeValue> AttributeValueSeq;

	// Type to be used in cmis_create operations
	enum CreationKind
		{simple, autonaming, subordinate};

	// Type to be used in scoped set operations
	enum ModifyOperator
		{replace, add_member, remove_member, replace_with_default};

	struct AttributeSetOperator {
		ModifyOperator modify_operator;
		ASN1_ObjectIdentifier attribute_id;
		ASN1_DefinedAny attribute_value;
	};
	typedef sequence <AttributeSetOperator> SetOperationArgument;

	// Forward declaration for ReplyHandler interfaces
	interface LinkedReplyHandler;
	interface EndOfRepliesHandler;

	// ProxyAgent
	interface ProxyAgent : JIDM::ProxyAgent {

		void cmis_create (
			in CORBA::ScopedName interface_name,
			in CreationKind creation_kind,
			in CosNaming::Name object_name,
			in X711CMI::AccessControlTypeOpt access_control,
			in CosNaming::Name reference_object,
			in AttributeValueSeq req_attribute_values,
			in LinkedReplyHandler reply_handler
		);

		void cmis_create_sync (
			in CORBA::ScopedName interface_name,
			in CreationKind creation_kind,
			in CosNaming::Name object_name,
			in X711CMI::AccessControlTypeOpt access_control,
			in CosNaming::Name reference_object,
			in AttributeValueSeq req_attribute_values,
			out CORBA::ScopedName created_interface_name,
			out CosNaming::Name created_object_name,
			out X711CMI::ASN1_GeneralizedTimeOpt creation_time,
			out AttributeValueSeq created_attribute_values
		) raises (CREATE_ERRORS);

		void cmis_get (
			in CORBA::ScopedName interface_name,
			in CosNaming::Name object_name,
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType synchronization,
			in X711CMI::AccessControlTypeOpt access_control,
			in ASN1_ObjectIdentifierSeq attribute_id_list,
			in LinkedReplyHandler reply_handler,
			in EndOfRepliesHandler end_of_replies_handler
		);

		void cmis_set (
			in CORBA::ScopedName interface_name,
			in CosNaming::Name object_name,
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType synchronization,
			in X711CMI::AccessControlTypeOpt access_control,
			in SetOperationArgument modification_list,
			in LinkedReplyHandler reply_handler,
			in EndOfRepliesHandler end_of_replies_handler
		);

		void cmis_action (
			in CORBA::ScopedName interface_name,
			in CosNaming::Name object_name,
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType synchronization,
			in X711CMI::AccessControlTypeOpt access_control,
			in ASN1_ObjectIdentifier action_name,
			in ASN1_DefinedAny action_info,
			in LinkedReplyHandler reply_handler,
			in EndOfRepliesHandler end_of_replies_handler
		);

		void cmis_delete (
			in CORBA::ScopedName interface_name,
			in CosNaming::Name object_name,
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType synchronization,
			in X711CMI::AccessControlTypeOpt access_control,
			in LinkedReplyHandler reply_handler,
			in EndOfRepliesHandler end_of_replies_handler
		);
	};

	const ASN1_ObjectIdentifier ACTUAL_CLASS = 2.9.3.4.3.42;

	interface ManagedObject; // forward declaration

	interface NamingContext : CosNaming::NamingContext {
		// NOTE: These operations are optional
		ManagedObject resolve_with_intf (
			in CORBA::ScopedName interface_name,
			in CosNaming::Name object_name
		) raises (NotFound, CannotProceed, InvalidName);

		ManagedObject resolve_osi_name (
			in ASN1_ObjectIdentifier managed_object_class,
			in X711CMI::ObjectInstanceType object_instance
		) raises (NotFound, CannotProceed, InvalidName);

		CosNaming::Name translate_osi_name (
			in X711CMI::ObjectInstanceType object_instance
		) raises (InvalidName);

		X711CMI::ObjectInstanceType translate_idl_name (
			in CosNaming::Name idl_name
		) raises (InvalidName);
	};

	// ManagedObject
	interface ManagedObject : NamingContext, CosLifeCycle::LifeCycleObject {
		readonly attribute CosNaming::Name object_name;

		void scoped_get (
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType synchronization,
			in X711CMI::AccessControlTypeOpt access_control,
			in ASN1_ObjectIdentifierSeq attribute_id_list,
			in LinkedReplyHandler reply_handler,
			in EndOfRepliesHandler end_of_replies_handler
		);

		void scoped_set (
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType synchronization,
			in X711CMI::AccessControlTypeOpt access_control,
			in SetOperationArgument modification_list,
			in LinkedReplyHandler reply_handler,
			in EndOfRepliesHandler end_of_replies_handler
		);

		void scoped_action (
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType synchronization,
			in X711CMI::AccessControlTypeOpt access_control,
			in ASN1_ObjectIdentifier action_name,
			in ASN1_DefinedAny action_info,
			in LinkedReplyHandler reply_handler,
			in EndOfRepliesHandler end_of_replies_handler
		);

		void scoped_delete (
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType synchronization,
			in X711CMI::AccessControlTypeOpt access_control,
			in LinkedReplyHandler reply_handler,
			in EndOfRepliesHandler end_of_replies_handler
		);

		AttributeValueSeq get_attributes (
			in ASN1_ObjectIdentifierSeq attribute_id_list
		) raises (GET_ERRORS);

		AttributeValueSeq set_attributes (
			in SetOperationArgument modification_list
		) raises (SET_ERRORS);

		ASN1_DefinedAny perform_action (
			in ASN1_ObjectIdentifier action_name,
			in ASN1_DefinedAny action_info
		) raises (ACTION_ERRORS, UsingMR);

		void delete_mo () raises (DELETE_ERRORS);
	};

	// ManagedObjectFactory
	interface ManagedObjectFactory {
		ManagedObject create (
			in CORBA::ScopedName interface_name,
			in CosNaming::Name object_name,
			in ManagedObject reference_object,
			in AttributeValueSeq requested_attribute_values
		) raises (CREATE_ERRORS);

		ManagedObject create_with_auto_naming (
			in CORBA::ScopedName interface_name,
			in ManagedObject reference_object,
			in AttributeValueSeq requested_attribute_values
		) raises (CREATE_ERRORS);

		ManagedObject create_subordinate (
			in CORBA::ScopedName interface_name,
			in CosNaming::Name superior_name,
			in ManagedObject reference_object,
			in AttributeValueSeq requested_attribute_values
		) raises (CREATE_ERRORS);
	};

	// LocalRoot
	typedef sequence<ManagedObject> ManagedObjectSeq;

	interface LocalRoot : ManagedObject {
		exception NoDescendants {};
		ManagedObjectSeq list_orphans ( );

		ManagedObjectSeq
			list_orphan_descendants (in CosNaming::Name object_name)
				raises (NoDescendants);
	};

	// LName
	interface LName {
		exception InvalidName {};

		readonly attribute boolean is_distinguished_name;
		readonly attribute unsigned long num_components;

		void from_osi_form (in X711CMI::ObjectInstanceType osi_name);
		X711CMI::ObjectInstanceType to_osi_form ()
			raises(InvalidName);
		void from_idl_form (in CosNaming::Name idl_name);
		CosNaming::Name to_idl_form ()
			raises(InvalidName);

		LName to_ancestor_name (in unsigned long levels_up)
			raises(InvalidName);
		LName to_relative_name (in unsigned long levels_up)
			raises(InvalidName);
		LName append (in LName name);
		LName append_ava (in X501Inf::AttributeValueAssertionType ava)
			raises(InvalidName);
		X501Inf::AttributeValueAssertionType get_ava (in unsigned long index)
			raises(InvalidName);

		boolean equals (in LName name);
		LName copy ();

		void from_string_form (in NameString name_string);
		NameString to_string_form ()
			raises(InvalidName);

		void destroy ();
	};

	// ReplyHandler interfaces
	interface LinkedReplyHandler {
		void send_reply (
			in CORBA::ScopedName object_interface,
			in CosNaming::Name object_name,
			in X711CMI::ASN1_GeneralizedTimeOpt current_time,
			in any reply_info
		);

		void send_mo_error (
			in CORBA::ScopedName object_interface,
			in CosNaming::Name object_name,
			in X711CMI::ASN1_GeneralizedTimeOpt current_time,
			in short error_code,
			in any error_info
		);

		void send_subtree_error (
			in CORBA::ScopedName object_interface,
			in CosNaming::Name object_name,
			in X711CMI::ASN1_GeneralizedTimeOpt current_time,
			in short error_code,
			in any error_info
		);
	};

	interface EndOfRepliesHandler {
		void end_of_replies ( );
	};

	interface MultipleRepliesHandler : LinkedReplyHandler, EndOfRepliesHandler {};

	// BufferedRepliesHandler
	struct Reply {
		CORBA::ScopedName object_interface;
		CosNaming::Name object_name;
		X711CMI::ASN1_GeneralizedTimeOpt current_time;
		any reply_info;
	};
	typedef sequence<Reply> ReplyList;

	interface RepliesIterator {
		exception MoError {
			CORBA::ScopedName object_interface;
			CosNaming::Name object_name;
			X711CMI::ASN1_GeneralizedTimeOpt current_time;
			short error_code;
			any error_info;
		};

		exception SubtreeError {
			CORBA::ScopedName object_interface;
			CosNaming::Name object_name;
			X711CMI::ASN1_GeneralizedTimeOpt current_time;
			short error_code;
			any error_info;
		};

		boolean get_reply (out Reply r) raises (MoError, SubtreeError);

		boolean get_n_replies (in unsigned long how_many, out ReplyList r_list)
			raises (MoError, SubtreeError);

		boolean finished (out unsigned long num_pending);
		void destroy ();
	};

	interface BufferedRepliesHandler : MultipleRepliesHandler, RepliesIterator {};

};

#define UsingMR OSIMgmt::UsingMR

#endif /* _OSIMGMT_IDL_ */


SNMPMgmt.idl


// File: SNMPMgmt.idl
#ifndef _SNMPMGMT_IDL_
#define _SNMPMGMT_IDL_

#include <orb.idl>
#include <CosPropertyService.idl>
#include <ASN1Types.idl>
#include <JIDM.idl>

#pragma prefix jidm.org

module SNMPMgmt {

	const string ManagementDomainKeyId = Internet Management;
	const string ManagementDomainKeyKind = XSM environment;
	const string ProtocolVer = Protocol Version;
	const string TransportProtocol = Transport Protocol;
	const string DomainTitle = Domain Title;
	const string TransportAddress = Transport Address;
	const string TransportPort = Transport Port;
	const string CommunityName = Community Name;
	const string ContextEngineID = Context EngineID;
	const string ContextName = Context Name;

	// Redefinition of types
	typedef CORBA::ScopedName ScopedName;
	typedef CosLifeCycle::Criteria Criteria;
	typedef CosPropertyService::PropertyName VarName;
	typedef CosPropertyService::PropertyNames VarNameList;
	typedef CosPropertyService::Property NameValuePair;
	typedef CosPropertyService::Properties NVPairList;

	typedef ASN1_ObjectIdentifier EntryIndex;
	typedef sequence < EntryIndex > EntryIndexList;

	typedef string TAddress; // Transport address of an agent

	enum ProtocolVersion { snmpV1, snmpV2c, snmpV3 };

	// SNMP Protocol specific exceptions
	exception ProtocolError {
		ASN1_Integer error_status;
		ASN1_Integer error_index;
	};
	exception MultVarProtocolError {
		ASN1_Integer error_status;
		VarNameList error_var_list;
		NVPairList result_var_list;
	};

	// SMI information module specific exceptions.
	exception NoSuchSmiModule { };
	exception NoSuchSmiEntry { };
	exception NoSuchVariable { };
	
	// MIB entry specific exceptions
	exception NoSuchHost { };
	exception NoSuchObject { };
	exception EndOfMibView { };

	exception AlreadyExists { };

	interface SmiEntry : CosLifeCycle::LifeCycleObject, CosPropertyService::PropertySet {
		// the value of entry_name is always 0 for the groups.
		readonly attribute ASN1_ObjectIdentifier entry_name;
	};
	typedef sequence < SmiEntry > SmiEntryList;

	interface SmiTableIterator {
		boolean next_one_entry( out SmiEntry smi_entry );
		boolean next_n_entries (
			in unsigned long how_many,
			out SmiEntryList smi_entry_list
		);
		void destroy();
	};

	interface GenericFactory : CosLifeCycle::GenericFactory {
		SmiEntry create_mib_entry (
			in ScopedName t_entry_type,
			in ASN1_ObjectIdentifier entry_index,
			in Criteria create_criteria
		) raises ( NoSuchSmiEntry, AlreadyExists );

		SmiEntry create_mib_entry_with_auto_name (
			in ScopedName t_entry_type,
			in Criteria create_criteria
		) raises ( NoSuchSmiEntry, AlreadyExists );
	};

	interface GetNextEntryIterator {
		// Get the next entry index accroding to lexical ordering rule
		// of SNMP OIDs -- follows SNMP get-next traversal rule
		boolean next_one_entry ( out EntryIndex entry_index );
		boolean next_n_entries (
			in unsigned long how_many,
			out EntryIndexList entry_index_list
		);
		void destroy();
	};

	// NamingContext extends CosNaming::NamingContext to provide
	// navigating the SNMP name space in the lexicographic order
	// and SNMP specific name and context resolution

	interface NamingContext : CosNaming::NamingContext {
		string get_next_entry(
			in string entry_name
		) raises ( InvalidName, NotFound, CannotProceed );

		GetNextEntryIterator get_next_entry_iterator(
			in string initial_entry_name
		) raises ( InvalidName, NotFound );
	};
	
	interface NamingDirectory : NamingContext {
		NamingContext resolve_domain_context(
			in TAddress p_host_name
		) raises ( NoSuchHost, CannotProceed, InvalidName, NotFound );

		NamingContext resolve_smi_module(
			in TAddress p_host_name,
			in string p_smi_module_name
		) raises ( NoSuchHost, NoSuchSmiModule, InvalidName, NotFound );

		NamingContext resolve_smi_entry(
			in TAddress p_host_name,
			in ScopedName p_entry_type
		) raises ( NoSuchHost, NoSuchSmiEntry, CannotProceed, InvalidName, NotFound );

		SmiEntry resolve_mib_entry(
			in TAddress p_host_name,
			in ScopedName p_entry_type,
			in string p_entry_index
		) raises ( NoSuchHost, NoSuchSmiEntry, CannotProceed, InvalidName, NotFound );

		void list_smi_entries(
			in TAddress p_host_name,
			in ScopedName p_entry_type,
			in unsigned long how_many,
			out SmiEntryList out_list,
			out SmiTableIterator table_iterator
		) raises ( NoSuchHost, NoSuchSmiEntry, CannotProceed, InvalidName, NotFound );
	};

	// ProxyAgent

	interface ProxyAgent : JIDM::ProxyAgent {

		readonly attribute TAddress host_name;

		ASN1_Any get_a_variable (
			in TAddress p_host_name,
			in ScopedName p_var_scoped_name,
			in EntryIndex p_var_index
		) raises ( NoSuchHost, NoSuchVariable, NoSuchObject, ProtocolError );

		NVPairList get_variables (
			in TAddress p_host_name,
			in ScopedName p_entry_scoped_name,
			in VarNameList p_var_name_list,
			in EntryIndex p_var_index
		) raises ( NoSuchHost, NoSuchSmiEntry, NoSuchObject, MultVarProtocolError );

		void set_a_variable (
			in TAddress p_host_name,
			in ScopedName p_var_scoped_name,
			in EntryIndex p_var_index,
			in ASN1_Any p_var_new_value
		) raises ( NoSuchHost, NoSuchVariable, NoSuchObject, ProtocolError );

		void set_variables (
			in TAddress p_host_name,
			in ScopedName p_entry_scoped_name,
			in NVPairList p_var_nvp_list,
			in EntryIndex p_var_index
		) raises ( NoSuchHost, NoSuchSmiEntry, NoSuchObject, MultVarProtocolError );

		void list_mib_entries(
			in TAddress p_host_name,
			in ScopedName p_entry_scoped_name,
			in long p_how_many,
			out EntryIndexList p_entry_index_list,
			out GetNextEntryIterator p_entry_name_list_itr
		) raises ( NoSuchHost, NoSuchSmiEntry, NoSuchObject, ProtocolError );

		boolean mib_entry_exists (
			in TAddress p_host_name,
			in ScopedName p_entry_scoped_name
		) raises ( NoSuchHost, NoSuchSmiEntry, ProtocolError );

		boolean is_mib_module_supported (
			in TAddress p_host_name,
			in string p_smi_module_name
		) raises ( NoSuchHost, NoSuchSmiModule, ProtocolError );

	};

	struct EntryVarBind {
		ScopedName entry_name; // IDL scoped name of the interface for table-entry
		string entry_index; // row index of an entry in the form of ObjectId string
		CosPropertyService::Properties nvp_list;
	};
	typedef sequence<EntryVarBind> EntryVarBindList;
	typedef EntryVarBindList NotificationVariableList;
	typedef EntryVarBindList InformVariableList;

	struct NotificationInfo { // to be sent when using untyped event channel
		CosNaming::Name src_entry_name;
		ScopedName event_type;
		ASN1_GeneralizedTime event_time;
		any notification_info;
	};
	struct InformInfo { // to be sent when using untyped event channel
		CosNaming::Name src_obj_name;
		InformVariableList inform_info;
	};

	interface Notifications {
		void snmp_notification (
			in CosNaming::Name src_entry_name,
			in ScopedName event_type,
			in ASN1_GeneralizedTime event_time,
			in any notification_info
		);
		void snmp_inform (
			in CosNaming::Name src_entry_name,
			in InformVariableList inform_variables
		);
		void snmp_report (
			in CosNaming::Name src_entry_name,
			in InformVariableList report_variables
		);
	};

	interface PullNotifications {
		boolean try_snmp_notification (
			out CosNaming::Name src_entry_name,
			out ScopedName event_type,
			out ASN1_GeneralizedTime event_time,
			out any notification_info
		);

		void pull_snmp_notification (
			out CosNaming::Name src_entry_name,
			out ScopedName event_type,
			out ASN1_GeneralizedTime event_time,
			out any notification_info
		);

		boolean try_snmp_inform (
			out CosNaming::Name src_entry_name,
			out InformVariableList inform_variables
		);

		void pull_snmp_inform (
			out CosNaming::Name src_entry_name,
			out InformVariableList inform_variables
		);

		boolean try_snmp_report (
			out CosNaming::Name src_entry_name,
			out InformVariableList report_variables
		);

		void pull_snmp_report (
			out CosNaming::Name src_entry_name,
			out InformVariableList report_variables
		);
	};

};

#endif /* _SNMPMGMT_IDL_ */


Imported

The IDL listed in this section is specified elsewhere, but is listed here for ease of reference and completeness. The ultimate authority for these IDLs should be the original source of the IDL specifications.

ASN1Types.idl

This IDL is specified in the referenced Specification Translation document JIDM_ST.


// File: ASN1Types.idl
#ifndef _ASN1TYPES_IDL_
#define _ASN1TYPES_IDL_

#pragma prefix jidm.org

// ASN.1 base types

// Null type
typedef char ASN1_Null;
const ASN1_Null ASN1_NullValue =  00;

// Boolean
typedef boolean ASN1_Boolean;

// Integers
typedef unsigned short ASN1_Unsigned16;
typedef unsigned long ASN1_Unsigned;
typedef unsigned long long ASN1_Unsigned64;
typedef short ASN1_Integer16;
typedef long ASN1_Integer;
typedef long long ASN1_Integer64;

// Real
typedef double ASN1_Real;

// ASN.1 strings which may not contain binary zeros
typedef string ASN1_NumericString;
typedef string ASN1_PrintableString;
typedef string ASN1_VisibleString;
typedef ASN1_VisibleString ASN1_ISO646String;
typedef string ASN1_GraphicString;
typedef ASN1_GraphicString ASN1_ObjectDescriptor;
typedef string ASN1_TeletexString;
typedef ASN1_TeletexString ASN1_T61String;

// Times
typedef ASN1_VisibleString ASN1_GeneralizedTime; // PIDL defined
typedef ASN1_VisibleString ASN1_UTCTime;

// ASN.1 strings which may contain binary zeros
typedef sequence<octet> ASN1_OctetString;
typedef sequence<octet> ASN1_GeneralString;
typedef sequence<octet> ASN1_IA5String;
typedef sequence<octet> ASN1_VideotexString;

// ASN.1 strings of wide characters (which may contain binary zeros)
typedef sequence<unsigned short> ASN1_BMPString;
typedef sequence<unsigned long> ASN1_UniversalString;

// Object Identifier
typedef string ASN1_ObjectIdentifier;

// Bit String
typedef sequence<octet> ASN1_BitString; // PIDL defined

// Any
typedef any ASN1_Any;
typedef any ASN1_DefinedAny;

// ASN.1 recursive references
typedef any ASN1_Recursive;


// External

module X208Ext {

	union ASN1_ObjectIdentifierOpt
		switch (boolean) {
		case TRUE: ASN1_ObjectIdentifier value;
	};

	union ASN1_IntegerOpt
		switch (boolean) {
			case TRUE: ASN1_Integer value;
	};

	union ASN1_ObjectDescriptorOpt
		switch (boolean) {
			case TRUE: ASN1_ObjectDescriptor value;
	};

	enum ExternalEncodingTypeChoice { single_ASN1_typeChoice,
		octet_alignedChoice, arbitraryChoice };

	union ExternalEncodingType
		switch(ExternalEncodingTypeChoice) {
			case single_ASN1_typeChoice:
				ASN1_Any single_ASN1_type;
			case octet_alignedChoice:
				ASN1_OctetString octet_aligned;
			case arbitraryChoice:
				ASN1_BitString arbitrary;
	};

	struct ExternalType {
		ASN1_ObjectIdentifierOpt direct_reference;
		ASN1_IntegerOpt indirect_reference;
		ASN1_ObjectDescriptorOpt data_value_descriptor;
		ExternalEncodingType encoding;
	};

};

typedef X208Ext::ExternalType ASN1_External;

// define constants for ASN.1 Real infinity values
#include <ASN1Limits.idl>
const ASN1_Real plus_infinity = MAX_FLT;
const ASN1_Real minus_infinity = MIN_FLT;

#endif /* _ASN1TYPES_IDL_ */


ASN1Limits.idl

This IDL is specified in the referenced Specification Translation document JIDM_ST.


// File: ASN1Limits.idl
#ifndef _ASN1LIMITS_IDL_
#define _ASN1LIMITS_IDL_

// Substitute <MAX> and <MIN> by the max and min (biggest negative)
// double values your machine can hold for IDL interfaces.
// Conditional compilation can be used to support multiple architectures.

#define MIN_FLT <MIN>
#define MAX_FLT <MAX>

#endif /* _ASN1LIMITS_IDL_ */


Generated

IDL listed in this section is automatically generated, following the JIDM Specification Translation process, as specified in referenced document JIDM_ST. It is listed here for ease of reference and completeness. The ultimate authority for these IDLs should be the use of the originally published document and a compliant JIDM Specification Translation compiler.

X501Inf.idl

The original source for the ASN.1 document that translates into this IDL is reference X501.

// File: X501Inf.idl
#ifndef _X501INF_IDL_
#define _X501INF_IDL_

//
// ASN.1 Module name: InformationFramework
// ASN.1 Module OID: 2.5.1.1
// ASN.1 Module nickname: X501Inf
//

#include <ASN1Types.idl>

module X501Inf {

	// Assignments mapping

	typedef ASN1_ObjectIdentifier AttributeTypeType;

	typedef ASN1_Any AttributeValueType;

	typedef sequence <AttributeValueType>
		AttributeValuesType;

	struct AttributeType {
		AttributeTypeType type;
		AttributeValuesType values;
	};

	struct AttributeValueAssertionType {
		AttributeTypeType attributeType;
		ASN1_DefinedAny attributeValue; // defined by:attributeType
	};

	typedef sequence <AttributeValueAssertionType>
		RelativeDistinguishedNameType;

	typedef sequence <RelativeDistinguishedNameType>
		RDNSequenceType;

	enum NameTypeChoice { rDNSequenceChoice };

	union NameType
		switch(NameTypeChoice) {
			case rDNSequenceChoice:
				RDNSequenceType rDNSequence;
	};

	typedef RDNSequenceType DistinguishedNameType;

	// NO complex constant declarations
	// interface ConstValues empty
};

#endif /* _X501INF_IDL_ */


X227ACS.idl

The original source for the ASN.1 document that translates into this IDL is reference X227.

// File: X227ACS.idl
#ifndef _X227ACS_IDL_
#define _X227ACS_IDL_

//
// ASN.1 Module name: ACSE-1
// ASN.1 Module OID: 2.2.0.0.1
// ASN.1 Module nickname: X227ACS
//

#include <ASN1Types.idl>

#include X501Inf.idl

module X227ACS {

	// definitions imported from: X501Inf

	typedef X501Inf::NameType
		NameType;

	typedef X501Inf::RelativeDistinguishedNameType
		RelativeDistinguishedNameType;

	// Assignments mapping

	const ASN1_ObjectIdentifier acse_as_id = 2.2.1.0.1;

	const ASN1_ObjectIdentifier aCSE_id = 2.2.3.1.1;

	typedef ASN1_BitString AARQ_apduProtocol_versionType;
	
	union AARQ_apduProtocol_versionTypeOpt
		switch (boolean) {
		case TRUE: AARQ_apduProtocol_versionType value;
	};

	typedef AARQ_apduProtocol_versionTypeOpt AARQ_apduProtocol_versionTypeDef;

	typedef ASN1_ObjectIdentifier Application_context_nameType;

	typedef NameType AP_title_form1Type;

	typedef ASN1_ObjectIdentifier AP_title_form2Type;

	enum AP_titleTypeChoice { form1Choice, form2Choice };

	union AP_titleType
		switch(AP_titleTypeChoice) {
			case form1Choice:
				AP_title_form1Type form1;
			case form2Choice:
				AP_title_form2Type form2;
	};

	union AP_titleTypeOpt
		switch (boolean) {
			case TRUE: AP_titleType value;
	};

	typedef RelativeDistinguishedNameType AE_qualifier_form1Type;

	typedef ASN1_Integer AE_qualifier_form2Type;

	enum AE_qualifierTypeChoice { form1Choice_1, form2Choice_1 };

	union AE_qualifierType
		switch(AE_qualifierTypeChoice) {
			case form1Choice_1:
				AE_qualifier_form1Type form1;
			case form2Choice_1:
				AE_qualifier_form2Type form2;
	};

	union AE_qualifierTypeOpt
		switch (boolean) {
			case TRUE: AE_qualifierType value;
	};
	
	typedef ASN1_Integer AP_invocation_identifierType;

	union AP_invocation_identifierTypeOpt
		switch (boolean) {
			case TRUE: AP_invocation_identifierType value;
	};

	typedef ASN1_Integer AE_invocation_identifierType;

	union AE_invocation_identifierTypeOpt
		switch (boolean) {
			case TRUE: AE_invocation_identifierType value;
	};
	
	typedef ASN1_BitString ACSE_requirementsType;

	union ACSE_requirementsTypeOpt
		switch (boolean) {
			case TRUE: ACSE_requirementsType value;
	};

	typedef ASN1_ObjectIdentifier Mechanism_nameType;

	union Mechanism_nameTypeOpt
		switch (boolean) {
			case TRUE: Mechanism_nameType value;
	};

	struct Authentication_valueOtherType {
		Mechanism_nameType other_mechanism_name;
		ASN1_DefinedAny other_mechanism_value; // defined by:other_mechanism_name
	};

	enum Authentication_valueTypeChoice { charstringChoice,
		bitstringChoice, externalChoice, otherChoice };

	union Authentication_valueType
		switch(Authentication_valueTypeChoice) {
			case charstringChoice:
				ASN1_GraphicString charstring;
			case bitstringChoice:
				ASN1_BitString bitstring;
			case externalChoice:
				ASN1_External external;
			case otherChoice:
				Authentication_valueOtherType other;
	};

	union Authentication_valueTypeOpt
		switch (boolean) {
			case TRUE: Authentication_valueType value;
	};

	typedef ASN1_GraphicString Implementation_dataType;

	union Implementation_dataTypeOpt
		switch (boolean) {
			case TRUE: Implementation_dataType value;
	};

	typedef sequence <ASN1_External>
		Association_informationType;

	union Association_informationTypeOpt
		switch (boolean) {
			case TRUE: Association_informationType value;
	};

	struct AARQ_apduType {
		AARQ_apduProtocol_versionTypeDef protocol_version;
		Application_context_nameType application_context_name;
		AP_titleTypeOpt	called_AP_title;
		AE_qualifierTypeOpt called_AE_qualifier;
		AP_invocation_identifierTypeOpt	called_AP_invocation_identifier;
		AE_invocation_identifierTypeOpt	called_AE_invocation_identifier;
		AP_titleTypeOpt	calling_AP_title;
		AE_qualifierTypeOpt calling_AE_qualifier;
		AP_invocation_identifierTypeOpt	calling_AP_invocation_identifier;
		AE_invocation_identifierTypeOpt calling_AE_invocation_identifier;
		ACSE_requirementsTypeOpt sender_acse_requirements;
		Mechanism_nameTypeOpt mechanism_name;
		Authentication_valueTypeOpt calling_authentication_value;
		Implementation_dataTypeOpt implementation_information;
		Association_informationTypeOpt user_information;
	};

	typedef ASN1_BitString AARE_apduProtocol_versionType;

	union AARE_apduProtocol_versionTypeOpt
		switch (boolean) {
			case TRUE: AARE_apduProtocol_versionType value;
	};

	typedef AARE_apduProtocol_versionTypeOpt AARE_apduProtocol_versionTypeDef;

	typedef ASN1_Integer Associate_resultType;

	typedef ASN1_Integer Associate_source_diagnosticAcse_service_userType;

	typedef ASN1_Integer Associate_source_diagnosticAcse_service_providerType;

	enum Associate_source_diagnosticTypeChoice {
		acse_service_userChoice, acse_service_providerChoice };

	union Associate_source_diagnosticType
		switch(Associate_source_diagnosticTypeChoice) {
			case acse_service_userChoice:
				Associate_source_diagnosticAcse_service_userType acse_service_user;
			case acse_service_providerChoice:
				Associate_source_diagnosticAcse_service_providerType acse_service_provider;
	};

	struct AARE_apduType {
		AARE_apduProtocol_versionTypeDef protocol_version;
		Application_context_nameType application_context_name;
		Associate_resultType result;
		Associate_source_diagnosticType result_source_diagnostic;
		AP_titleTypeOpt responding_AP_title;
		AE_qualifierTypeOpt responding_AE_qualifier;
		AP_invocation_identifierTypeOpt responding_AP_invocation_identifier;
		AE_invocation_identifierTypeOpt responding_AE_invocation_identifier;
		ACSE_requirementsTypeOpt responder_acse_requirements;
		Mechanism_nameTypeOpt mechanism_name;
		Authentication_valueTypeOpt responding_authentication_value;
		Implementation_dataTypeOpt implementation_information;
		Association_informationTypeOpt user_information;
	};

	typedef ASN1_Integer Release_request_reasonType;

	union Release_request_reasonTypeOpt
		switch (boolean) {
			case TRUE: Release_request_reasonType value;
	};

	struct RLRQ_apduType {
		Release_request_reasonTypeOpt reason;
			Association_informationTypeOpt user_information;
	};

	typedef ASN1_Integer Release_response_reasonType;
	
	union Release_response_reasonTypeOpt
		switch (boolean) {
			case TRUE: Release_response_reasonType value;
	};

	struct RLRE_apduType {
		Release_response_reasonTypeOpt reason;
		Association_informationTypeOpt user_information;
	};

	typedef ASN1_Integer ABRT_sourceType;

	enum ABRT_diagnosticType { no_reason_given, protocol_error,
		authentication_mechanism_name_not_recognized,
		authentication_mechanism_name_required,
		authentication_failure, authentication_required };

	union ABRT_diagnosticTypeOpt
		switch (boolean) {
			case TRUE: ABRT_diagnosticType value;
	};

	struct ABRT_apduType {
		ABRT_sourceType abort_source;
		ABRT_diagnosticTypeOpt abort_diagnostic;
		Association_informationTypeOpt user_information;
	};

	enum ACSE_apduTypeChoice { aarqChoice, aareChoice, rlrqChoice,
		rlreChoice, abrtChoice };

	union ACSE_apduType
		switch(ACSE_apduTypeChoice) {
			case aarqChoice:
				AARQ_apduType aarq;
			case aareChoice:
				AARE_apduType aare;
			case rlrqChoice:
				RLRQ_apduType rlrq;
			case rlreChoice:
				RLRE_apduType rlre;
			case abrtChoice:
				ABRT_apduType abrt;
	};

	const unsigned long version1 = 0;

	const unsigned long version1_1 = 0;

	const ABRT_sourceType acse_service_user = 0;

	const ABRT_sourceType acse_service_provider = 1;

	const unsigned long authentication = 0;

	typedef NameType AE_title_form1Type;

	typedef ASN1_ObjectIdentifier AE_title_form2Type;

	enum AE_titleTypeChoice { form1Choice_2, form2Choice_2 };

	union AE_titleType
		switch(AE_titleTypeChoice) {
			case form1Choice_2:
				AE_title_form1Type form1;
			case form2Choice_2:
				AE_title_form2Type form2;
	};

	const Associate_resultType accepted = 0;

	const Associate_resultType rejected_permanent = 1;

	const Associate_resultType rejected_transient = 2;

	const Associate_source_diagnosticAcse_service_userType 
				null = 0;

	const Associate_source_diagnosticAcse_service_userType 
				no_reason_given_1 = 1;

	const Associate_source_diagnosticAcse_service_userType 
				application_context_name_not_supported = 2;

	const Associate_source_diagnosticAcse_service_userType 
				calling_AP_title_not_recognized = 3;

	const Associate_source_diagnosticAcse_service_userType 
				calling_AP_invocation_identifier_not_recognized = 4;

	const Associate_source_diagnosticAcse_service_userType 
				calling_AE_qualifier_not_recognized = 5;

	const Associate_source_diagnosticAcse_service_userType 
				calling_AE_invocation_identifier_not_recognized = 6;

	const Associate_source_diagnosticAcse_service_userType 
				called_AP_title_not_recognized = 7;

	const Associate_source_diagnosticAcse_service_userType 
				called_AP_invocation_identifier_not_recognized = 8;

	const Associate_source_diagnosticAcse_service_userType 
				called_AE_qualifier_not_recognized = 9;

	const Associate_source_diagnosticAcse_service_userType 
				called_AE_invocation_identifier_not_recognized = 10;

	const Associate_source_diagnosticAcse_service_userType 
				authentication_mechanism_name_not_recognized_1 = 11;

	const Associate_source_diagnosticAcse_service_userType 
				authentication_mechanism_name_required_1 = 12;

	const Associate_source_diagnosticAcse_service_userType 
				authentication_failure_1 = 13;

	const Associate_source_diagnosticAcse_service_userType 
				authentication_required_1 = 14;

	const Associate_source_diagnosticAcse_service_providerType 
				null_1 = 0;

	const Associate_source_diagnosticAcse_service_providerType 
				no_reason_given_2 = 1;

	const Associate_source_diagnosticAcse_service_providerType 
				no_common_acse_version = 2;

	const Release_request_reasonType normal = 0;

	const Release_request_reasonType urgent = 1;

	const Release_request_reasonType user_defined = 30;

	const Release_response_reasonType normal_1 = 0;

	const Release_response_reasonType not_finished = 1;

	const Release_response_reasonType user_defined_1 = 30;

	// Complex constants declaration.

	interface ConstValues {

		// ** Generated values for <AARQ_apduType::protocol_version>:

		AARQ_apduProtocol_versionType protocol_versionDefault();
		// returns: {(ASN.1: version1)}

		// ** Generated values for <AARE_apduType::protocol_version>:

		AARE_apduProtocol_versionType protocol_versionDefault_1();
		// returns: {(ASN.1: version1)}
	};

};

#endif /* _X227ACS_IDL_ */


X711CMI.idl

The original source for the ASN.1 document that translates into this IDL is referenced document X711.


// File: X711CMI.idl
#ifndef _X711CMI_IDL_
#define _X711CMI_IDL_

//
// ASN.1 Module name: CMIP-1
// ASN.1 Module OID: 2.9.1.0.3
// ASN.1 Module nickname: X711CMI
//

#include <ASN1Types.idl>

#include X501Inf.idl

module X711CMI {

	// definitions imported from: X501Inf

	typedef X501Inf::DistinguishedNameType
		DistinguishedNameType;

	typedef X501Inf::RDNSequenceType
		RDNSequenceType;

	// Assignments mapping

	typedef ASN1_Integer InvokeIdTypeType;

	typedef ASN1_External AccessControlType;

	enum ObjectClassTypeChoice { globalFormChoice_3, localFormChoice_3 };

	union ObjectClassType
		switch(ObjectClassTypeChoice) {
			case globalFormChoice_3:
				ASN1_ObjectIdentifier globalForm;
			case localFormChoice_3:
				ASN1_Integer localForm;
	};

	enum ObjectInstanceTypeChoice { distinguishedNameChoice,
		nonSpecificFormChoice, localDistinguishedNameChoice };

	union ObjectInstanceType
		switch(ObjectInstanceTypeChoice) {
			case distinguishedNameChoice:
				DistinguishedNameType distinguishedName;
			case nonSpecificFormChoice:
				ASN1_OctetString nonSpecificForm;
			case localDistinguishedNameChoice:
				RDNSequenceType localDistinguishedName;
	};

	union AccessControlTypeOpt
		switch (boolean) {
			case TRUE: AccessControlType value;
	};

	enum CMISSyncType { bestEffort, atomic };

	union CMISSyncTypeOpt
		switch (boolean) {
			case TRUE: CMISSyncType value;
	};

	typedef CMISSyncTypeOpt CMISSyncTypeDef;

	typedef ASN1_Integer ScopeLevelType;

	enum ScopeTypeChoice { levelChoice, individualLevelsChoice,
		baseToNthLevelChoice };

	union ScopeType
		switch(ScopeTypeChoice) {
			case levelChoice:
				ScopeLevelType level;
			case individualLevelsChoice:
				ASN1_Integer individualLevels;
			case baseToNthLevelChoice:
				ASN1_Integer baseToNthLevel;
	};

	union ScopeTypeOpt
		switch (boolean) {
			case TRUE: ScopeType value;
	};

	typedef ScopeTypeOpt ScopeTypeDef;

	enum AttributeIdTypeChoice { globalFormChoice_1, localFormChoice_1 };

	union AttributeIdType
		switch(AttributeIdTypeChoice) {
			case globalFormChoice_1:
				ASN1_ObjectIdentifier globalForm;
			case localFormChoice_1:
				ASN1_Integer localForm;
	};

	struct AttributeType {
		AttributeIdType attributeId;
		ASN1_DefinedAny attributeValue; // defined by:attributeId
	};

	struct FilterItemSubstringsItemInitialStringType {
		AttributeIdType attributeId;
		ASN1_DefinedAny string_1; // defined by:attributeId
	};

	struct FilterItemSubstringsItemAnyStringType {
		AttributeIdType attributeId;
		ASN1_DefinedAny string_1; // defined by:attributeId
	};

	struct FilterItemSubstringsItemFinalStringType {
		AttributeIdType attributeId;
		ASN1_DefinedAny string_1; // defined by:attributeId
	};

	enum FilterItemSubstringsItemTypeChoice { initialStringChoice,
		anyStringChoice, finalStringChoice };

	union FilterItemSubstringsItemType
		switch(FilterItemSubstringsItemTypeChoice) {
			case initialStringChoice:
				FilterItemSubstringsItemInitialStringType initialString;
			case anyStringChoice:
				FilterItemSubstringsItemAnyStringType anyString;
			case finalStringChoice:
				FilterItemSubstringsItemFinalStringType finalString;
	};

	typedef sequence <FilterItemSubstringsItemType>
		FilterItemSubstringsType;

	enum FilterItemTypeChoice { equalityChoice, substringsChoice,
		greaterOrEqualChoice, lessOrEqualChoice, presentChoice,
		subsetOfChoice, supersetOfChoice,
		nonNullSetIntersectionChoice };

	union FilterItemType
		switch(FilterItemTypeChoice) {
			case equalityChoice:
				AttributeType equality;
			case substringsChoice:
				FilterItemSubstringsType substrings;
			case greaterOrEqualChoice:
				AttributeType greaterOrEqual;
			case lessOrEqualChoice:
				AttributeType lessOrEqual;
			case presentChoice:
				AttributeIdType present;
			case subsetOfChoice:
				AttributeType subsetOf;
			case supersetOfChoice:
				AttributeType supersetOf;
			case nonNullSetIntersectionChoice:
				AttributeType nonNullSetIntersection;
	};

	enum CMISFilterTypeChoice { itemChoice, andChoice, orChoice,
		notChoice };

	union CMISFilterType
		switch(CMISFilterTypeChoice) {
			case itemChoice:
				FilterItemType item;
			case andChoice:
				sequence<CMISFilterType> and;
			case orChoice:
				sequence<CMISFilterType> or;
			case notChoice:
				sequence<CMISFilterType, 1> not;
	};

	union CMISFilterTypeOpt
		switch (boolean) {
			case TRUE: CMISFilterType value;
	};

	typedef CMISFilterTypeOpt CMISFilterTypeDef;

	enum ActionTypeIdTypeChoice { globalFormChoice, localFormChoice };

	union ActionTypeIdType
		switch(ActionTypeIdTypeChoice) {
			case globalFormChoice:
				ASN1_ObjectIdentifier globalForm;
			case localFormChoice:
				ASN1_Integer localForm;
	};

	union ASN1_DefinedAnyOpt
		switch (boolean) {
			case TRUE: ASN1_DefinedAny value;
	};

	struct ActionInfoType {
		ActionTypeIdType actionType;
		ASN1_DefinedAnyOpt actionInfoArg; // defined by:actionType
	};

	struct ActionArgumentType {
		ObjectClassType baseManagedObjectClass;
		ObjectInstanceType baseManagedObjectInstance;
		AccessControlTypeOpt accessControl;
		CMISSyncTypeDef synchronization;
		ScopeTypeDef scope;
		CMISFilterTypeDef filter;
		ActionInfoType actionInfo;
	};

	const ScopeLevelType baseObject = 0;

	union ObjectClassTypeOpt
		switch (boolean) {
			case TRUE: ObjectClassType value;
	};

	union ObjectInstanceTypeOpt
		switch (boolean) {
			case TRUE: ObjectInstanceType value;
	};

	union ASN1_GeneralizedTimeOpt
		switch (boolean) {
			case TRUE: ASN1_GeneralizedTime value;
	};

	enum ActionErrorInfoErrorStatusType { accessDenied, noSuchAction,
		noSuchArgument, invalidArgumentValue };

	struct NoSuchArgumentActionIdType {
		ObjectClassTypeOpt managedObjectClass;
		ActionTypeIdType actionType;
	};

	enum EventTypeIdTypeChoice { globalFormChoice_2, localFormChoice_2 };

	union EventTypeIdType
		switch(EventTypeIdTypeChoice) {
			case globalFormChoice_2:
				ASN1_ObjectIdentifier globalForm;
			case localFormChoice_2:
				ASN1_Integer localForm;
	};

	struct NoSuchArgumentEventIdType {
		ObjectClassTypeOpt managedObjectClass;
		EventTypeIdType eventType;
	};

	enum NoSuchArgumentTypeChoice { actionIdChoice, eventIdChoice };

	union NoSuchArgumentType
		switch(NoSuchArgumentTypeChoice) {
			case actionIdChoice:
				NoSuchArgumentActionIdType actionId;
			case eventIdChoice:
				NoSuchArgumentEventIdType eventId;
	};

	struct InvalidArgumentValueEventValueType {
		EventTypeIdType eventType;
		ASN1_DefinedAnyOpt eventInfo; // defined by:eventType
	};

	enum InvalidArgumentValueTypeChoice { actionValueChoice,
		eventValueChoice };

	union InvalidArgumentValueType
		switch(InvalidArgumentValueTypeChoice) {
			case actionValueChoice:
				ActionInfoType actionValue;
			case eventValueChoice:
				InvalidArgumentValueEventValueType eventValue;
	};

	enum ActionErrorInfoErrorInfoTypeChoice { actionTypeChoice,
		actionArgumentChoice, argumentValueChoice };

	union ActionErrorInfoErrorInfoType
		switch(ActionErrorInfoErrorInfoTypeChoice) {
			case actionTypeChoice:
				ActionTypeIdType actionType;
			case actionArgumentChoice:
				NoSuchArgumentType actionArgument;
			case argumentValueChoice:
				InvalidArgumentValueType argumentValue;
	};

	struct ActionErrorInfoType {
		ActionErrorInfoErrorStatusType errorStatus;
		ActionErrorInfoErrorInfoType errorInfo;
	};

	struct ActionErrorType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		ActionErrorInfoType actionErrorInfo;
	};

	struct ActionReplyType {
		ActionTypeIdType actionType;
		ASN1_DefinedAny actionReplyInfo; // defined by:actionType
	};

	union ActionReplyTypeOpt
		switch (boolean) {
			case TRUE: ActionReplyType value;
	};

	struct ActionResultType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		ActionReplyTypeOpt actionReply;
	};

	enum AttributeErrorErrorStatusType { accessDenied_1,
		noSuchAttribute, invalidAttributeValue, invalidOperation,
		invalidOperator };

	typedef ASN1_Integer ModifyOperatorType;

	union ModifyOperatorTypeOpt
		switch (boolean) {
			case TRUE: ModifyOperatorType value;
	};

	struct AttributeErrorType {
		AttributeErrorErrorStatusType errorStatus;
		ModifyOperatorTypeOpt modifyOperator;
		AttributeIdType attributeId;
		ASN1_DefinedAnyOpt attributeValue; // defined by:attributeId
	};

	enum AttributeIdErrorErrorStatusType { accessDenied_2,
		noSuchAttribute_1 };

	struct AttributeIdErrorType {
		AttributeIdErrorErrorStatusType errorStatus;
		AttributeIdType attributeId;
	};

	struct BaseManagedObjectIdType {
		ObjectClassType baseManagedObjectClass;
		ObjectInstanceType baseManagedObjectInstance;
	};

	struct ComplexityLimitationType {
		ScopeTypeOpt scope;
		CMISFilterTypeOpt filter;
		CMISSyncTypeOpt sync;
	};

	enum CreateArgumentObjectInstanceTypeChoice {
		managedObjectInstanceChoice, superiorObjectInstanceChoice };

	union CreateArgumentObjectInstanceType
		switch(CreateArgumentObjectInstanceTypeChoice) {
			case managedObjectInstanceChoice:
				ObjectInstanceType managedObjectInstance;
			case superiorObjectInstanceChoice:
				ObjectInstanceType superiorObjectInstance;
	};

	union CreateArgumentObjectInstanceTypeOpt
		switch (boolean) {
			case TRUE: CreateArgumentObjectInstanceType value;
	};

	typedef sequence <AttributeType>
		CreateArgumentAttributeListType;

	union CreateArgumentAttributeListTypeOpt
		switch (boolean) {
			case TRUE: CreateArgumentAttributeListType value;
	};

	struct CreateArgumentType {
		ObjectClassType managedObjectClass;
		CreateArgumentObjectInstanceTypeOpt objectInstance;
		AccessControlTypeOpt accessControl;
		ObjectInstanceTypeOpt referenceObjectInstance;
		CreateArgumentAttributeListTypeOpt attributeList;
	};

	typedef sequence <AttributeType>
		CreateResultAttributeListType;

	union CreateResultAttributeListTypeOpt
		switch (boolean) {
			case TRUE: CreateResultAttributeListType value;
	};

	struct CreateResultType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		CreateResultAttributeListTypeOpt attributeList;
	};

	struct DeleteArgumentType {
		ObjectClassType baseManagedObjectClass;
		ObjectInstanceType baseManagedObjectInstance;
		AccessControlTypeOpt accessControl;
		CMISSyncTypeDef synchronization;
		ScopeTypeDef scope;
		CMISFilterTypeDef filter;
	};

	enum DeleteErrorDeleteErrorInfoType { accessDenied_3 };

	struct DeleteErrorType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		DeleteErrorDeleteErrorInfoType deleteErrorInfo;
	};

	struct DeleteResultType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
	};

	struct EventReplyType {
		EventTypeIdType eventType;
		ASN1_DefinedAnyOpt eventReplyInfo; // defined by:eventType
	};

	struct EventReportArgumentType {
		ObjectClassType managedObjectClass;
		ObjectInstanceType managedObjectInstance;
		ASN1_GeneralizedTimeOpt eventTime;
		EventTypeIdType eventType;
		ASN1_DefinedAnyOpt eventInfo; // defined by:eventType
	};

	union EventReplyTypeOpt
		switch (boolean) {
			case TRUE: EventReplyType value;
	};

	struct EventReportResultType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		EventReplyTypeOpt eventReply;
	};

	typedef sequence <AttributeIdType>
		GetArgumentAttributeIdListType;

	union GetArgumentAttributeIdListTypeOpt
		switch (boolean) {
			case TRUE: GetArgumentAttributeIdListType value;
	};

	struct GetArgumentType {
		ObjectClassType baseManagedObjectClass;
		ObjectInstanceType baseManagedObjectInstance;
		AccessControlTypeOpt accessControl;
		CMISSyncTypeDef synchronization;
		ScopeTypeDef scope;
		CMISFilterTypeDef filter;
		GetArgumentAttributeIdListTypeOpt attributeIdList;
	};

	enum GetInfoStatusTypeChoice { attributeIdErrorChoice,
		attribute_1Choice };

	union GetInfoStatusType
		switch(GetInfoStatusTypeChoice) {
			case attributeIdErrorChoice:
				AttributeIdErrorType attributeIdError;
			case attribute_1Choice:
				AttributeType attribute_1;
	};

	typedef sequence <GetInfoStatusType>
		GetListErrorGetInfoListType;

	struct GetListErrorType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		GetListErrorGetInfoListType getInfoList;
	};

	typedef sequence <AttributeType>
		GetResultAttributeListType;

	union GetResultAttributeListTypeOpt
		switch (boolean) {
			case TRUE: GetResultAttributeListType value;
	};

	struct GetResultType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		GetResultAttributeListTypeOpt attributeList;
	};

	typedef sequence <AttributeType>
		SetResultAttributeListType;

	union SetResultAttributeListTypeOpt
		switch (boolean) {
			case TRUE: SetResultAttributeListType value;
	};

	struct SetResultType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		SetResultAttributeListTypeOpt attributeList;
	};

	enum SetInfoStatusTypeChoice { attributeErrorChoice,
		attribute_1Choice_1 };

	union SetInfoStatusType
		switch(SetInfoStatusTypeChoice) {
			case attributeErrorChoice:
				AttributeErrorType attributeError;
			case attribute_1Choice_1:
				AttributeType attribute_1;
	};

	typedef sequence <SetInfoStatusType>
		SetListErrorSetInfoListType;

	struct SetListErrorType {
		ObjectClassTypeOpt managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		ASN1_GeneralizedTimeOpt currentTime;
		SetListErrorSetInfoListType setInfoList;
	};

	struct SpecificErrorInfoType {
		ASN1_ObjectIdentifier errorId;
		ASN1_DefinedAny errorInfo; // defined by:errorId
	};

	struct ProcessingFailureType {
		ObjectClassType managedObjectClass;
		ObjectInstanceTypeOpt managedObjectInstance;
		SpecificErrorInfoType specificErrorInfo;
	};

	enum LinkedReplyArgumentTypeChoice { getResultChoice,
		getListErrorChoice, setResultChoice, setListErrorChoice,
		actionResultChoice, processingFailureChoice,
		deleteResultChoice, actionErrorChoice, deleteErrorChoice };

	union LinkedReplyArgumentType
		switch(LinkedReplyArgumentTypeChoice) {
			case getResultChoice:
				GetResultType getResult;
			case getListErrorChoice:
				GetListErrorType getListError;
			case setResultChoice:
				SetResultType setResult;
			case setListErrorChoice:
				SetListErrorType setListError;
			case actionResultChoice:
				ActionResultType actionResult;
			case processingFailureChoice:
				ProcessingFailureType processingFailure;
			case deleteResultChoice:
				DeleteResultType deleteResult;
			case actionErrorChoice:
				ActionErrorType actionError;
			case deleteErrorChoice:
				DeleteErrorType deleteError;
	};

	const ModifyOperatorType replace = 0;
	
	const ModifyOperatorType addValues = 1;

	const ModifyOperatorType removeValues = 2;

	const ModifyOperatorType setToDefault = 3;

	struct NoSuchActionType {
		ObjectClassType managedObjectClass;
		ActionTypeIdType actionType;
	};

	struct NoSuchEventTypeType {
		ObjectClassType managedObjectClass;
		EventTypeIdType eventType;
	};

	const ScopeLevelType firstLevelOnly = 1;

	const ScopeLevelType wholeSubtree = 2;

	typedef ModifyOperatorTypeOpt ModifyOperatorTypeDef;

	struct SetArgumentModificationListItemType {
		ModifyOperatorTypeDef modifyOperator;
		AttributeIdType attributeId;
		ASN1_DefinedAnyOpt attributeValue; // defined by:attributeId
	};

	typedef sequence <SetArgumentModificationListItemType>
		SetArgumentModificationListType;

	struct SetArgumentType {
		ObjectClassType baseManagedObjectClass;
		ObjectInstanceType baseManagedObjectInstance;
		AccessControlTypeOpt accessControl;
		CMISSyncTypeDef synchronization;
		ScopeTypeDef scope;
		CMISFilterTypeDef filter;
		SetArgumentModificationListType modificationList;
	};

	const ModifyOperatorType modifyOperatorDefault = replace;

	typedef sequence <AttributeIdType>
		MissingAttributeValueType;

	// Complex constants declaration.

	interface ConstValues {

		// ** Generated values for <ActionArgumentType::synchronization>:

		CMISSyncType synchronizationDefault();
		// returns: bestEffort

		// ** Generated values for <ActionArgumentType::scope>:

		ScopeType scopeDefault();
		// returns: baseObject

		// ** Generated values for <ActionArgumentType::filter>:
		
		CMISFilterType filterDefault();
		// returns: {}

		// ** Generated values for <DeleteArgumentType::synchronization>:

		CMISSyncType synchronizationDefault_1();
		// returns: bestEffort

		// ** Generated values for <DeleteArgumentType::scope>:

		ScopeType scopeDefault_1();
		// returns: baseObject

		// ** Generated values for <DeleteArgumentType::filter>:

		CMISFilterType filterDefault_1();
		// returns: {}

		// ** Generated values for <GetArgumentType::synchronization>:

		CMISSyncType synchronizationDefault_2();
		// returns: bestEffort

		// ** Generated values for <GetArgumentType::scope>:

		ScopeType scopeDefault_2();
		// returns: baseObject

		// ** Generated values for <GetArgumentType::filter>:

		CMISFilterType filterDefault_2();
		// returns: {}

		// ** Generated values for <SetArgumentType::synchronization>:

		CMISSyncType synchronizationDefault_3();
		// returns: bestEffort

		// ** Generated values for <SetArgumentType::scope>:

		ScopeType scopeDefault_3();
		// returns: baseObject

		// ** Generated values for <SetArgumentType::filter>:

		CMISFilterType filterDefault_3();
		// returns: {}

	};

};

#endif /* _X711CMI_IDL_ */


Optional IDL

The IDL listed in this section is included in the definitions contained within this Interaction Translation specification, but is part of some optional facility, and is therefore not required from any implementation.

ASN1.idl

This is the IDL for the Dynamic ASN1 Any API.

// File: ASN1.idl
#ifndef _ASN1_IDL_
#define _ASN1_IDL_

#include <orb.idl>
#include <ASN1Types.idl>

#pragma prefix jidm.org

module ASN1 {

	typedef CORBA::Identifier Identifier;

	enum Kind {
		ak_none, // used when value is not ASN.1 based
		ak_null, ak_boolean,
		ak_integer, ak_real,
		ak_numericstring, ak_printablestring,
		ak_visiblestring, ak_iso646string,
		ak_graphicstring, ak_objectdescriptor,
		ak_teletexstring, ak_t61string,
		ak_generalizedtime, ak_utctime,
		ak_octetstring, ak_generalstring,
		ak_ia5string, ak_videotexstring,
		ak_bmpstring, ak_universalstring,
		ak_objectidentifier,
		ak_bitstring,
		ak_any, ak_definedany,
		ak_external,
		ak_enum,
		ak_sequence, ak_set,
		ak_sequenceof, ak_setof,
		ak_choice
	};

	interface DynAny : CORBA::DynAny {
		Kind asn1_kind() raises (Invalid);
		Identifier asn1_type_name () raises (Invalid);
		Identifier asn1_module_name() raises (Invalid);
		Identifier asn1_module_nickname() raises (Invalid);
		ASN1_ObjectIdentifier asn1_module_oid() raises (Invalid);

		void asn1_assign (in DynAny asn1_dyn_any) raises (Invalid);
		void from_dyn_any (in CORBA::DynAny dyn_any) raises (Invalid);
		CORBA::DynAny to_dyn_any() raises (Invalid);
		DynAny asn1_copy();

		void insert_asn1_null(in ASN1_Null value) raises(InvalidValue);
		void insert_asn1_boolean(in ASN1_Boolean value) raises(InvalidValue);
		void insert_asn1_unsigned16(in ASN1_Unsigned16 value) raises(InvalidValue);
		void insert_asn1_unsigned(in ASN1_Unsigned value) raises(InvalidValue);
		void insert_asn1_unsigned64(in ASN1_Unsigned64 value) raises(InvalidValue);
		void insert_asn1_integer16(in ASN1_Integer16 value) raises(InvalidValue);
		void insert_asn1_integer(in ASN1_Integer value) raises(InvalidValue);
		void insert_asn1_integer64(in ASN1_Integer64 value) raises(InvalidValue);
		void insert_asn1_real(in ASN1_Real value) raises(InvalidValue);
		void insert_asn1_numericstring(in ASN1_NumericString value) raises(InvalidValue);
		void insert_asn1_printablestring(in ASN1_PrintableString value) raises(InvalidValue);
		void insert_asn1_visiblestring(in ASN1_VisibleString value) raises(InvalidValue);
		void insert_asn1_iso646string(in ASN1_ISO646String value) raises(InvalidValue);
		void insert_asn1_graphicstring(in ASN1_GraphicString value) raises(InvalidValue);
		void insert_asn1_objectdescriptor(in ASN1_ObjectDescriptor value) raises(InvalidValue);
		void insert_asn1_teletexstring(in ASN1_TeletexString value) raises(InvalidValue);
		void insert_asn1_t61string(in ASN1_T61String value) raises(InvalidValue);

		void insert_asn1_generalizedtime(in ASN1_GeneralizedTime value) raises(InvalidValue);
		void insert_asn1_utctime(in ASN1_UTCTime value) raises(InvalidValue);

		void insert_asn1_octetstring(in ASN1_OctetString value) raises(InvalidValue);
		void insert_asn1_generalstring(in ASN1_GeneralString value) raises(InvalidValue);
		void insert_asn1_ia5string(in ASN1_IA5String value) raises(InvalidValue);
		void insert_asn1_videotexstring(in ASN1_VideotexString value) raises(InvalidValue);

		void insert_asn1_bmpstring(in ASN1_BMPString value) raises(InvalidValue);
		void insert_asn1_universalstring(in ASN1_UniversalString value) raises(InvalidValue);

		void insert_asn1_objectidentifier(in ASN1_ObjectIdentifier value) raises(InvalidValue);

		void insert_asn1_bitstring(in ASN1_BitString value) raises(InvalidValue);

		void insert_asn1_any(in ASN1_Any value) raises(InvalidValue);
		void insert_asn1_definedany(in ASN1_DefinedAny value) raises(InvalidValue);

		void insert_asn1_external(in ASN1_External value) raises(InvalidValue);

		ASN1_Null get_asn1_null() raises(TypeMismatch);
		ASN1_Boolean get_asn1_boolean() raises(TypeMismatch);

		ASN1_Unsigned16 get_asn1_unsigned16() raises(TypeMismatch);
		ASN1_Unsigned get_asn1_unsigned() raises(TypeMismatch);
		ASN1_Unsigned64 get_asn1_unsigned64() raises(TypeMismatch);
		ASN1_Integer16 get_asn1_integer16() raises(TypeMismatch);
		ASN1_Integer get_asn1_integer() raises(TypeMismatch);
		ASN1_Integer64 get_asn1_integer64() raises(TypeMismatch);

		ASN1_Real get_asn1_real() raises(TypeMismatch);

		ASN1_NumericString get_asn1_numericstring() raises(TypeMismatch);
		ASN1_PrintableString get_asn1_printablestring() raises(TypeMismatch);
		ASN1_VisibleString get_asn1_visiblestring() raises(TypeMismatch);
		ASN1_ISO646String get_asn1_iso646string() raises(TypeMismatch);
		ASN1_GraphicString get_asn1_graphicstring() raises(TypeMismatch);
		ASN1_ObjectDescriptor get_asn1_objectdescriptor() raises(TypeMismatch);
		ASN1_TeletexString get_asn1_teletexstring() raises(TypeMismatch);
		ASN1_T61String get_asn1_t61string() raises(TypeMismatch);

		ASN1_GeneralizedTime get_asn1_generalizedtime() raises(TypeMismatch);
		ASN1_UTCTime get_asn1_utctime() raises(TypeMismatch);

		ASN1_OctetString get_asn1_octetstring() raises(TypeMismatch);
		ASN1_GeneralString get_asn1_generalstring() raises(TypeMismatch);
		ASN1_IA5String get_asn1_ia5string() raises(TypeMismatch);
		ASN1_VideotexString get_asn1_videotexstring() raises(TypeMismatch);
		ASN1_BMPString get_asn1_bmpstring() raises(TypeMismatch);
		ASN1_UniversalString get_asn1_universalstring() raises(TypeMismatch);

		ASN1_ObjectIdentifier get_asn1_objectidentifier() raises(TypeMismatch);

		ASN1_BitString get_asn1_bitstring() raises(TypeMismatch);

		ASN1_Any get_asn1_any() raises(TypeMismatch);
		ASN1_DefinedAny get_asn1_definedany() raises(TypeMismatch);

		ASN1_External get_asn1_external() raises(TypeMismatch);

		DynAny current_asn1_component () raises(Invalid);
	};

	interface DynEnum: DynAny, CORBA::DynEnum {
		attribute string value_as_asn1_identifier;
		attribute long value_as_asn1_value;
	};

	interface DynNamedNumber: DynAny {
		attribute string value_as_asn1_identifier;
	};

	typedef CORBA::FieldName FieldName;
	typedef CORBA::NameValuePairSeq NameValuePairSeq;

	interface DynSetSeq: DynAny, CORBA::DynStruct {
		FieldName current_asn1_elem_name ();
		Kind current_asn1_elem_kind ();
		NameValuePairSeq get_asn1_elems() raises(Invalid);
		void set_asn1_elems(in NameValuePairSeq value) raises (InvalidSeq);
		void insert_optional_absent() raises (InvalidValue);
		DynAny insert_optional_present() raises (InvalidValue);
		void insert_default_absent() raises (InvalidValue);
		DynAny insert_default_present() raises (InvalidValue);
		boolean get_optional_presence() raises (TypeMismatch);
		DynAny get_optional_present() raises (TypeMismatch);
		boolean get_default_presence() raises (TypeMismatch);
		DynAny get_default_present() raises (TypeMismatch);
	};

	interface DynChoice: DynAny, CORBA::DynUnion {
		DynAny asn1_elem ();
		attribute FieldName asn1_elem_name;
		Kind asn1_elem_kind ();
	};

	interface DynSetSeqOf : DynAny, CORBA::DynSequence {
		Kind asn1_item_kind ();
	};

	interface DynAnyFactory {
		exception InconsistentKind {};
		exception InconsistentTypeCode {};

	typedef CORBA::Identifier Identifier;

		DynAny create_asn1_dyn_any(in any value);

		DynAny create_basic_dyn_any(in CORBA::TypeCode type)
			raises(InconsistentTypeCode);
		CORBA::DynStruct create_dyn_struct(in CORBA::TypeCode type)
			raises(InconsistentTypeCode);
		CORBA::DynSequence create_dyn_sequence(in CORBA::TypeCode type)
			raises(InconsistentTypeCode);
		CORBA::DynUnion create_dyn_union(in CORBA::TypeCode type)
			raises(InconsistentTypeCode);
		CORBA::DynEnum create_dyn_enum(in CORBA::TypeCode type)
			raises(InconsistentTypeCode);
		CORBA::DynArray create_dyn_array(in CORBA::TypeCode type)
			raises(InconsistentTypeCode);
		CORBA::DynFixed create_dyn_fixed(in CORBA::TypeCode type)
			raises(InconsistentTypeCode);

		DynAny create_asn1_dyn_primitive(in Identifier asn1_nickname,
				in Identifier asn1_name)
			raises(InconsistentKind);
		DynEnum create_asn1_dyn_enum(in Identifier asn1_nickname,
				in Identifier asn1_name)
			raises(InconsistentKind);
		DynSetSeq create_asn1_dyn_setseq(in Identifier asn1_nickname,
				in Identifier asn1_name)
			raises(InconsistentKind);
		DynSetSeqOf create_asn1_dyn_setseqof(in Identifier asn1_nickname,
				in Identifier asn1_name)
			raises(InconsistentKind);
		DynChoice create_asn1_dyn_choice(in Identifier asn1_nickname,
				in Identifier asn1_name)
			raises(InconsistentKind);
	};

};

#endif /* _ASN1_IDL_ */


OSICaching.idl

This is the IDL for the OSI Caching facility.

// File: OSICaching.idl
#ifndef _OSICACHING_IDL_
#define _OSICACHING_IDL_

#include <OSIMgmt.idl>

#pragma prefix jidm.org

module OSICaching {
	typedef unsigned long ExpirationInterval; // in seconds
	typedef ASN1_ObjectIdentifier ManagedObjectClass;
	typedef sequence <ManagedObjectClass> ManagedObjectClassSeq;
	typedef ASN1_ObjectIdentifier AttrId;
	typedef sequence < ASN1_ObjectIdentifier > AttrIdSeq;

	// NoSuchAttributes is raised when any specified attribute identifiers
	// are either unknown or invalid.
	exception NoSuchAttributes {
		AttrIdSeq unknown_attributes;
	};

	// AttributesNotCached is raised when any specified attribute identifiers
	// to relevant caching operations are not being cached.
		exception AttributesNotCached {
		AttrIdSeq attr_id_list;
	};

	// NoSuchObjectClasses is raised when any specified object classes are
	// either unknown or invalid.
	exception NoSuchObjectClasses {
		ManagedObjectClassSeq unknown_mocs;
	};

	// ObjectClassesNotCached is raised when any specified object classes
	// to relevant caching operations are not being cached.
	exception ObjectClassesNotCached {
		ManagedObjectClassSeq moc_list;
	};

	// InvalidObjectClassAttributesPairs is raised when any specified attribute
	// identifiers do not belong to the specified managed object class.
	struct ObjectClassAttributesPair {
		ManagedObjectClass moc;
		AttrIdSeq attr_id_list;
	};
	typedef sequence<ObjectClassAttributesPair> ObjectClassAttributesPairSeq;
	exception InvalidObjectClassAttributesPairs {
		ObjectClassAttributesPairSeq invalid_pairs;
	};

	/* There may be situations when more than one type of error may occur
	* because of a single invocation of an operation. To accurately convey
	* the different types of error information, CacheConfigException is used
	* by some operations. If any of the members of the following exception
	* are not relevant, then such members shall be empty sequences, i.e.,
	* sequences of zero length. For example, when passing an argument of
	* AttrIdSeq to remove cached attributes , the client may pass some invalid
	* or unkown attribute identifiers, and some valid attribute identifiers
	* that are not cached. In such situations, CacheConfigException is raised
	* with the invalid or unknown attribute identifiers specified in the
	* no_such_attributes member, the valid but not cached attribute
	* identifiers specified in the attrs_not_cached member, and the rest of
	* the members set to zero length sequences.
	*/

	exception CacheConfigException {
		AttrIdSeq no_such_attributes;
		ManagedObjectClassSeq no_such_classes;
		AttrIdSeq attrs_not_cached;
		ManagedObjectClassSeq mocs_not_cached;
		ObjectClassAttributesPairSeq invalid_moc_attrs_pairs;
	};

	// abstract interface for configuring all caches
	interface CacheConfigurator {
		void set_default_expiration_interval (
			in ExpirationInterval expiration_interval,
			in boolean override_specific_settings
		);
		ExpirationInterval get_default_expiration_interval ();

		void set_caching_enabled (
			in boolean enabled,
			in boolean override_specific_settings
		);
		boolean is_caching_enabled ();
	};

	// cached attribute information
	struct CachedAttribute {
		AttrId attr_id;
		ExpirationInterval expiration_interval;
	};
	typedef sequence < CachedAttribute > CachedAttributeSeq;

	// abstract interface to configure per-attribute cache
	interface PerAttributeCacheConfigurator {
		void add_cached_attributes (
			in CachedAttributeSeq attr_list,
			in boolean override_specific_settings
		) raises ( NoSuchAttributes );

		void remove_cached_attributes (
			in AttrIdSeq attr_id_list,
			in boolean override_specific_settings
		) raises ( CacheConfigException );

		CachedAttributeSeq get_cached_attributes ();

		ExpirationInterval get_expiration_interval (
			in AttrId attr_id
		) raises ( CacheConfigException );

		void set_expiration_interval(
			in AttrIdSeq attr_id_list,
			in ExpirationInterval interval
		) raises ( CacheConfigException );
	};

	// managed object class with indicated attributes cached
	struct CachedObjectClass {
		ManagedObjectClass moc;
		CachedAttributeSeq cached_attributes_list;
	};
	typedef sequence < CachedObjectClass > CachedObjectClassSeq;

	// abstract interface to configure per-class cache
	interface PerClassCacheConfigurator {
		void add_cached_classes (
			in CachedObjectClassSeq class_list,
			in boolean override_specific_settings
		) raises ( CacheConfigException );

		void remove_cached_classes (
			in ManagedObjectClassSeq moc_list,
			in boolean override_specific_settings
		) raises ( CacheConfigException );

		void remove_cached_attributes_from_class_cache(
			in ManagedObjectClass moc,
			in AttrIdSeq attr_id_list,
			in boolean override_specific_settings
		) raises ( CacheConfigException );

		CachedObjectClassSeq get_cached_classes ();
		
		CachedAttributeSeq get_cached_attributes_for_class (
			in ManagedObjectClass moc
		) raises ( OSIMgmt::NoSuchObjectClass );

		void set_expiration_interval_for_class (
			in ManagedObjectClass moc,
			in AttrIdSeq attr_list,
			in ExpirationInterval extension_duration
		) raises ( CacheConfigException );
	};

	interface ProxyAgent : OSIMgmt::ProxyAgent,
			CacheConfigurator,
			PerAttributeCacheConfigurator,
			PerClassCacheConfigurator {};

	interface ManagedObject : OSIMgmt::ManagedObject,
			CacheConfigurator,
			PerAttributeCacheConfigurator {

		void refresh_cached_values (
			in AttrIdSeq attr_list
		) raises ( CacheConfigException );

		void invalidate_cached_values (
			in AttrIdSeq attr_list
		) raises ( CacheConfigException );
	};

};

#endif /* _OSICACHING_IDL_ */


OSITracking.idl

This is the IDL for the OSI Tracking facility.


// File: OSITracking.idl
#ifndef _OSITRACKING_IDL_
#define _OSITRACKING_IDL_

#include <OSICaching.idl>

#pragma prefix jidm.org

module OSITracking {

	typedef OSICaching::ManagedObjectClassSeq ManagedObjectClassSeq;
	typedef OSICaching::AttrIdSeq AttrIdSeq;

	// abstract interface to configure all tracking
	interface TrackConfigurator {
		void set_tracking_enabled (
			in boolean enabled,
			in boolean override_specific_settings
		);

		boolean is_tracking_enabled ();
	};

	// abstract interface to configure per-attribute tracking
	interface PerAttributeTrackConfigurator {
		void add_tracked_attributes (
			in AttrIdSeq attr_list,
			in boolean override_specific_settings
		) raises ( OSICaching::NoSuchAttributes );

		// If the attr_id_list contains an attribute identifier that is not
		// being tracked, then that attribute identifier is ignored
		// by remove_tracked_attributes.
		void remove_tracked_attributes (
			in AttrIdSeq attr_id_list,
			in boolean override_specific_settings
		) raises ( OSICaching::NoSuchAttributes );

		AttrIdSeq get_tracked_attributes ();
	};

	// managed object class with indicated attributes tracked
	struct TrackedObjectClass {
		OSICaching::ManagedObjectClass moc;
		AttrIdSeq list_of_tracked_attributes;
	};

	typedef sequence < TrackedObjectClass > TrackedObjectClassSeq;

	// TrackConfigException is similar in purpose to
	// OSICaching::CacheConfigException
	exception TrackConfigException {
		ManagedObjectClassSeq no_such_mocs;
		AttrIdSeq no_such_attr_ids;
		OSICaching::ObjectClassAttributesPairSeq invalid_moc_attrs_pairs;
	};

	// abstract interface to configure per-class tracking
	interface PerClassTrackConfigurator {
		void add_tracked_classes (
			in TrackedObjectClassSeq class_list,
			in boolean override_specific_settings
		) raises ( TrackConfigException );

		void remove_tracked_classes (
			in ManagedObjectClassSeq moc_list,
			in boolean override_specific_settings
		) raises ( OSICaching::NoSuchObjectClasses );

		TrackedObjectClassSeq get_tracked_classes ();

		AttrIdSeq get_tracked_attributes_for_class (
			in OSICaching::ManagedObjectClass class_name
		) raises ( OSIMgmt::NoSuchObjectClass );
	};

	interface ProxyAgent : OSICaching::ProxyAgent,
			TrackConfigurator,
			PerAttributeTrackConfigurator,
			PerClassTrackConfigurator {};

	interface ManagedObject : OSICaching::ManagedObject,
			TrackConfigurator,
			PerAttributeTrackConfigurator {};

};

#endif /* _OSITRACKING_IDL_ */


OSICollection.idl

This is the IDL for the OSI Collection facility.


// File: OSICollection.idl
#ifndef _OSICOLLECTION_IDL_
#define _OSICOLLECTION_IDL_

#include <OSIMgmt.idl>

#pragma prefix jidm.org

module OSICollection {
	typedef OSIMgmt::ManagedObject ManagedObject;
	typedef sequence < ManagedObject > ManagedObjectSeq;
	exception IteratorInvalid { };
	exception IteratorInBetween { };
	exception CollectionInvalid { };
	exception NotFound { };
	exception InvalidName { };

	interface Iterator {
		// retrieving elements
		boolean get_element (
			out ManagedObject mo
		) raises ( IteratorInvalid, IteratorInBetween );
		boolean get_n_elements (
			in unsigned long how_many,
			out ManagedObjectSeq mo_list
		) raises ( IteratorInvalid );

		// moving iterator
		void restart () raises ( IteratorInvalid );
		void set_to_next_element () raises ( IteratorInvalid );
		void set_to_next_nth_element (
			in unsigned long how_many
		) raises ( IteratorInvalid );

		// iterator state
		void invalidate ();
		boolean is_valid ();
		boolean is_in_between ();
		boolean is_equal ( in Iterator other ) raises ( IteratorInvalid );

		// cloning, assigning and destroying
		Iterator clone ();
		void assign ( in Iterator from_where ) raises ( IteratorInvalid );
		void destroy ();
	};

	typedef OSIMgmt::LinkedReplyHandler LinkedReplyHandler;
	typedef OSIMgmt::EndOfRepliesHandler EndOfRepliesHandler;

	// abstract base interface
	interface BaseCollection {
		// operations to perform on all elements in the collection
		void perform_get (
			in OSIMgmt::ASN1_ObjectIdentifierSeq attr_id_list,
			in LinkedReplyHandler lrh,
			in EndOfRepliesHandler eorh
		);
		void perform_set (
			in OSIMgmt::SetOperationArgument modif_list,
			in LinkedReplyHandler lrh,
			in EndOfRepliesHandler eorh
		);
		void perform_action (
			in ASN1_ObjectIdentifier action_id,
			in ASN1_DefinedAny action_info,
			in LinkedReplyHandler lrh,
			in EndOfRepliesHandler eorh
		);
		void perform_delete (
			in LinkedReplyHandler lrh,
			in EndOfRepliesHandler eorh
		);

		// statistics
		boolean is_empty ();

		// creating iterators
		Iterator create_iterator (
			in boolean read_only
		) raises ( CollectionInvalid );

		// destruction
		void destroy ();
	};

	interface EnumCollection : BaseCollection {
		// adding elements
		void add_element ( in ManagedObject element );
		void add_elements ( in ManagedObjectSeq elem_list );
		void add_all_from ( in BaseCollection collection );

		// removing elements
		void remove_element_at (
			in Iterator where
		) raises ( IteratorInvalid, IteratorInBetween );
		void remove_all ();
	};

	interface RuleCollection : BaseCollection {
		ManagedObject get_base_object () raises ( CollectionInvalid );
		X711CMI::ScopeType get_scope () raises ( CollectionInvalid );
		X711CMI::CMISFilterType get_filter () raises ( CollectionInvalid );
		X711CMI::CMISSyncType get_synchronization () raises (CollectionInvalid );
	};

	interface CollectionFactory {
		EnumCollection create_enum_collection ();

		EnumCollection create_enum_collection_from_collection (
			in BaseCollection collection
		);

		RuleCollection create_rule_collection (
			in OSIMgmt::ManagedObject base_managed_object,
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType sync
		);

		RuleCollection create_rule_collection_by_name (
			in OSIMgmt::ProxyAgent proxy_agent,
			in CORBA::ScopedName base_mo_interface,
			in CosNaming::Name base_mo_name,
			in X711CMI::ScopeType scope,
			in X711CMI::CMISFilterType filter,
			in X711CMI::CMISSyncType sync
		);
	};
};

#endif /* _OSICOLLECTION_IDL_ */


SNMPMIR.idl

This is the IDL for the SNMP Management Information Repository facility.


// File: SNMPMIR.idl
#ifndef _SNMPMIR_IDL_
#define _SNMPMIR_IDL_

#include <orb.idl>
#include <ASN1Types.idl>

#pragma prefix jidm.org

module SNMPMIR {

	// Snmpv1GenericTrapId defines the identfiers for generic trap
	// types in SNMPv1.

	enum Snmpv1GenericTrapId {
		TRAP_COLDSTART, TRAP_WARMSTART, TRAP_LINKDOWN, TRAP_LINKUP,
		TRAP_AUTHFAIL, TRAP_EGPNEIGHBORLOSS, TRAP_ENTERPRISESPECIFIC
	};

	// GENERIC_TRAP_ENTERPRISE_OID defines the enterprise OID for
	// generic traps.

	const ASN1_ObjectIdentifier GENERIC_TRAP_ENTERPRISE_OID = 1.3.6.1.4.1.3.1.1;

	// SmiAccessMode defines the enumerated values of the SMI based
	// acces - mode defined for a specific variables.

	enum SmiAccessMode {
		read_only, read_write, read_create, write_only, inaccessible
	};

	// Basic and Application specific SMI types.
	enum SmiValueType {
		smi_null_value, smi_integer_value, smi_string_value, smi_objectID_value,
		smi_bit_value, smi_ipAddress_value, smi_counter_value, smi_gauge_value,
		smi_timeticks_value, smi_arbitary_value, smi_nsapAddress_value,
		smi_big_counter_value, smi_unsigned_integer_value, smi_unknown_type
	};

	typedef CORBA::ScopedName ScopedName;
	typedef sequence < ScopedName > ScopedNameList;
	typedef sequence < string > VarNameList;

	typedef sequence < string > ModuleNameList;
	typedef sequence < ASN1_ObjectIdentifier > OIDList;

	interface OidRepository {

		ScopedName get_scoped_name ( in ASN1_ObjectIdentifier in_oid );

		string get_name ( in ASN1_ObjectIdentifier in_oid );
		ASN1_ObjectIdentifier get_oid ( in ScopedName in_scoped_name );
		ASN1_ObjectIdentifier get_var_oid (
			in ScopedName iface_scoped_name,
			in string var_name
		);

		string get_textual_obj_id ( in ASN1_ObjectIdentifier obj_id );

		void split_var_object_id (
			in ASN1_ObjectIdentifier var_obj_id,
			out ASN1_ObjectIdentifier var_oid,
			out ASN1_ObjectIdentifier obj_index
		);

		ASN1_ObjectIdentifier get_next_oid ( in ASN1_ObjectIdentifier oid );

		ScopedName get_next_scoped_name ( in ScopedName scoped_name );
		ScopedName get_next_entry_type ( in ScopedName scoped_name );

	};

	interface VariableDef : CORBA::AttributeDef {
		readonly attribute ASN1_ObjectIdentifier oid;
		readonly attribute SmiValueType smi_type;
		readonly attribute SmiAccessMode smi_access_mode;

		readonly attribute any default_value;
	};
	typedef sequence < VariableDef > VariableDefList;

	interface SmiEntryDef : CORBA::InterfaceDef {
		readonly attribute ASN1_ObjectIdentifier oid;
		readonly attribute unsigned long total_no_of_variables;
		readonly attribute VariableDefList var_def_list;
		readonly attribute VarNameList var_name_list;
		readonly attribute ScopedNameList var_scoped_name_list;
		readonly attribute OIDList var_oid_list;
		readonly attribute VarNameList index_var_names;

		readonly attribute ScopedName next_group_or_table;
		VariableDef lookup_variable( in string var_name );
	};
	typedef sequence < SmiEntryDef > SmiEntryDefList;

	interface GroupDef : SmiEntryDef {
		readonly attribute SmiEntryDefList table_entry_list;
	};
	typedef sequence < GroupDef > GroupDefList;

	interface ModuleDef : CORBA::ModuleDef {
		readonly attribute GroupDefList smi_group_def_list;
		readonly attribute SmiEntryDefList smi_entry_def_list;
		readonly attribute CORBA::InterfaceDef push_notification_def;
		readonly attribute CORBA::InterfaceDef pull_notification_def;

		readonly attribute CORBA::InterfaceDef default_value_def;
		SmiEntryDef lookup_smi_entry( in string smi_entry_name );
	};
	typedef sequence < ModuleDef > ModuleDefList;

	interface Repository : CORBA::Repository, OidRepository {
		readonly attribute ModuleNameList module_name_list;
		readonly attribute ModuleDefList module_def_list;
		boolean is_smi_module( in CORBA::Identifier module_name );
		ModuleDef lookup_smi_module( in string a_module_name );
		SmiEntryDef lookup_smi_entry( in ScopedName entry_scoped_name );
		ScopedNameList get_entry_var_list( in ScopedName entry_scoped_name );
		ScopedNameList get_entry_index_var_list( in ScopedName entry_scoped_name );
		any get_var_default_value( in ScopedName var_scoped_name );
		string get_generic_trap_desc( in ASN1_Integer trap_type );
	};

};

#endif /* _SNMPMIR_IDL_ */



Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index