M_smgr.idl
#ifndef __PROSPECT_SUBSCRIPTION_IDLFILE_M_smgr_idl__
#define __PROSPECT_SUBSCRIPTION_IDLFILE_M_smgr_idl__
///////////////////////////////////////////////////////////////////////
//
// Subscriber Management Interface Definitions
// Description: This module defines the interface of the Subscriber
// Management 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: 2/8/96
// By: D.Lewis
// Reason:
// - change input paramter of modifySubscriber from
// t_SubscriberDetails to t_Subscriber
// - create new interface i_sbrInfoQuery
// - move operation getSubscriber from i_sbrMgmt to
// i_sbrInfoQuery
// - add new operation modifySubscriberDetails to
// interface i_sbrInfoQuery
//
// Date: 6/11/96
// By: D.Lewis
// Reason:
// - changed the return type of getSagList from t_SagIdList to
// t_SagList
// - added method getAssignedSagList to interface
// i_SagInfoQuery. This returns only SAGs subscribed to
// a particular service
//
// Date: 9/9/97
// By: D.Lewis
// Reason:
// - added new operations, addSAGItem and removeSAGItem to
// interface i_sagMgmt
//
///////////////////////////////////////////////////////////////////////
#include "C_sub.idl"
///////////////////////////////////////////////////////////////////////
//
// begin module SubMgr
//
module SubMgr {
///////////////////////////////////////////////////////////////////////
// SubMgr Lifecycle Management Interface (i_smInit)
interface i_smInit: i_CoInit {
void smgr_init()
raises (e_subAccessDenied);
};
///////////////////////////////////////////////////////////////////////
//SubMgr Management Interface (i_smMgmt)
// This interface allows a client to set the
// administrative state of the SubscriberManager,
// set up the domain (set) of users to be handled
// by a SubscriberManager
interface i_smMgmt: i_CoMgmt {};
///////////////////////////////////////////////////////////////////////
//SubMgr Subscriber Management Interface (i_sbrMgmt)
// This interface allows a client to manage
// subscriber information
interface i_sbrMgmt {
void createSubscriber (
in t_Subscriber subscriber,
out string account_no )
raises (e_subAccessDenied);
// This operation is used to create a subscriber.
//////////////////////////////////////////////////
void modifySubscriber (
in t_Subscriber subscriber )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation allows its clients to modify
// the attributes of a particular subscriber.
//////////////////////////////////////////////////
void deleteSubscriber (
in string account_no )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation is used to delete a particular
// Subscriber object.
//////////////////////////////////////////////////
}; // end of i_sbrMgmt interface
///////////////////////////////////////////////////////////////////////
//SubMgr Subscriber Information Query Interface (i_sbrInfoQuery)
// This interface allows a client to access and modify
// non-financial subscriber information.
interface i_sbrInfoQuery {
void listAccounts (
out t_AccountList account_list )
raises (e_subAccessDenied);
// This operation return the list of all accounts
// currently held by the porvider, including those
// with no current subscription contract
/////////////////////////////////////////////////
void getSubscriber (
in string account_no,
out t_Subscriber subscriber )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
void modifySubscriberDetails (
in string account_no,
in t_SubscriberDetails subscriber_details )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation allows its clients to modify
// non-finacial attributes of a particular subscriber.
//////////////////////////////////////////////////
}; // end of i_sbrInfoQuery interface
///////////////////////////////////////////////////////////////////////
//SubMgr Subscription Notification Interface (i_subscrnNotif)
// This interface allows a client to notify
// subscription/cancellation.
interface i_subscrnNotif {
void notifySubscription (
in string account_no,
in t_SvcId svc_id )
raises (e_subAccessDenied);
// If a SubscriptionPortfolio already exists
// for the subscriber, then this subscription
// is added to it. Otherwise, a SubscriptionPortfolio
// is created and this subscription is added to it.
//////////////////////////////////////////////////
void notifyCancellation (
in string account_no,
in t_SvcId svc_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSvcTemplate);
// The result of this operation is to remove
// a subscription for the service from a
// SubscriptionPortfolio.
//////////////////////////////////////////////////
}; // end of i_subscrnNotif interface
///////////////////////////////////////////////////////////////////////
//SubMgr Subscription Assignmnet Group Management Interface (i_sagMgmt)
// This interface allows a client to manage SAG
interface i_sagMgmt {
void defineSAG (
in string account_no,
in t_AssignGroupSelection assign_group_selection,
out t_SagId sag_group_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation allows for the definition
// and subsequent modification of a
// SubscriptionAssignmentGroup.
//////////////////////////////////////////////////
void modifySAG (
in string account_no,
in t_AssignGroupSelection assign_group_selection )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG);
// This operation is used to add or delete
// members from a SAG
//////////////////////////////////////////////////
void addSAGItem (
in string account_no,
in t_SagId sag_group_id,
in t_SagItem sag_item)
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG);
// This operation is used to add individual
// members from a SAG
//////////////////////////////////////////////////
void removeSAGItem (
in string account_no,
in t_SagId sag_group_id,
in t_SagItem sag_item)
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG,
e_subInvalidItem);
// This operation is used to remove individual
// members from a SAG
//////////////////////////////////////////////////
void deleteSAG (
in string account_no,
in t_SagId sag_group_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG);
// This operation is used to delete a SAG
//////////////////////////////////////////////////
}; // end of i_sagMgmt interface
///////////////////////////////////////////////////////////////////////
// SubMgr SAG Information Query Interface (i_sagInfoQuery)
// This interface allows a client to have the
// information SubscriptionAssignmentGroup
interface i_sagInfoQuery {
void getSagList (
in string account_no,
out t_SagList sag_list )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
void getAssignedSagList (
in string account_no,
in t_SvcId svc_id,
out t_SagList sag_list )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSvcTemplate);
void getSAG (
in string account_no,
in t_SagId sag_group_id,
out t_AssignGroupSelection assign_group_selection )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG);
// This operation allows its clients to get the
// attribute values of a SubscriptionAssignmentGroup.
//////////////////////////////////////////////////
}; // end of i_sagInfoQuery interface
///////////////////////////////////////////////////////////////////////
// SubMgr Portfolio Management Interface (i_portfolioMgmt)
// This interface allows a client to manage
// Subscription Portfolio
interface i_portfolioMgmt {
void modifyPortfolio (
in string account_no,
in t_SubscriptionPortfolio subscription_portfolio )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidPortfolio);
// This operation is used to modify a SubscriptionPortfolio
//////////////////////////////////////////////////
void getPortfolio (
in string account_no,
out t_SubscriptionPortfolio subscription_portfolio )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation allows its clients to get the
// attribute values of a SubscriptionPortfolio.
//////////////////////////////////////////////////
void deletePortfolio (
in string account_no )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation allows the SubMgr to delete
// the SubscriptionPortfolio.
//////////////////////////////////////////////////
}; // end of i_portfolioMgmt interface
}; // end of SubMgr Module
//
// end of module SubMgr
//
///////////////////////////////////////////////////////////////////////
#endif