'************************************************************************* '* '* $RCSfile: stm_MarkableOutputStream.xba,v $ '* '* $Revision: 1.1 $ '* '* last change:$Date: 2003-01-27 18:02:14 $ '* '* The Contents of this file are made available subject to the terms of '* either of the following licenses '* '* - GNU Lesser General Public License Version 2.1 '* - Sun Industry Standards Source License Version 1.1 '* '* Sun Microsystems Inc., October, 2000 '* '* GNU Lesser General Public License Version 2.1 '* ============================================= '* Copyright 2000 by Sun Microsystems, Inc. '* 901 San Antonio Road, Palo Alto, CA 94303, USA '* '* This library is free software; you can redistribute it and/or '* modify it under the terms of the GNU Lesser General Public '* License version 2.1, as published by the Free Software Foundation. '* '* 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 '* '* '* Sun Industry Standards Source License Version 1.1 '* ================================================= '* The contents of this file are subject to the Sun Industry Standards '* Source License Version 1.1 (the "License"); You may not use this file '* except in compliance with the License. You may obtain a copy of the '* License at http://www.openoffice.org/license.html. '* '* Software provided under this License is provided on an "AS IS" basis, '* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, '* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, '* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. '* See the License for the specific provisions governing your rights and '* obligations concerning the Software. '* '* The Initial Developer of the Original Code is: Sun Microsystems, Inc. '* '* Copyright: 2000 by Sun Microsystems, Inc. '* '* All Rights Reserved. '* '* Contributor(s): _______________________________________ '* '* '************************************************************************* '************************************************************************* ' Be sure that all variables are dimensioned: option explicit ' REQUIRED VARIABLES for interface/service tests: Global cFileName As String Global oFileAcc As Object Global oInputStream As Object Global oOutputStream As Object Global bInputStream As Boolean Global bOutputStream As Boolean Sub CreateObj() '************************************************************************* ' COMPONENT: ' stm.MarkableOutputStream '************************************************************************* On Error Goto ErrHndl bInputStream = false bOutputStream = false cFileName = utils.getTempFileURL("BasicMarkableIOStream.dat") oFileAcc = createUnoService("com.sun.star.ucb.SimpleFileAccess") oObj = createUnoService("com.sun.star.io.MarkableOutputStream") ResetStreams() Exit Sub ErrHndl: Test.Exception() End Sub Function getOutStream() As Object On Error Goto ErrHndl CloseStreams() oOutputStream = oFileAcc.openFileWrite(cFileName) bOutputStream = true oObj.setOutputStream(oOutputStream) getOutStream() = oOutputStream Exit Function ErrHndl: Test.Exception() getOutStream() = NULL_OBJECT End Function Function getInStream() As Object On Error Goto ErrHndl Dim oFI As Object CloseStreams() oInputStream = createUnoService("com.sun.star.io.MarkableInputStream") oFI = oFileAcc.openFileRead(cFileName) oInputStream.setInputStream(oFI) bInputStream = true getInStream() = oInputStream Exit Function ErrHndl: Test.Exception() getInStream() = NULL_OBJECT End Function Sub ResetStreams() On Error goto ErrHndl CloseStreams() oFileAcc.Kill(cFileName) oOutputStream = oFileAcc.openFileWrite(cFileName) bOutputStream = true oObj.setOutputStream(oOutputStream) Exit Sub ErrHndl: Test.Exception() resume next End Sub Sub CloseStreams() if bOutputStream then oObj.closeOutput() bOutputStream = false end if if bInputStream then oInputStream.closeInput() bInputStream = false end if End Sub Sub DisposeObj() if NOT isNULL(oObj) then oObj.closeOutput() End Sub