C_svc.idl
#ifndef __PROSPECT_SUBSCRIPTION_IDLFILE_C_svc_idl__
#define __PROSPECT_SUBSCRIPTION_IDLFILE_C_svc_idl__
///////////////////////////////////////////////////////////////////////
//
// Common Service Management Type Definitions
// Description: Types common to all trial 1 IDL definitions related to
// service management.
// Created: 29/7/96
// By: D.Lewis, A.DaCruz
//
///////////////////////////////////////////////////////////////////////
// Modifications:
// Date: 29/7/96
// By: D.Lewis
// Reason: initial version based on TINA/TANGRAM accounting and
// subscription models.
// Date: 13/9/96
// By: T.Tiropanis
// Reason: Added struct t_SvcRef
// Date: 2/10/96
// By: T.Tiropanis
// Reason: Changed definition of struct t_SvcRef;
// added type t_SvcRefList
// Date: 22/10/96
// By: T.Tiropanis
// Reason: Changed all identifiers with SVC to Svc
// Date: 22/10/96
// By: T.Tiropanis
// Reason: Added Personal Profile definition
//
// Date: 5/9/97
// By: D.Lewis
// Reason:
// - in struct t_PersonalProfile replace "t_KeyRef Key_ref"
// with "boolean security_on"
//
///////////////////////////////////////////////////////////////////////
#include "C_typ.idl"
///////////////////////////////////////////////////////////////////////
// Identifier for services. These need only be unique within the scope
// of a specific service provider.
typedef string t_SvcId;
typedef sequence t_SvcId t_SvcIdList;
///////////////////////////////////////////////////////////////////////
// Globally unique identifier for service providers.
typedef string t_SvcProviderId;
typedef sequence t_SvcProviderId t_SvcProviderIdList;
///////////////////////////////////////////////////////////////////////
// Service Type represents the type of a service rather than its
// contents, i.e. the service type should characterise the media and
// mode of deleivery of the service. The type refers to a service
// (taken from possibly several service templates offered by a
// provider) subscribed to by a cusotmer.
// Since it is currently not possible to completely enumerate this type
// a string is used instead.
// Possible string values are for trial 1 are :
//
// TesSelfPacedCourse
// TesInteactiveCourse
// MmcAudioOnlyService
// MmcFullService
// HmService
// GsService
// VpnService
typedef string t_SvcType;
///////////////////////////////////////////////////////////////////////
// This structure indicate the terminal type.
// Since it is currently not possible to completely enumerate this type
// a string is used instead.
// Possible string values are for trial 1 are :
//
// PC,
// Workstation,
// TVset,
// Videotelephone,
// Cellularphone,
// PBX,
// VideoServer,
// VideoBridge,
// Telephone,
// G4Fax,
// IpRouter,
// IpMcRouter
typedef string t_TermType;
///////////////////////////////////////////////////////////////////////
// The following is used to determine the limitation of available QoS.
// Since it is currently not possible to completely enumerate this type
// a string is used instead.
// Possible string values are for trial 1 are :
//
// NapTypeFixed,
// NapTypeWireless
typedef string t_NapType;
///////////////////////////////////////////////////////////////////////
// The following is for further studies.
typedef string t_NapInfo;
///////////////////////////////////////////////////////////////////////
// Terminal presentation technology.
// Since it is currently not possible to completely enumerate this type
// a string is used instead.
// The original TANGRAM model suggested enumerations such as X11R6,
// WINDOWS95, MHEG, however fro trial 1 it is suggested that
// presentation support could be classified as WWW MIME types. This is
// for further study in A3.2
typedef string t_PresentationSupport;
///////////////////////////////////////////////////////////////////////
// This structure contains information about the minimal required
// configuration of a service. This is used to specify a configuration
// for a particular service session.
struct t_RequiredConfiguration {
t_TermType term_type;
t_NapType nap_type;
t_PresentationSupport presentation_support;
};
///////////////////////////////////////////////////////////////////////
// Terminal Capability (e.g. Multimedia Capability with Audio-video
// connections, stereo, 3D video, synchronisation). The use of this
// structure is for further study for trial 1
typedef string t_TermCap;
///////////////////////////////////////////////////////////////////////
// This information is used as a clue to select an appropriate
// terminal for a specific service. While t_TermType is physical
// ("what the terminal is (e.g. a PC)"), this is more logical
// ("what the terminal can do (e.g. audio-video display)").
struct t_TermConnAttributes { // Connection attributes
boolean has_connection_control_capabilities;
// if no, then the followings are not applicable.
string supported_codings; // MPEG, etc.
string maximal_bandwidth;
string total_bandwidth;
string maximal_no_of_connections;
string maximal_qos;
};
struct t_TermServAttributes { // Service attributes
boolean has_svc_control_capabilities;
// If no, then the followings are not applicable.
string supported_svcs;
string maximal_svc_processing_performance;
string maximal_no_of_svc_sessions;
};
struct t_TermAttributes {
t_TermConnAttributes term_conn_attr;
t_TermServAttributes term_serv_attr;
boolean is_portable;
};
///////////////////////////////////////////////////////////////////////
// Terminal Information with respect to service control, i.e. what the
// terminal can do, e.g. MPEG Terminal, Video Server, Database,
// Multimedia Document Server.
struct t_TermInfo {
t_TermCap term_cap;
// What the terminal can do.
t_TermAttributes term_attr;
// And its restrictions/QoS.
};
///////////////////////////////////////////////////////////////////////
// Description: Definition of the some common definitions used
// in the context of the Subscription Registrar
// Computational Object.
struct t_Person {
string name;
string address;
string tel_no;
};
///////////////////////////////////////////////////////////////////////
// Personal Profile Definition
struct t_PersonalProfile {
t_Person user_profile;
t_UserId user_id;
t_Password user_passwd;
boolean security_on;
};
///////////////////////////////////////////////////////////////////////
// The following is used to present an available service with
// information
// of the mininal required configuration.
struct t_SvcInfo {
t_SvcId svc_id;
t_SvcType svc_type;
t_RequiredConfiguration required_configuration;
};
typedef sequence t_SvcInfo t_SvcList;
///////////////////////////////////////////////////////////////////////
//
// Service Reference. This type describes the service reference as they
// are returned from a UA when a service is selected.
// A service reference includes: the URL of
// the web page that the end-user's browser is to access, the mime type
// that describes the required plug-in and the list of interface
// references (i.e. USM interface reference) that must be known to
// the end-user application CO (UAP).
struct t_SvcRef {
string type;
string value;
};
typedef sequence t_SvcRef t_SvcRefList;
//
// End of Common Service Definitions
///////////////////////////////////////////////////////////////////////
#endif