00001 // /******************************************************************************\ 00002 // * 00003 // * File: ParamValue.cpp 00004 // * Creation date: May 17, 2001 11:37 00005 // * Author: ClassBuilder 00006 // * XXXX 00007 // * Purpose: Method implementations of class 'SCParamValue' 00008 // * 00009 // * Modifications: @INSERT_MODIFICATIONS(* ) 00010 // * June 19, 2001 16:42 WERS 00011 // * Added member 'm_convInfo' 00012 // * Added member 'm_convId' 00013 // * Updated member 'm_dyn' 00014 // * June 15, 2001 15:02 WERS 00015 // * Updated code of method 'SCParamValue' 00016 // * June 15, 2001 14:39 WERS 00017 // * Updated interface of method 'SCParamValue' 00018 // * June 08, 2001 13:01 WERS 00019 // * Updated code of method 'SCParamValue' 00020 // * June 08, 2001 09:36 WERS 00021 // * Deleted method 'SCParamValue' 00022 // * Added method 'SCParamValue' 00023 // * Updated member 'm_prmKind' 00024 // * Updated member 'm_prmName' 00025 // * Updated member 'm_dyn' 00026 // * June 08, 2001 09:06 WERS 00027 // * Deleted member 'm_pMethParam' 00028 // * Added method 'SCParamValue' 00029 // * Added member 'm_prmKind' 00030 // * Added member 'm_prmName' 00031 // * June 06, 2001 16:18 WERS 00032 // * Updated code of method 'SCParamValue' 00033 // * June 06, 2001 16:15 WERS 00034 // * Deleted method 'CopyDynAny' 00035 // * Deleted method 'SCParamValue' 00036 // * Added method 'SCParamValue' 00037 // * Added member 'm_pMethParam' 00038 // * June 06, 2001 16:04 WERS 00039 // * Added method 'CopyDynAny' 00040 // * Updated code of method '~SCParamValue' 00041 // * May 17, 2001 11:37 WERS 00042 // * Added method 'DestructorInclude' 00043 // * Added method 'ConstructorInclude' 00044 // * Added method '~SCParamValue' 00045 // * Added method 'SCParamValue' 00046 // * Added relation 'ParamList(SCParamList) <>-->> ParamValue(SCParamValue)' 00047 // * Added relation 'ParamValue(SCParamValue) <>-->> FieldValue(SCFieldValue)' 00048 // * Added member 'm_dyn' 00049 // * 00050 // * 00051 // \******************************************************************************/ 00052 //@START_USER1 00057 /* -------------------------------------------------------------- 00058 Copyright (C) 2001 LifeLine Networks BV <soap2corba@lifeline.nl> 00059 00060 This program is free software; you can redistribute it and/or 00061 modify it under the terms of the GNU General Public License 00062 as published by the Free Software Foundation; either 00063 version 2 of the License, or (at your option) any later 00064 version. 00065 00066 This program is distributed in the hope that it will be useful, 00067 but WITHOUT ANY WARRANTY; without even the implied warranty of 00068 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00069 GNU General Public License for more details. 00070 00071 You should have received a copy of the GNU General Public License 00072 along with this program; if not, write to the Free Software 00073 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00074 -------------------------------------------------------------- */ 00075 //@END_USER1 00076 00077 00078 // Master include file 00079 #include "SoapCorba.h" 00080 00081 00082 //@START_USER2 00083 //@END_USER2 00084 00085 00086 // Static members 00087 00088 00092 SCParamValue::SCParamValue(SCParamList* pParamList, 00093 DynamicAny::DynAnyFactory_ptr dynFact, 00094 SCMethParam* pMP) //@INIT_2195 00095 : m_prmName(pMP->m_prmName) 00096 , m_prmKind(pMP->m_prmKind) 00097 , m_convId(pMP->m_convId) 00098 , m_convInfo(pMP->m_convInfo) 00099 {//@CODE_2195 00100 ConstructorInclude(pParamList); 00101 00102 m_dyn = dynFact->create_dyn_any_from_type_code (pMP->m_tc); 00103 }//@CODE_2195 00104 00105 00109 SCParamValue::~SCParamValue() 00110 {//@CODE_576 00111 DestructorInclude(); 00112 00113 m_dyn->destroy (); 00114 }//@CODE_576 00115 00116 00117 //{{AFX DO NOT EDIT CODE BELOW THIS LINE !!! 00118 00122 void SCParamValue::ConstructorInclude(SCParamList* pParamList) 00123 { 00124 // INIT_MULTI_OWNED_PASSIVE(SCParamList, ParamList, SCParamValue, ParamValue) 00125 assert(this); 00126 assert(pParamList); 00127 pParamList->_countParamValue++; 00128 00129 _refParamList = pParamList; 00130 00131 if (pParamList->_lastParamValue) 00132 { 00133 _nextParamList = (SCParamValue*)0; 00134 _prevParamList = pParamList->_lastParamValue; 00135 _prevParamList->_nextParamList = this; 00136 pParamList->_lastParamValue = this; 00137 } 00138 else 00139 { 00140 _prevParamList = (SCParamValue*)0; 00141 _nextParamList = (SCParamValue*)0; 00142 pParamList->_firstParamValue = pParamList->_lastParamValue = this; 00143 } 00144 } 00145 00146 00150 void SCParamValue::DestructorInclude() 00151 { 00152 // EXIT_MULTI_OWNED_PASSIVE(SCParamList, ParamList, SCParamValue, ParamValue) 00153 00154 assert(this); 00155 if (_refParamList) 00156 { 00157 SCParamList::ParamValueIterator::Check(this); 00158 00159 _refParamList->_countParamValue--; 00160 00161 if (_nextParamList) 00162 _nextParamList->_prevParamList = _prevParamList; 00163 else 00164 _refParamList->_lastParamValue = _prevParamList; 00165 00166 if (_prevParamList) 00167 _prevParamList->_nextParamList = _nextParamList; 00168 else 00169 _refParamList->_firstParamValue = _nextParamList; 00170 00171 _prevParamList = (SCParamValue*)0; 00172 _nextParamList = (SCParamValue*)0; 00173 _refParamList = (SCParamList*)0; 00174 } 00175 } 00176 00177 00178 // Methods for the relation(s) of the class 00179 // METHODS_MULTI_OWNED_PASSIVE(SCParamList, ParamList, SCParamValue, ParamValue) 00180 00181 //}}AFX DO NOT EDIT CODE ABOVE THIS LINE !!! 00182 00183 //@START_USER3 00184