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