productpart.idl

Go to the documentation of this file.
00001 // OSB library ********************************************* -*- C++ -*-
00010 /*
00011   AUTHOR(S): Zhang Min (zm)
00012              Stephan Broennimann (vb)
00013 
00014   RCS information
00015    $Name: OSB_060808 $
00016    $Revision: 1.23.2.1 $
00017 
00018   License
00019    OSB rating and billing library for communication networks
00020    Copyright (C) 2004, 2005, 2006  OSB systems
00021 
00022    This file may be distributed and/or modify under the terms of the
00023    GNU General Public License (GPL) as published by the Free Software
00024    Foundation which is provided in the file LICENSE.GPL included in the
00025    packaging of this file.
00026 
00027    The file is distributed in the hope that it will be useful, but WITHOUT
00028    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00029    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00030    for more details.
00031 
00032    Holders of a OSB Commercial License may use this file under the terms
00033    and conditions of this commercial license.
00034  */
00035 #ifndef PRODUCTPART_IDL
00036 #define PRODUCTPART_IDL
00037 // *********************************************************************
00038 #include "corba_utility.idl"
00039 
00040 module corba {
00041   module pcat {
00042     module pp {
00043 // *********************************************************************
00044 // forward declaration of interfaces
00045         interface ProductPart;
00046         interface PpType;
00047 
00048         interface ProductPartWriter;
00049 
00050 // *********************************************************************
00051 // type definitions
00053         struct ProductPartId {
00054             long id;
00055         };
00056 
00058         struct PpTypeId {
00059             long id;
00060         };
00061 
00063         typedef sequence<ProductPart> ProductPartSeq;
00064 
00066         typedef sequence<PpType> PpTypeSeq;
00067 
00068 // *********************************************************************
00069 // interface definitions
00070 
00071         // *************************************************************
00072         // PpType
00079         interface PpType {
00086             readonly attribute PpTypeId id;
00088             readonly attribute common::Utf8String name;
00090             readonly attribute common::Utf8String desc;
00092             readonly attribute boolean isProductPart;
00093 
00095 
00096 
00097             const short piDescItem     = 1;
00099             const short piCallingCard  = 2;
00101             const short piService      = 3;
00103             const short piCredit       = 4;
00105             const short piTariffSystem = 5;
00107             const short piTrunkItem    = 6;
00109             const short piAnItem       = 7;
00111             const short piE164Item     = 8;
00113             const short piIp4Item      = 9;
00115             const short piIpGroup      = 10;
00117             const short piImsiItem     = 11;
00119             const short piPricelist    = 12;
00121             const short piDevice       = 20;
00123             const short piUimCard      = 21;
00125         };
00126 
00127         // *************************************************************
00128         // ProductPart
00134         enum PpCfgType {
00135             cfgNone,            
00136             cfgOptional,        
00137             cfgMandatory        
00138         };
00139 
00146         enum PpDefPersType {
00147              defPersNone,       
00148              defPersOptional,   
00149              defPersMandatory   
00150         };
00151 
00160         enum PpCfgPersType {
00161             persNone,           
00162             persOptional,       
00163             persMandatory       
00164         };
00165 
00175         interface ProductPart {
00186 
00187             PpTypeId tid()
00188                 raises (common::OsbCorbaException);
00189 
00191             PpCfgType cfgType()
00192                 raises (common::OsbCorbaException);
00193 
00195             PpDefPersType defPersType()
00196                 raises (common::OsbCorbaException);
00198 
00204             ProductPartId id()
00205               raises (common::OsbCorbaException);
00206 
00208             common::Utf8String name()
00209                 raises (common::OsbCorbaException);
00210 
00212             common::Utf8String desc()
00213                 raises (common::OsbCorbaException);
00214 
00224             long mandatory()
00225                 raises (common::OsbCorbaException);
00226 
00228             PpCfgPersType canPersonalize()
00229                 raises (common::OsbCorbaException);
00230 
00232             ProductPartId parentId()
00233                 raises (common::OsbCorbaException);
00234 
00241             common::Utf8String configDes()
00242                 raises (common::OsbCorbaException);
00243 
00250             common::Utf8String defPersDes()
00251                 raises (common::OsbCorbaException);
00252 
00258             ProductPartSeq getParts()
00259                 raises (common::OsbCorbaException);
00260         };
00261 
00262         // *************************************************************
00263         // ProductPartWriter
00284         interface ProductPartWriter : ProductPart {
00293             void setName(in common::Utf8String name)
00294                 raises (common::OsbCorbaException);
00295 
00304             void setDesc(in common::Utf8String desc)
00305                 raises (common::OsbCorbaException);
00306 
00315             void setMandatory(in long value)
00316                 raises (common::OsbCorbaException);
00317 
00330             void setConfigDes(in common::Utf8String desc)
00331                 raises (common::OsbCorbaException);
00332 
00346             void setDefPersDes(in common::Utf8String desc)
00347                 raises (common::OsbCorbaException);
00348 
00370             ProductPartWriter addPart(in PpTypeId pptid)
00371                raises (common::OsbCorbaException);
00372 
00381             void removePart(in ProductPartId id)
00382                  raises (common::OsbCorbaException);
00383         };
00384 
00385         // *************************************************************
00386         // DescriptionPart
00394         interface DescriptionPart : ProductPart {
00395         };
00396 
00404         interface DescriptionPartWriter : ProductPartWriter,
00405                                           DescriptionPart
00406         {
00407         };
00408 
00409         // *************************************************************
00410         // TrunkPart
00417         interface TrunkPart : ProductPart {
00418         };
00419 
00426         interface TrunkPartWriter : ProductPartWriter,
00427                                     TrunkPart
00428         {
00429         };
00430 
00431         // *************************************************************
00432         // AnPart
00439         interface AnPart : ProductPart {
00440         };
00441 
00448         interface AnPartWriter : ProductPartWriter,
00449                                  AnPart
00450         {
00451         };
00452 
00453         // *************************************************************
00454         // E164Part
00460         interface E164Part : ProductPart {
00461         };
00462 
00468         interface E164PartWriter : ProductPartWriter,
00469                                    E164Part
00470         {
00471         };
00472 
00473         // *************************************************************
00474         // IpGroupPart
00481         interface IpGroupPart : ProductPart {
00482         };
00483 
00490         interface IpGroupPartWriter : ProductPartWriter,
00491                                       IpGroupPart
00492         {
00493         };
00494     };                                  // module pp
00495   };                                    // module pcat
00496 };                                      // module corba
00497 #endif                                  // PRODUCTPART_IDL
00498 

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