-using namespace std;
-// File: SALOMEDS_AttributePythonObject_i.cxx
-// Created: Tue Oct 8 10:13:30 2002
-// Author: Michael Ponikarov
-// Project : SALOME
-// Module : SALOMEDS
-// Copyright : Open CASCADE
+// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : SALOMEDS_AttributePythonObject_i.cxx
+// Author : Michael Ponikarov
+// Module : SALOME
// $Header$
#include "SALOMEDS_AttributePythonObject_i.hxx"
+#include "SALOMEDS.hxx"
+
#include <TCollection_ExtendedString.hxx>
#include <TColStd_HArray1OfCharacter.hxx>
-#include "SALOMEDS_SObject_i.hxx"
+
+using namespace std;
void SALOMEDS_AttributePythonObject_i::SetObject(const char* theSequence, CORBA::Boolean IsScript) {
+ SALOMEDS::Locker lock;
+
CheckLocked();
- char *aSeq = CORBA::string_dup(theSequence);
- Handle(SALOMEDS_PythonObjectAttribute)::DownCast(_myAttr)->SetObject(aSeq, IsScript);
+ Handle(SALOMEDS_PythonObjectAttribute)::DownCast(_myAttr)->SetObject(const_cast<char*>(theSequence), IsScript);
}
char* SALOMEDS_AttributePythonObject_i::GetObject() {
+ SALOMEDS::Locker lock;
+
char* aSeq = Handle(SALOMEDS_PythonObjectAttribute)::DownCast(_myAttr)->GetObject();
CORBA::String_var aStr = CORBA::string_dup(aSeq);
return aStr._retn();
}
CORBA::Boolean SALOMEDS_AttributePythonObject_i::IsScript() {
+ SALOMEDS::Locker lock;
+
return Handle(SALOMEDS_PythonObjectAttribute)::DownCast(_myAttr)->IsScript();
}
+
+char* SALOMEDS_AttributePythonObject_i::Store() {
+ SALOMEDS::Locker lock;
+
+ CORBA::String_var aString = GetObject();
+ char* aResult = new char[strlen(aString) + 2];
+ aResult[0] = IsScript()?'s':'n';
+ strcpy(aResult+1, aString);
+ return aResult;
+}
+
+void SALOMEDS_AttributePythonObject_i::Restore(const char* theValue) {
+ SALOMEDS::Locker lock;
+
+ SetObject(&theValue[1], theValue[0]=='s');
+}