X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOMEDS%2FSALOMEDS_AttributeStudyProperties_i.cxx;h=e03bb63cef2cff9e0ef936d55113703abf2e87ae;hb=d4617a5edb41e7acd4025a2b56160ae267ede7f6;hp=dce1ad3724fc221b1d486cb09cc9f5b8ec690bf7;hpb=6dd1af68fb168b4df7558ebf8e7ffe6c4abbfc5b;p=modules%2Fkernel.git diff --git a/src/SALOMEDS/SALOMEDS_AttributeStudyProperties_i.cxx b/src/SALOMEDS/SALOMEDS_AttributeStudyProperties_i.cxx index dce1ad372..e03bb63ce 100644 --- a/src/SALOMEDS/SALOMEDS_AttributeStudyProperties_i.cxx +++ b/src/SALOMEDS/SALOMEDS_AttributeStudyProperties_i.cxx @@ -1,82 +1,104 @@ -// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA/DEN, EDF R&D +// 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_AttributeStudyProperties_i.cxx -// Author : Yves FRICAUD +// Author : Sergey RUIN // Module : SALOME -// $Header$ - +// #include "SALOMEDS_AttributeStudyProperties_i.hxx" -#include "SALOMEDS_SObject_i.hxx" -#include -#include -using namespace std; +#include "SALOMEDS.hxx" #define CREATION_MODE_NOTDEFINED 0 #define CREATION_MODE_SCRATCH 1 #define CREATION_MODE_COPY 2 -void SALOMEDS_AttributeStudyProperties_i::SetUserName(const char* theName) { +void SALOMEDS_AttributeStudyProperties_i::SetUserName(const char* theName) +{ + SALOMEDS::Locker lock; CheckLocked(); - Handle(SALOMEDS_StudyPropertiesAttribute) aProp = Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr); - CORBA::String_var Str = CORBA::string_dup(theName); - aProp->SetFirstName(TCollection_ExtendedString(Str)); + dynamic_cast(_impl)->ChangeCreatorName((char*)theName); } -char* SALOMEDS_AttributeStudyProperties_i::GetUserName() { - TCollection_ExtendedString S = Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr)->GetCreatorName(); - CORBA::String_var c_s = CORBA::string_dup(TCollection_AsciiString(S).ToCString()); +char* SALOMEDS_AttributeStudyProperties_i::GetUserName() +{ + SALOMEDS::Locker lock; + std::string S = dynamic_cast(_impl)->GetCreatorName(); + CORBA::String_var c_s = CORBA::string_dup(S.c_str()); return c_s._retn(); } void SALOMEDS_AttributeStudyProperties_i::SetCreationDate(CORBA::Long theMinute, - CORBA::Long theHour, - CORBA::Long theDay, - CORBA::Long theMonth, - CORBA::Long theYear) { + CORBA::Long theHour, + CORBA::Long theDay, + CORBA::Long theMonth, + CORBA::Long theYear) +{ + SALOMEDS::Locker lock; CheckLocked(); - Handle(SALOMEDS_StudyPropertiesAttribute) aProp = Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr); + SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(_impl); int aTmp; if (aProp->GetCreationDate(aTmp, aTmp, aTmp, aTmp, aTmp)) return; - aProp->SetModificationDate(theMinute, theHour, theDay, theMonth, theYear); + std::string S; + aProp->SetModification(S, theMinute, theHour, theDay, theMonth, theYear); } CORBA::Boolean SALOMEDS_AttributeStudyProperties_i::GetCreationDate(CORBA::Long& theMinute, - CORBA::Long& theHour, - CORBA::Long& theDay, - CORBA::Long& theMonth, - CORBA::Long& theYear) { - Standard_Integer aMinute; - Standard_Integer aHour; - Standard_Integer aDay; - Standard_Integer aMonth; - Standard_Integer aYear; - if (Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr)->GetCreationDate(aMinute, aHour, aDay, - aMonth, aYear)) { + CORBA::Long& theHour, + CORBA::Long& theDay, + CORBA::Long& theMonth, + CORBA::Long& theYear) +{ + SALOMEDS::Locker lock; + int aMinute; + int aHour; + int aDay; + int aMonth; + int aYear; + if (dynamic_cast(_impl)->GetCreationDate(aMinute, aHour, aDay, aMonth, aYear)) { theMinute = aMinute; theHour = aHour; theDay = aDay; theMonth = aMonth; theYear = aYear; - return Standard_True; + return true; } - return Standard_False; + return false; } -void SALOMEDS_AttributeStudyProperties_i::SetCreationMode(const char* theMode) { +void SALOMEDS_AttributeStudyProperties_i::SetCreationMode(const char* theMode) +{ + SALOMEDS::Locker lock; CheckLocked(); - Handle(SALOMEDS_StudyPropertiesAttribute) aProp = Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr); + SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(_impl); if (strcmp(theMode,"from scratch")==0) aProp->SetCreationMode(CREATION_MODE_SCRATCH); else if (strcmp(theMode,"copy from")==0) aProp->SetCreationMode(CREATION_MODE_COPY); else aProp->SetCreationMode(CREATION_MODE_NOTDEFINED); } -char* SALOMEDS_AttributeStudyProperties_i::GetCreationMode() { +char* SALOMEDS_AttributeStudyProperties_i::GetCreationMode() +{ + SALOMEDS::Locker lock; CORBA::String_var c_s; - switch (Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr)->GetCreationMode()) { + switch (dynamic_cast(_impl)->GetCreationMode()) { case CREATION_MODE_SCRATCH: c_s = "from scratch"; break; case CREATION_MODE_COPY: c_s = "copy from"; break; default: c_s = ""; @@ -84,72 +106,146 @@ char* SALOMEDS_AttributeStudyProperties_i::GetCreationMode() { return c_s._retn(); } -void SALOMEDS_AttributeStudyProperties_i::SetModified(CORBA::Long theModified) { - Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr)->SetModified(theModified); +void SALOMEDS_AttributeStudyProperties_i::SetModified(CORBA::Long theModified) +{ + SALOMEDS::Locker lock; + dynamic_cast(_impl)->SetModified(theModified); } -CORBA::Boolean SALOMEDS_AttributeStudyProperties_i::IsModified() { - return Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr)->IsModified(); +CORBA::Boolean SALOMEDS_AttributeStudyProperties_i::IsModified() +{ + SALOMEDS::Locker lock; + return dynamic_cast(_impl)->IsModified(); } -CORBA::Long SALOMEDS_AttributeStudyProperties_i::GetModified() { - return Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr)->GetModified(); +CORBA::Long SALOMEDS_AttributeStudyProperties_i::GetModified() +{ + SALOMEDS::Locker lock; + return dynamic_cast(_impl)->GetModified(); } -void SALOMEDS_AttributeStudyProperties_i::SetLocked(CORBA::Boolean theLocked) { - Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr)->SetLocked(theLocked); +void SALOMEDS_AttributeStudyProperties_i::SetLocked(CORBA::Boolean theLocked) +{ + SALOMEDS::Locker lock; + dynamic_cast(_impl)->SetLocked(theLocked); } -CORBA::Boolean SALOMEDS_AttributeStudyProperties_i::IsLocked() { - return Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr)->IsLocked(); +CORBA::Boolean SALOMEDS_AttributeStudyProperties_i::IsLocked() +{ + SALOMEDS::Locker lock; + return dynamic_cast(_impl)->IsLocked(); } void SALOMEDS_AttributeStudyProperties_i::SetModification(const char* theName, - CORBA::Long theMinute, - CORBA::Long theHour, - CORBA::Long theDay, - CORBA::Long theMonth, - CORBA::Long theYear) { + CORBA::Long theMinute, + CORBA::Long theHour, + CORBA::Long theDay, + CORBA::Long theMonth, + CORBA::Long theYear) +{ + SALOMEDS::Locker lock; CheckLocked(); - Handle(SALOMEDS_StudyPropertiesAttribute) aProp = Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr); - aProp->SetUserName(CORBA::string_dup(theName)); - aProp->SetModificationDate((int)theMinute, (int)theHour, (int)theDay, (int)theMonth, (int)theYear); + SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(_impl); + aProp->SetModification((char*)theName, (int)theMinute, (int)theHour, + (int)theDay, (int)theMonth, (int)theYear); } + void SALOMEDS_AttributeStudyProperties_i::GetModificationsList(SALOMEDS::StringSeq_out theNames, - SALOMEDS::LongSeq_out theMinutes, - SALOMEDS::LongSeq_out theHours, - SALOMEDS::LongSeq_out theDays, - SALOMEDS::LongSeq_out theMonths, - SALOMEDS::LongSeq_out theYears, - CORBA::Boolean theWithCreator) { - Handle(TColStd_HSequenceOfExtendedString) aNames; - Handle(TColStd_HSequenceOfInteger) aMinutes, aHours, aDays, aMonths, aYears; - Handle(SALOMEDS_StudyPropertiesAttribute) aProp = Handle(SALOMEDS_StudyPropertiesAttribute)::DownCast(_myAttr); - aNames = aProp->GetUserNames(); - aProp->GetModificationDates(aMinutes, aHours, aDays, aMonths, aYears); - int aLength = aNames->Length()-((theWithCreator)?0:1); + SALOMEDS::LongSeq_out theMinutes, + SALOMEDS::LongSeq_out theHours, + SALOMEDS::LongSeq_out theDays, + SALOMEDS::LongSeq_out theMonths, + SALOMEDS::LongSeq_out theYears, + CORBA::Boolean theWithCreator) +{ + SALOMEDS::Locker lock; + std::vector aNames; + std::vector aMinutes, aHours, aDays, aMonths, aYears; + SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(_impl); + aProp->GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears); + int aLength = aNames.size(); + int aRetLength = aLength - ((theWithCreator) ? 0 : 1); theNames = new SALOMEDS::StringSeq; -// SALOMEDS::LongSeq *maminute = new SALOMEDS::LongSeq; -// maminute->length(5); theMinutes = new SALOMEDS::LongSeq; theHours = new SALOMEDS::LongSeq; theDays = new SALOMEDS::LongSeq; theMonths = new SALOMEDS::LongSeq; theYears = new SALOMEDS::LongSeq; - theNames->length(aLength); - theMinutes->length(aLength); - theHours->length(aLength); - theDays->length(aLength); - theMonths->length(aLength); - theYears->length(aLength); - int a; - for(a = 0; a < aLength; a++) - { - (*theNames)[a] = CORBA::string_dup(TCollection_AsciiString(aNames->Value(a + 1 + ((theWithCreator)?0:1))).ToCString()); - (*theMinutes)[a] = aMinutes->Value(a + 1 + ((theWithCreator)?0:1)); - (*theHours)[a] = aHours->Value(a + 1 + ((theWithCreator)?0:1)); - (*theDays)[a] = aDays->Value(a + 1 + ((theWithCreator)?0:1)); - (*theMonths)[a] = aMonths->Value(a + 1 + ((theWithCreator)?0:1)); - (*theYears)[a] = aYears->Value(a + 1 + ((theWithCreator)?0:1)); - } + theNames->length(aRetLength); + theMinutes->length(aRetLength); + theHours->length(aRetLength); + theDays->length(aRetLength); + theMonths->length(aRetLength); + theYears->length(aRetLength); + int a = 0, ind = ((theWithCreator) ? 1 : 2); + for (; ind <= aLength; a++, ind++) { + (*theNames)[a] = CORBA::string_dup(aNames[ind-1].c_str()); + (*theMinutes)[a] = aMinutes[ind-1]; + (*theHours)[a] = aHours[ind-1]; + (*theDays)[a] = aDays[ind-1]; + (*theMonths)[a] = aMonths[ind-1]; + (*theYears)[a] = aYears[ind-1]; + } +} + +void SALOMEDS_AttributeStudyProperties_i::SetComment(const char* theComment) +{ + SALOMEDS::Locker lock; + CheckLocked(); + dynamic_cast(_impl)->SetComment(std::string(theComment)); +} + +char* SALOMEDS_AttributeStudyProperties_i::GetComment() +{ + SALOMEDS::Locker lock; + std::string C = dynamic_cast(_impl)->GetComment(); + CORBA::String_var c_s = CORBA::string_dup(C.c_str()); + return c_s._retn(); +} + +void SALOMEDS_AttributeStudyProperties_i::SetUnits(const char* theUnits) +{ + SALOMEDS::Locker lock; + CheckLocked(); + dynamic_cast(_impl)->SetUnits(std::string(theUnits)); +} + +char* SALOMEDS_AttributeStudyProperties_i::GetUnits() +{ + SALOMEDS::Locker lock; + std::string U = dynamic_cast(_impl)->GetUnits(); + CORBA::String_var c_s = CORBA::string_dup(U.c_str()); + return c_s._retn(); +} + +SALOMEDS::StringSeq* SALOMEDS_AttributeStudyProperties_i::GetStoredComponents() +{ + SALOMEDS::Locker lock; + std::vector components = dynamic_cast(_impl)->GetStoredComponents(); + SALOMEDS::StringSeq_var c_components = new SALOMEDS::StringSeq(); + c_components->length(components.size()); + for (int i = 0; i < components.size(); i++) { + c_components[i] = CORBA::string_dup(components[i].c_str()); + } + return c_components._retn(); +} + +char* SALOMEDS_AttributeStudyProperties_i::GetComponentVersion(const char* theComponent) +{ + SALOMEDS::Locker lock; + std::string version = dynamic_cast(_impl)->GetComponentVersion(theComponent); + CORBA::String_var c_version = CORBA::string_dup(version.c_str()); + return c_version._retn(); +} + +SALOMEDS::StringSeq* SALOMEDS_AttributeStudyProperties_i::GetComponentVersions(const char* theComponent) +{ + SALOMEDS::Locker lock; + std::vector versions = dynamic_cast(_impl)->GetComponentVersions(theComponent); + SALOMEDS::StringSeq_var c_versions = new SALOMEDS::StringSeq(); + c_versions->length(versions.size()); + for (int i = 0; i < versions.size(); i++) { + c_versions[i] = CORBA::string_dup(versions[i].c_str()); + } + return c_versions._retn(); }