X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOMEDS%2FSALOMEDS_AttributeTarget_i.cxx;h=6c59d2a2c212f3d54f92d401b26ed9241468fe75;hb=40ed082c24dc424f9502c7c31051d42c03ecfc69;hp=f2a89990d9c041547b6c20f72a0d4ed49aad5ac9;hpb=4655b0b0eb5345da6a86852021014b0cbae2ad30;p=modules%2Fyacs.git diff --git a/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx b/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx index f2a89990d..6c59d2a2c 100644 --- a/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx +++ b/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx @@ -1,41 +1,62 @@ -using namespace std; -// File : SALOMEDS_AttributeTarget_i.cxx -// Created : Fri Aug 16 10:20:05 2002 -// Author : Yves FRICAUD - -// Project : SALOME -// Module : SALOMEDS -// Copyright : Open CASCADE 2002 -// $Header: - +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 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, or (at your option) any later version. +// +// 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/ or email : webmaster.salome@opencascade.com +// +// File : SALOMEDS_AttributeTarget_i.cxx +// Author : Sergey RUIN +// Module : SALOME +// #include "SALOMEDS_AttributeTarget_i.hxx" -#include "SALOMEDS_SObject_i.hxx" -#include -#include +#include "SALOMEDSImpl_SObject.hxx" +#include "SALOMEDSImpl_Study.hxx" +#include "SALOMEDS.hxx" +#include "DF_Label.hxx" + +#include -void SALOMEDS_AttributeTarget_i::Add(SALOMEDS::SObject_ptr anObject) { - TDF_Label aLabel; - TDF_Tool::Label(_myAttr->Label().Data(),anObject->GetID(),aLabel,1); - (Handle(SALOMEDS_TargetAttribute)::DownCast(_myAttr))->Append(aLabel); +void SALOMEDS_AttributeTarget_i::Add(SALOMEDS::SObject_ptr anObject) +{ + SALOMEDS::Locker lock; + DF_Label aLabel = DF_Label::Label(_impl->Label(), anObject->GetID(), 1); + dynamic_cast(_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; + std::vector aSeq = dynamic_cast(_impl)->Get(); SALOMEDS::Study::ListOfSObject_var aSList = new SALOMEDS::Study::ListOfSObject; - (Handle(SALOMEDS_TargetAttribute)::DownCast(_myAttr))->Get(aLList); - 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.size(), i; + if (aLength == 0) return aSList._retn(); + aSList->length(aLength); + for(i=0; i Label().Data(),anObject->GetID(),aLabel,1); - (Handle(SALOMEDS_TargetAttribute)::DownCast(_myAttr))->Remove(aLabel); +void SALOMEDS_AttributeTarget_i::Remove(SALOMEDS::SObject_ptr anObject) +{ + SALOMEDS::Locker lock; + DF_Label aLabel = DF_Label::Label(_impl->Label(), anObject->GetID(), 1); + dynamic_cast(_impl)->Remove(SALOMEDSImpl_Study::SObject(aLabel)); }