persproditem.idl

Go to the documentation of this file.
00001 // OSB library ********************************************* -*- IDL -*-
00006 /*
00007   AUTHOR(S): Darryl Kang (dk)
00008 
00009   RCS information
00010    $Name: OSB_060808 $
00011    $Revision: 1.26.2.1 $
00012 
00013   License
00014    OSB rating and billing library for communication networks
00015    Copyright (C) 2004, 2005, 2006  OSB systems
00016 
00017    This file may be distributed and/or modify under the terms of the
00018    GNU General Public License (GPL) as published by the Free Software
00019    Foundation which is provided in the file LICENSE.GPL included in the
00020    packaging of this file.
00021 
00022    The file is distributed in the hope that it will be useful, but WITHOUT
00023    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00024    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00025    for more details.
00026 
00027    Holders of a OSB Commercial License may use this file under the terms
00028    and conditions of this commercial license.
00029  */
00030 #ifndef PERSPRODITEM_IDL
00031 #define PERSPRODITEM_IDL
00032 // *********************************************************************
00033 #include "productpart.idl"
00034 #include "tariffobject.idl"
00035 #include "cadmin.idl"
00036 
00037 // ************************************************************************
00038 // module extensions
00039 module corba {
00040     module cadmin {
00041         module persproditem {
00042 
00043     // ********************************************************************
00044     // PersProdItemWriter
00049     interface PersProdItemWriter {
00051         readonly attribute PersItemId id;
00052 
00054         common::Utf8String name()
00055             raises (common::OsbCorbaException);
00056 
00058         common::Utf8String desc()
00059             raises (common::OsbCorbaException);
00060 
00062         readonly attribute common::DateTime assignDate;
00063 
00065         readonly attribute common::DateTime deassignDate;
00066 
00068         readonly attribute pcat::pp::PpTypeId type;
00069 
00071         readonly attribute common::Utf8String personalization;
00072 
00074         readonly attribute boolean canConfig;
00075 
00088         PersItemId create(
00089             in boolean noWait
00090         ) raises (common::OsbCorbaException);
00091 
00103         PersItemId commitChanges(
00104             in boolean noWait
00105         ) raises (common::OsbCorbaException);
00106     };
00107 
00108     // ********************************************************************
00109     // Personalised tariff system
00111     interface PersTariffSystemWriter : PersProdItemWriter {
00113         tcat::ts::TariffSystem ts()
00114             raises (common::OsbCorbaException);
00115 
00117         tcat::ts::TariffSystemSeq tsList()
00118             raises (common::OsbCorbaException);
00119 
00121         void setTsId (in tcat::ts::TariffSystemId id)
00122             raises (common::OsbCorbaException);
00123     };
00124 
00125     // ********************************************************************
00126     // Personalised service
00128     interface PersServiceWriter : PersProdItemWriter {};
00129 
00130     // ********************************************************************
00131     // Personalised resource
00132     struct ResourceId {
00133         long id;
00134     };
00135 
00137     struct BasicResInfo {
00139         ResourceId id;
00140 
00142         common::Utf8String resourceNumber;
00143     };
00144 
00146     typedef sequence<BasicResInfo> BasicResSeq;
00147 
00149     interface PersResource : PersProdItemWriter {
00151         ResourceId rsId()
00152             raises (common::OsbCorbaException);
00153     };
00154 
00155     // ********************************************************************
00156     // E.164 number
00158     interface PersE164Writer : PersResource {
00166         BasicResInfo e164Number()
00167             raises (common::OsbCorbaException);
00168 
00176         BasicResSeq search(
00177             in common::Utf8String pattern,
00178             in long               numSearch
00179         ) raises (common::OsbCorbaException);
00180 
00188         boolean setE164Number(
00189             in ResourceId id
00190         ) raises (common::OsbCorbaException);
00191     };                                  // interface PersE164Writer
00192 
00193     // ********************************************************************
00194     // Calling card
00195 /*
00196     interface PersCcWriter : PersResource {
00198         common::Utf8String serialNumber()
00199             raises (common::OsbCorbaException);
00200     };
00201 */
00202 
00203     // ********************************************************************
00204     // Personalised trunk
00209     struct TrunkGroupInfo {
00211         common::Utf8String name;
00212     };
00213 
00215     typedef sequence<TrunkGroupInfo> TrunkGroupInfoSeq;
00216 
00221     struct TrkResInfo {
00223         BasicResInfo resInfo;
00224 
00226         TrunkGroupInfoSeq trkGrps;
00227     };
00228 
00230     typedef sequence<TrkResInfo> TrkResInfoSeq;
00231 
00233     interface PersTrunkItemWriter : PersResource {
00242         TrkResInfo trkRes()
00243             raises (common::OsbCorbaException);
00244 
00253         TrkResInfoSeq trkResList()
00254             raises (common::OsbCorbaException);
00255 
00266         boolean setTrkRes(
00267             in ResourceId id
00268         ) raises (common::OsbCorbaException);
00269     };
00270 
00271     // ********************************************************************
00272     // Personalised IpGroup.
00277     struct IpGroupInfo {
00279         BasicResInfo resInfo;
00280 
00282         BasicResSeq ipAddresses;
00283     };
00284 
00286     typedef sequence<IpGroupInfo> IpGroupSeq;
00287 
00289     interface PersIpGroupItemWriter : PersResource {
00297         IpGroupInfo ipGroup()
00298             raises (common::OsbCorbaException);
00299 
00307         IpGroupSeq ipGroupList()
00308             raises (common::OsbCorbaException);
00309 
00318         boolean setIpGroup(
00319             in ResourceId id
00320         ) raises (common::OsbCorbaException);
00321     };
00322 
00323     // ********************************************************************
00324     // Personalised access number
00325 
00327     interface PersAnItemWriter : PersResource {
00329         BasicResInfo aNum()
00330             raises (common::OsbCorbaException);
00331 
00333         readonly attribute BasicResSeq anList;
00334 
00345         boolean setAn(
00346             in ResourceId id
00347         ) raises (common::OsbCorbaException);
00348     };
00349 
00350     // ********************************************************************
00351     // Personalised credit
00352 /*
00353     interface PersCreditWriter : PersProdItemWriter {
00354 
00356         common::Money credit()
00357             raises (common::OsbCorbaException);
00358 */
00367 /*
00368         boolean add(
00369             in common::Money amount,
00370             in boolean noWait
00371         ) raises (common::OsbCorbaException);
00372 */
00373 // Use-case????
00382 /*
00383         boolean deduct(
00384             in common::Money amount,
00385             in boolean noWait
00386         ) raises (common::OsbCorbaException);
00387     };
00388 */
00389 
00390         };           // module persproditem
00391     };               // module cadmin
00392 };
00393 #endif                                  // #ifndef PERSPRODITEM_IDL

Generated on Sat Sep 2 14:23:00 2006 for OSB Library by  doxygen 1.4.7