product.idl

Go to the documentation of this file.
00001 // OSB library ********************************************* -*- C++ -*-
00009 /*
00010   AUTHOR(S): Zhang Min (zm)
00011 
00012   RCS information
00013    $Name: OSB_060808 $
00014    $Revision: 1.46.2.1 $
00015 
00016   License
00017    OSB rating and billing library for communication networks
00018    Copyright (C) 2004, 2005, 2006  OSB systems
00019 
00020    This file may be distributed and/or modify under the terms of the
00021    GNU General Public License (GPL) as published by the Free Software
00022    Foundation which is provided in the file LICENSE.GPL included in the
00023    packaging of this file.
00024 
00025    The file is distributed in the hope that it will be useful, but WITHOUT
00026    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00027    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00028    for more details.
00029 
00030    Holders of a OSB Commercial License may use this file under the terms
00031    and conditions of this commercial license.
00032  */
00033 #ifndef PRODUCT_IDL
00034 #define PRODUCT_IDL
00035 // *********************************************************************
00036 #include "corba_utility.idl"
00037 #include "productpart.idl"
00038 
00039 module corba {
00040     module pcat {
00041         module pd {
00042             // forward declarations (needed in product)
00043             interface Product;
00044             interface ProductWriter;
00045 
00047             struct ProductId {
00048                 long id;
00049             };
00050 
00052             typedef sequence<Product> ProductSeq;
00053 
00060             interface Product {
00066                 ProductId id()
00067                     raises (common::OsbCorbaException);
00068 
00070                 common::Utf8String name()
00071                     raises (common::OsbCorbaException);
00072 
00074                 common::Utf8String desc()
00075                     raises (common::OsbCorbaException);
00076 
00078                 common::CfgStatus status()
00079                     raises (common::OsbCorbaException);
00080 
00082                 common::Date startDate()
00083                     raises (common::OsbCorbaException);
00084 
00086                 common::Date endDate()
00087                     raises (common::OsbCorbaException);
00088 
00100                 pp::ProductPart getPart(in pp::ProductPartId id)
00101                     raises (common::OsbCorbaException);
00102 
00109                  pp::ProductPartSeq getParts();
00110 
00123                 ProductWriter getWriter();
00124             };
00125 
00129             interface ProductWriter : Product
00130             {
00139                 void setName(in common::Utf8String name)
00140                     raises (common::OsbCorbaException);
00141 
00150                 void setDesc(in common::Utf8String desc)
00151                     raises (common::OsbCorbaException);
00152 
00161                 void setStartDate(in common::Date start)
00162                     raises (common::OsbCorbaException);
00163 
00171                 void setEndDate(in common::Date end)
00172                     raises (common::OsbCorbaException);
00173 
00190                 pp::ProductPartWriter getWritablePart(
00191                     in pp::ProductPartId id
00192                 ) raises (common::OsbCorbaException);
00193 
00212                 pp::ProductPartWriter addPart(in pp::PpTypeId pptypeid)
00213                     raises (common::OsbCorbaException);
00214 
00224                 void removePart(in pp::ProductPartId id)
00225                     raises (common::OsbCorbaException);
00226 
00252                 void commitChanges() raises (common::OsbCorbaException);
00253             };
00254         };
00255     };
00256 };
00257 
00258 #endif                                  // PRODUCT_IDL

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