2 # -*- coding: iso-8859-1 -*-
3 # Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
5 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
6 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
8 # This library is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU Lesser General Public
10 # License as published by the Free Software Foundation; either
11 # version 2.1 of the License, or (at your option) any later version.
13 # This library is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # Lesser General Public License for more details.
18 # You should have received a copy of the GNU Lesser General Public
19 # License along with this library; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
25 # SALOME DataContainer : implementation of data container
26 # File : SALOME_DataContainerPy.py
27 # Author : Mikhail PONIKARIOV
35 from omniORB import CORBA, PortableServer
36 import Engines, Engines__POA
37 from SALOME_ComponentPy import *
39 #=============================================================================
41 #define an implementation of the data container interface for the data transfer implemented in Python
43 class SALOME_DataContainerPy_i (Engines__POA.DataContainer):
48 _removeAfterGet = True;
50 #-------------------------------------------------------------------------
52 def __init__(self, urlorstream, name, identifier, removeAfterGet, isStream = False):
53 self._urlorstream = urlorstream
55 self._identifier = identifier
56 self._removeAfterGet = removeAfterGet
57 self._isStream = isStream
61 self._ext = urlorstream[urlorstream.rfind(".") + 1 : ]
63 #-------------------------------------------------------------------------
67 return self._urlorstream
69 f = open(self._urlorstream, 'r')
72 if self._removeAfterGet:
73 os.remove(self._urlorstream)
74 try: # try to remove directory if it is empty
75 index = max(self._urlorstream.rfind("\\"), self._url.rfind("/"))
77 os.rmdir(self._urlorstream[:index])
82 #-------------------------------------------------------------------------
87 #-------------------------------------------------------------------------
90 return self._identifier
95 def setExtension(self, ext):