X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOMEDS%2FSALOMEDS_AttributeTarget_i.cxx;h=5dcf5e5416d23ee95c23dd7ae1f800c13635d6e0;hb=842cabed138075a05c8f69aa46b653b08efa2c61;hp=f5f35cc7ba1bc9da8f08015e65503781370ba99b;hpb=611c96f1b845f602ce9dbdc154c6fe4425937b9b;p=modules%2Fkernel.git diff --git a/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx b/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx index f5f35cc7b..5dcf5e541 100644 --- a/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx +++ b/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx @@ -1,61 +1,64 @@ -// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// This library is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // +// See http://www.salome-platform.org/ // // File : SALOMEDS_AttributeTarget_i.cxx -// Author : Yves FRICAUD +// Author : Sergey RUIN // Module : SALOME -// $Header: -using namespace std; + + #include "SALOMEDS_AttributeTarget_i.hxx" -#include "SALOMEDS_SObject_i.hxx" -#include -#include +#include "SALOMEDSImpl_SObject.hxx" +#include "SALOMEDSImpl_Study.hxx" +#include "SALOMEDS.hxx" + +#include + +using namespace std; -void SALOMEDS_AttributeTarget_i::Add(SALOMEDS::SObject_ptr anObject) { +void SALOMEDS_AttributeTarget_i::Add(SALOMEDS::SObject_ptr anObject) +{ + SALOMEDS::Locker lock; TDF_Label aLabel; - TDF_Tool::Label(_myAttr->Label().Data(),anObject->GetID(),aLabel,1); - (Handle(SALOMEDS_TargetAttribute)::DownCast(_myAttr))->Append(aLabel); + TDF_Tool::Label(_impl->Label().Data(),anObject->GetID(),aLabel,1); + (Handle(SALOMEDSImpl_AttributeTarget)::DownCast(_impl))->Add(SALOMEDSImpl_Study::SObject(aLabel)); } -SALOMEDS::Study::ListOfSObject* SALOMEDS_AttributeTarget_i::Get() { - TDF_LabelList aLList; +SALOMEDS::Study::ListOfSObject* SALOMEDS_AttributeTarget_i::Get() +{ + SALOMEDS::Locker lock; + Handle(TColStd_HSequenceOfTransient) aSeq = (Handle(SALOMEDSImpl_AttributeTarget)::DownCast(_impl))->Get(); SALOMEDS::Study::ListOfSObject_var aSList = new SALOMEDS::Study::ListOfSObject; - (Handle(SALOMEDS_TargetAttribute)::DownCast(_myAttr))->Get(aLList); - if (aLList.Extent() == 0) - return aSList._retn(); - aSList->length(aLList.Extent()); - TDF_ListIteratorOfLabelList anIter(aLList); - int index; - for(index=0;anIter.More();anIter.Next(),index++) { - SALOMEDS_SObject_i* anSO = new SALOMEDS_SObject_i(anIter.Value(),_myOrb); - aSList[index] = anSO->_this(); + int aLength = aSeq->Length(), i; + if (aLength == 0) return aSList._retn(); + aSList->length(aLength); + for(i=1; i <=aLength; i++) { + SALOMEDS::SObject_var anSO = SALOMEDS_SObject_i::New(Handle(SALOMEDSImpl_SObject)::DownCast(aSeq->Value(i)), _orb); + aSList[i-1] = anSO; } return aSList._retn(); } -void SALOMEDS_AttributeTarget_i::Remove(SALOMEDS::SObject_ptr anObject) { +void SALOMEDS_AttributeTarget_i::Remove(SALOMEDS::SObject_ptr anObject) +{ + SALOMEDS::Locker lock; TDF_Label aLabel; - TDF_Tool::Label(_myAttr->Label().Data(),anObject->GetID(),aLabel,1); - (Handle(SALOMEDS_TargetAttribute)::DownCast(_myAttr))->Remove(aLabel); + TDF_Tool::Label(_impl->Label().Data(),anObject->GetID(),aLabel,1); + (Handle(SALOMEDSImpl_AttributeTarget)::DownCast(_impl))->Remove(SALOMEDSImpl_Study::SObject(aLabel)); }