M_sth.idl



#ifndef __PROSPECT_SUBSCRIPTION_IDLFILE_M_sth_idl__
#define __PROSPECT_SUBSCRIPTION_IDLFILE_M_sth_idl__




///////////////////////////////////////////////////////////////////////
//
// Service Template Handler Interface Definitions
// Description: This module defines the interface of the Service
//	Template Handler CO.
// Created: 29/7/96
// By: D.Lewis, A.DaCruz
//
///////////////////////////////////////////////////////////////////////
// Modifications:
//	Date: 29/7/96
//	By: D.Lewis
//	Reason: initial version based on TINA/TANGRAM
//		subscription models.
//
//	Date: 22/10/96
//	By: T.Tiropanis
//	Reason: Changed all identifiers with SVC to Svc
//
//      Date: 10/12/96
//      By: D.Lewis
//      Reason: change prefix of exceptions from e_* to e_sub* 
//
///////////////////////////////////////////////////////////////////////




#include "C_sub.idl"




///////////////////////////////////////////////////////////////////////
//
// begin module STH
//

module STH {





///////////////////////////////////////////////////////////////////////
// STH Lifecycle Management Interface (i_sthInit)
//

interface i_sthInit: i_CoInit {};





///////////////////////////////////////////////////////////////////////
// STH Subscription Verification Interface (i_subscriptionVerify)
//	This interface allows a client to verify
//	the validation of a Subscription characteristics

interface i_subscrnVerify {


	void verifySubscription (
		in	t_Subscription		subscription,
		out	boolean			ack )
		raises	(e_subAccessDenied);


		// This operation is used by a SubscriptionRegistrar
		// when a subscriber or a user wants to set
		// Subscription characteristics.
		// The ServiceTemplateHandler will check whether
		// the Subscription is valid or not and notify
		// the SubscriptionRegistrar of the result.
		//////////////////////////////////////////////////

}; // end of i_subscrnVerify interface




///////////////////////////////////////////////////////////////////////
// STH Service Factory Reference Query Interface (i_svcFacoryRefQuery)
//	This interface provides servcie factory
//	reference identifier to a client

interface i_svcFctryRefQuery {


	void getSvcFactoryRef (
		in	t_SvcId		svc_id,
		out	t_IntRef	svc_factory_ref )

		raises	(e_subAccessDenied,
			e_subInvalidSvcTemplate);

		// This operation provides service factory reference
		// identifier to a UserAgent or SubscriptionAgent.
		//////////////////////////////////////////////////

}; // end of i_svcFctryRefQuery interface




///////////////////////////////////////////////////////////////////////
// STH Service Template Management Interface (i_svcTemplateMgmt)
//	This interface allows a client to create and delete servcie
//	templates

interface i_svcTmpltMgmt {


	void createServiceTemplate (
		in	t_SvcTemplate		svc_template )
		raises	(e_subAccessDenied);


	void deleteServiceTemplate (
		in	t_SvcId			svc_template_id)

		raises	(e_subAccessDenied,
			e_subInvalidSvcTemplate);


		// The client application
		// must check first to ensure that no subscribers are 
		// currently subscribed to this service beforehand, since 
		// the template should not be deleted otherwise
		//////////////////////////////////////////////////

}; // end of i_svcTmpltMgmt interface




///////////////////////////////////////////////////////////////////////
// STH Service Template Information Query Interface
// (i_svcTemplateInfoQuery)
//	This interface allows a client to have
//	ServiceTemplate information

interface i_svcTmpltInfoQuery {


	void getSvcList (
		out	t_SvcIdList		svc_id_list)

		raises (e_subAccessDenied);

		// This operation allows the client to retrieve the IDs
		// of all the service template currently held by the STH
		//////////////////////////////////////////////////

	void getSvcTemplate (
		in	t_SvcId			svc_id,
		out	t_SvcTemplate		svc_template )

		raises	(e_subAccessDenied,
			e_subInvalidSvcTemplate);

		// This operation gets the ServiceTemplate for
		// a particular service.
		//////////////////////////////////////////////////


	void getSvcType (
		in	t_SvcId			svc_id,
		out	string			svc_type )

		raises	(e_subAccessDenied,
			e_subInvalidSvcTemplate);


		// This operation provides service type to a
		// SubscriptionAgent via a SubscriptionRegistrar.
		//////////////////////////////////////////////////

}; // end of i_svcTmpltInfoQuery interface




///////////////////////////////////////////////////////////////////////
// STH Management Interface (i_sthMgmt)

interface i_sthMgmt: i_CoMgmt {};




}; // end of module STH




//
// end of module STH
//
///////////////////////////////////////////////////////////////////////




#endif