1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27#ifndef __com_sun_star_io_ObjectOutputStream_idl__ 28#define __com_sun_star_io_ObjectOutputStream_idl__ 29 30#ifndef __com_sun_star_io_XObjectOutputStream_idl__ 31#include <com/sun/star/io/XObjectOutputStream.idl> 32#endif 33 34#ifndef __com_sun_star_io_XActiveDataSource_idl__ 35#include <com/sun/star/io/XActiveDataSource.idl> 36#endif 37 38#ifndef __com_sun_star_io_XConnectable_idl__ 39#include <com/sun/star/io/XConnectable.idl> 40#endif 41 42 43//============================================================================= 44 45module com { module sun { module star { module io { 46 47//============================================================================= 48 49// DocMerge from xml: service com::sun::star::io::ObjectOutputStream 50/** is a stream which allows writing the data of persistent objects. 51 52 <p>Implementations of this service must fulfill the specifications of the 53 <type>DataOutputStream</type> service; futhermore, the stream needs to be chained to a 54 <type>XMarkableStream</type>. Therefore, it also provides the <type>XMarkableStream</type> 55 interface, but it delegates the calls to the chained object. 56 The written objects are held until this instance is destroyed. 57 The references to the objects are written as four-byte integers 58 and begin at 1. Data format is written: </p> 59 <pre> 60 short InfoLength 61 long ObjectReference // 0 indicates no object 62 UTF ServiceName // length of 0 indicates this is only a reference 63 long ObjectLength // 0 if it is a reference or no object, otherwise the len of the object data 64 Object ObjectData // the data of the object 65 </pre> 66 67 @garantees 68 <ul> 69 <li>-thread safe </li> 70 <li>-allow buffer size is 2 ^ 31 -1 </li> 71 <li>-maximum object reference identifier is the number of objects. </li> 72 <li>-object reference identifier 0 indicates no object </li> 73 </ul> 74 */ 75published service ObjectOutputStream 76{ 77 /** allows to write the data to the stream. 78 */ 79 interface com::sun::star::io::XObjectOutputStream; 80 81 /** allows to set the underlying outputstream */ 82 interface com::sun::star::io::XActiveDataSource; 83 84 /** allows to navigate via a chain of streams */ 85 interface com::sun::star::io::XConnectable; 86 87}; 88 89//============================================================================= 90 91}; }; }; }; 92 93/*============================================================================= 94 95=============================================================================*/ 96#endif 97