Back to index

salome-kernel  6.5.0
SALOMEDS_AttributeParameter.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  File   : SALOMEDS_AttributeParameter.cxx
00024 //  Author : Sergey RUIN
00025 //  Module : SALOME
00026 //
00027 #include "SALOMEDS_AttributeParameter.hxx"
00028 #include "SALOMEDS.hxx"
00029 
00030 #include <string>
00031 
00032 //=======================================================================
00037 //=======================================================================
00038 SALOMEDS_AttributeParameter::SALOMEDS_AttributeParameter(SALOMEDSImpl_AttributeParameter* theAttr)
00039 :SALOMEDS_GenericAttribute(theAttr)
00040 {}
00041 
00042 //=======================================================================
00047 //=======================================================================
00048 SALOMEDS_AttributeParameter::SALOMEDS_AttributeParameter(SALOMEDS::AttributeParameter_ptr theAttr)
00049 :SALOMEDS_GenericAttribute(theAttr)
00050 {}
00051 
00052 //=======================================================================
00057 //=======================================================================
00058 SALOMEDS_AttributeParameter::~SALOMEDS_AttributeParameter()
00059 {}
00060 
00061 //=======================================================================
00066 //=======================================================================
00067 void SALOMEDS_AttributeParameter::SetInt(const std::string& theID, const int theValue) 
00068 {
00069   CheckLocked();
00070 
00071   if(_isLocal) {
00072     SALOMEDS::Locker lock; 
00073     dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->SetInt(theID, theValue);
00074   }
00075   else
00076     SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetInt(theID.c_str(), theValue);
00077 }
00078 
00079 //=======================================================================
00084 //=======================================================================
00085 int SALOMEDS_AttributeParameter::GetInt(const std::string& theID) 
00086 {
00087   int aValue;
00088   if(_isLocal) {
00089     SALOMEDS::Locker lock; 
00090     aValue = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->GetInt(theID);
00091   }
00092   else
00093     aValue = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetInt(theID.c_str());
00094   return aValue;
00095 }
00096 
00097 //=======================================================================
00102 //=======================================================================
00103 void SALOMEDS_AttributeParameter::SetReal(const std::string& theID, const double& theValue) 
00104 {
00105   CheckLocked();
00106 
00107   if(_isLocal) {
00108     SALOMEDS::Locker lock; 
00109     dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->SetReal(theID, theValue);
00110   }
00111   else
00112     SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetReal(theID.c_str(), theValue);
00113 }
00114  
00115 //=======================================================================
00120 //=======================================================================
00121 double SALOMEDS_AttributeParameter::GetReal(const std::string& theID) 
00122 {
00123   double aValue;
00124   if(_isLocal) {
00125     SALOMEDS::Locker lock; 
00126     aValue = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->GetReal(theID);
00127   }
00128   else
00129     aValue = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetReal(theID.c_str());
00130   return aValue;
00131 }
00132 
00133 //=======================================================================
00138 //=======================================================================
00139 void SALOMEDS_AttributeParameter::SetString(const std::string& theID, const std::string& theValue) 
00140 {
00141   CheckLocked();
00142 
00143   if(_isLocal) {
00144     SALOMEDS::Locker lock; 
00145     dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->SetString(theID, theValue);
00146   }
00147   else
00148     SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetString(theID.c_str(), theValue.c_str());
00149 }
00150  
00151 //=======================================================================
00156 //=======================================================================
00157 std::string SALOMEDS_AttributeParameter::GetString(const std::string& theID) 
00158 {
00159   std::string aValue;
00160   if(_isLocal) {
00161     SALOMEDS::Locker lock; 
00162     aValue = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->GetString(theID);
00163   }
00164   else
00165     aValue = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetString(theID.c_str());
00166   return aValue;
00167 }
00168   
00169 //=======================================================================
00174 //=======================================================================
00175 void SALOMEDS_AttributeParameter::SetBool(const std::string& theID, const bool& theValue) 
00176 {
00177   CheckLocked();
00178 
00179   if(_isLocal) {
00180     SALOMEDS::Locker lock; 
00181     dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->SetBool(theID, theValue);
00182   }
00183   else
00184     SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetBool(theID.c_str(), theValue);
00185 }
00186 
00187 //=======================================================================
00192 //=======================================================================
00193 bool SALOMEDS_AttributeParameter::GetBool(const std::string& theID) 
00194 {
00195   if(_isLocal) {
00196     SALOMEDS::Locker lock; 
00197     return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->GetBool(theID);
00198   }
00199   else
00200     return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetBool(theID.c_str());
00201 }
00202   
00203 //=======================================================================
00208 //=======================================================================
00209 void SALOMEDS_AttributeParameter::SetRealArray(const std::string& theID, const std::vector<double>& theArray) 
00210 {
00211   CheckLocked();
00212 
00213   if(_isLocal) {
00214     SALOMEDS::Locker lock; 
00215     dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->SetRealArray(theID, theArray);
00216   }
00217   else {
00218     SALOMEDS::DoubleSeq_var aSeq = new SALOMEDS::DoubleSeq;
00219     int length = theArray.size();
00220     if(length) {
00221       aSeq->length(length);
00222       for(int i = 0; i<length; i++) aSeq[i] = theArray[i];
00223     }
00224     SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetRealArray(theID.c_str(), aSeq);
00225   }
00226 }
00227  
00228 //=======================================================================
00233 //=======================================================================
00234 std::vector<double> SALOMEDS_AttributeParameter::GetRealArray(const std::string& theID) 
00235 {
00236   std::vector<double> v;
00237   if(_isLocal) {
00238     SALOMEDS::Locker lock; 
00239     return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->GetRealArray(theID);
00240   }
00241   else {
00242     SALOMEDS::DoubleSeq_var aSeq = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetRealArray(theID.c_str());    
00243     int length = aSeq->length();
00244     if(length) {
00245       v.resize(length);
00246       for(int i = 0; i < length; i++) v[i] = aSeq[i];
00247     }
00248   }
00249   return v;
00250 }
00251 
00252 //=======================================================================
00257 //=======================================================================
00258 void SALOMEDS_AttributeParameter::SetIntArray(const std::string& theID, const std::vector<int>& theArray) 
00259 {
00260   CheckLocked();
00261 
00262   if(_isLocal) {
00263     SALOMEDS::Locker lock; 
00264     dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->SetIntArray(theID, theArray);
00265   }
00266   else {
00267     SALOMEDS::LongSeq_var aSeq = new SALOMEDS::LongSeq;
00268     int length = theArray.size();
00269     if(length) {
00270       aSeq->length(length);
00271       for(int i = 0; i<length; i++) aSeq[i] = theArray[i];
00272     }
00273     SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetIntArray(theID.c_str(), aSeq);
00274   }
00275 }
00276  
00277 //=======================================================================
00282 //=======================================================================
00283 std::vector<int> SALOMEDS_AttributeParameter::GetIntArray(const std::string& theID) 
00284 {
00285   std::vector<int> v;
00286   if(_isLocal) {
00287     SALOMEDS::Locker lock; 
00288     return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->GetIntArray(theID);
00289   }
00290   else {
00291     SALOMEDS::LongSeq_var aSeq = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetIntArray(theID.c_str());    
00292     int length = aSeq->length();
00293     if(length) {
00294       v.resize(length);
00295       for(int i = 0; i < length; i++) v[i] = aSeq[i];
00296     }
00297   }
00298   return v;
00299 }
00300 
00301 //=======================================================================
00306 //=======================================================================
00307 void SALOMEDS_AttributeParameter::SetStrArray(const std::string& theID, const std::vector<std::string>& theArray) 
00308 {
00309   CheckLocked();
00310 
00311   if(_isLocal) {
00312     SALOMEDS::Locker lock; 
00313     dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->SetStrArray(theID, theArray);
00314   }
00315   else {
00316     SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq;
00317     int length = theArray.size();
00318     if(length) {
00319       aSeq->length(length);
00320       for(int i = 0; i<length; i++) aSeq[i] = CORBA::string_dup(theArray[i].c_str());
00321     }
00322     SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetStrArray(theID.c_str(), aSeq);
00323   }
00324 }
00325  
00326 //=======================================================================
00331 //=======================================================================
00332 std::vector<std::string> SALOMEDS_AttributeParameter::GetStrArray(const std::string& theID) 
00333 {
00334   std::vector<std::string> v;
00335   if(_isLocal) {
00336     SALOMEDS::Locker lock; 
00337     return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->GetStrArray(theID);
00338   }
00339   else {
00340     SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetStrArray(theID.c_str());    
00341     int length = aSeq->length();
00342     if(length) {
00343       v.resize(length);
00344       for(int i = 0; i < length; i++) v[i] = std::string(aSeq[i].in());
00345     }
00346   }
00347   return v;
00348 }
00349 
00350 
00351 //=======================================================================
00357 //======================================================================= 
00358 bool SALOMEDS_AttributeParameter::IsSet(const std::string& theID, const int theType) 
00359 {
00360   if(_isLocal) {
00361     SALOMEDS::Locker lock; 
00362     return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->IsSet(theID, (Parameter_Types)theType);
00363   }
00364   else 
00365     return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->IsSet(theID.c_str(), theType);
00366 }
00367 
00368 //=======================================================================
00373 //======================================================================= 
00374 bool SALOMEDS_AttributeParameter::RemoveID(const std::string& theID, const int theType) 
00375 {
00376   CheckLocked();
00377 
00378   if(_isLocal) {
00379     SALOMEDS::Locker lock; 
00380     return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->RemoveID(theID, (Parameter_Types)theType);
00381   }
00382   else
00383     return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->RemoveID(theID.c_str(), theType);
00384 }
00385 
00386 //=======================================================================
00391 //=======================================================================
00392 _PTR(AttributeParameter) SALOMEDS_AttributeParameter::GetFather() 
00393 {
00394   SALOMEDSClient_AttributeParameter* AP = NULL;
00395   if(_isLocal) {
00396     SALOMEDS::Locker lock; 
00397     SALOMEDSImpl_AttributeParameter* AP_impl = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->GetFather();
00398     if(!AP_impl) return _PTR(AttributeParameter)(AP);
00399     AP = new SALOMEDS_AttributeParameter(AP_impl);
00400   }
00401   else {
00402     SALOMEDS::AttributeParameter_var AP_impl = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetFather();
00403     if(CORBA::is_nil(AP_impl)) return _PTR(AttributeParameter)(AP);
00404     AP = new SALOMEDS_AttributeParameter(AP_impl);
00405   }
00406   
00407   return _PTR(AttributeParameter)(AP);
00408 }
00409 
00410 //=======================================================================
00415 //======================================================================= 
00416 bool SALOMEDS_AttributeParameter::HasFather() 
00417 {
00418   if(_isLocal) {
00419     SALOMEDS::Locker lock; 
00420     return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->HasFather();
00421   }
00422   else 
00423     return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->HasFather();
00424 }
00425 
00426 //=======================================================================
00431 //=======================================================================
00432 bool SALOMEDS_AttributeParameter::IsRoot()
00433 {
00434   if(_isLocal) {
00435     SALOMEDS::Locker lock; 
00436     return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->IsRoot();
00437   }
00438   else 
00439     return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->IsRoot();
00440 }
00441 
00442 //=======================================================================
00447 //======================================================================= 
00448 void SALOMEDS_AttributeParameter::Clear() 
00449 {
00450   if(_isLocal) {
00451     SALOMEDS::Locker lock; 
00452     dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl)->Clear();
00453   }
00454   else 
00455     SALOMEDS::AttributeParameter::_narrow(_corba_impl)->Clear();
00456 }
00457 
00458 //=======================================================================
00463 //=======================================================================
00464 std::vector<std::string> SALOMEDS_AttributeParameter::GetIDs(const int theType)
00465 {
00466   std::vector<std::string> v;
00467   if(_isLocal) {
00468     SALOMEDS::Locker lock; 
00469     SALOMEDSImpl_AttributeParameter* AP_impl = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_local_impl);
00470     return AP_impl->GetIDs((Parameter_Types)theType);
00471   }
00472   else {
00473     SALOMEDS::AttributeParameter_var AP_impl = SALOMEDS::AttributeParameter::_narrow(_corba_impl);
00474     SALOMEDS::StringSeq_var CorbaSeq = AP_impl->GetIDs(theType);
00475     int length = CorbaSeq->length();
00476     if(length) {
00477       v.resize(length);
00478       for(int i = 0; i <length; i++) v[i] = std::string(CorbaSeq[i].in());
00479     }
00480   }
00481 
00482   return v;
00483 }