diff options
Diffstat (limited to 'udkapi/com/sun/star/io')
57 files changed, 2920 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/io/AlreadyConnectedException.idl b/udkapi/com/sun/star/io/AlreadyConnectedException.idl new file mode 100644 index 0000000000..104a616854 --- /dev/null +++ b/udkapi/com/sun/star/io/AlreadyConnectedException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when a client tries to connect to a resource to which he is + already connected. + */ +exception AlreadyConnectedException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/BufferSizeExceededException.idl b/udkapi/com/sun/star/io/BufferSizeExceededException.idl new file mode 100644 index 0000000000..2b6ff58e89 --- /dev/null +++ b/udkapi/com/sun/star/io/BufferSizeExceededException.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown by instances which need to buffer data. + <p>It indicates that not enough system resources are available for + extending the buffer. (May also indicate that the internal buffer + has grown to a larger size than 2G. Some current implementations do + not support larger buffers.) + </p> + */ +published exception BufferSizeExceededException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/ConnectException.idl b/udkapi/com/sun/star/io/ConnectException.idl new file mode 100644 index 0000000000..8360e9524e --- /dev/null +++ b/udkapi/com/sun/star/io/ConnectException.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** Signals that an error occurred while attempting to connect a + socket to a remote address and port. Typically, the connection + was refused remotely (e.g., no process is listening on the remote + address/port). + */ +exception ConnectException: com::sun::star::io::SocketException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/DataInputStream.idl b/udkapi/com/sun/star/io/DataInputStream.idl new file mode 100644 index 0000000000..ac67e2820f --- /dev/null +++ b/udkapi/com/sun/star/io/DataInputStream.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** reads structured data from a chained XInputStream. + <p> + An implementation of this service in general does not need + to buffer data itself. + + @see com::sun::star::io::ObjectInputStream + */ +published service DataInputStream +{ + /** allows to read structured data. + */ + interface com::sun::star::io::XDataInputStream; + + /** used to plug the inputstream-data-source. + A plain input stream is sufficient. + */ + interface com::sun::star::io::XActiveDataSink; + + /** Allows to chain the DataInputStream. + */ + interface com::sun::star::io::XConnectable; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/DataOutputStream.idl b/udkapi/com/sun/star/io/DataOutputStream.idl new file mode 100644 index 0000000000..5debd8fa42 --- /dev/null +++ b/udkapi/com/sun/star/io/DataOutputStream.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** writes structured data to a chained XOutputStream. + + <p> + An implementation of this service in general does not need + to buffer data itself. + */ +published service DataOutputStream +{ + /** allows to write structured data. + */ + interface com::sun::star::io::XDataOutputStream; + + /** used to plug the outputstream-data-sink. + <p>A plain output stream is sufficient. + */ + interface com::sun::star::io::XActiveDataSource; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/DataTransferEvent.idl b/udkapi/com/sun/star/io/DataTransferEvent.idl new file mode 100644 index 0000000000..84eeba08d0 --- /dev/null +++ b/udkapi/com/sun/star/io/DataTransferEvent.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is broadcast by a filter. + @see XDataTransferEventListener + */ +published struct DataTransferEvent: com::sun::star::lang::EventObject +{ + /** specifies an occurred exception. + */ + any aException; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/FilePermission.idl b/udkapi/com/sun/star/io/FilePermission.idl new file mode 100644 index 0000000000..65a3f08be6 --- /dev/null +++ b/udkapi/com/sun/star/io/FilePermission.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module io { + + +/// This permission represents access to a file or directory. +/// A FilePermission consists of a file url and a set of actions valid for that url. +/// <p> +/// The path of the file url that ends in <code>"/*"</code> indicates all the files and +/// directories contained in that directory. A path that ends with <code>"/-"</code> +/// indicates (recursively) all files and subdirectories contained in that +/// directory. A file url string consisting of the special token +/// <code>"<<ALL FILES>>"</code> matches any file. +/// <br> +/// Note: A file url string consisting of a single <code>"*"</code> indicates all the files +/// in the current directory, while a string consisting of a single <code>"-"</code> indicates +/// all the files in the current directory and (recursively) all files and +/// subdirectories contained in the current directory. +/// <br> +/// The actions to be granted is a list of one or more comma-separated keywords. +/// The possible keywords are <code>"read"</code>, <code>"write"</code>, +/// <code>"execute"</code>, and <code>"delete"</code>. +/// Their meaning is defined as follows: +/// <ul> +/// <li><code>read</code> -- read permission</li> +/// <li><code>write</code> -- write permission</li> +/// <li><code>execute</code> -- execute permission</li> +/// <li><code>delete</code> -- delete permission</li> +/// </ul><br> +/// The actions string is processed case-insensitive. +/// </p> +/// +/// @attention +/// Be careful when granting FilePermissions. Think about the implications of +/// granting read and especially write access to various files and directories. +/// The <code>"<<ALL FILES>>"</code> permission with write action is +/// especially dangerous. This grants permission to write to the entire file system. +/// +/// @since OOo 1.1.2 +published struct FilePermission +{ + /** target file url + */ + string URL; + /** comma separated actions list + */ + string Actions; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/IOException.idl b/udkapi/com/sun/star/io/IOException.idl new file mode 100644 index 0000000000..eafbd56ef6 --- /dev/null +++ b/udkapi/com/sun/star/io/IOException.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when an input or output error has occurred. + */ +published exception IOException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/MarkableInputStream.idl b/udkapi/com/sun/star/io/MarkableInputStream.idl new file mode 100644 index 0000000000..97daedd5f8 --- /dev/null +++ b/udkapi/com/sun/star/io/MarkableInputStream.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** allows to set marks in an inputstream and to later jump back to these + marks. + <p>The implementation reads the original data from the input stream, + that has been set previously at the XActiveDataSink + interface. In general the implementation must buffer the data. </p> + */ +published service MarkableInputStream +{ + /** allows to access the data of this stream + */ + interface com::sun::star::io::XInputStream; + + /** allows to create marks at the current position + and to set the current position. + */ + interface com::sun::star::io::XMarkableStream; + + /** allows to access to the underlying source + of this stream. + */ + interface com::sun::star::io::XActiveDataSink; + + /** allows to navigate via a chain of streams */ + interface com::sun::star::io::XConnectable; + +}; + + +}; }; }; }; + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/MarkableOutputStream.idl b/udkapi/com/sun/star/io/MarkableOutputStream.idl new file mode 100644 index 0000000000..161d34d309 --- /dev/null +++ b/udkapi/com/sun/star/io/MarkableOutputStream.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** allows to set marks in an outputstream and to later jump back to these + marks. + <p>The implementation stores the data as long as marks exists + and later writes these data into the output stream, + that has been set previously at the XActiveDataSource + interface. </p> + */ +published service MarkableOutputStream +{ + /** allows to write data at the current position. + <p> Flushing the outputstream will only flush data, + which was written before the first non-deleted mark, + because data after the first non-deleted mark + may be modified by later jumpToMark()/writeBytes() calls. + */ + interface com::sun::star::io::XOutputStream; + + /** allows to create marks at the current position + and to set the current position. + */ + interface com::sun::star::io::XMarkableStream; + + /** allows to access to the underlying sink + of this stream. + */ + interface com::sun::star::io::XActiveDataSource; + + /** allows to navigate via a chain of streams */ + interface com::sun::star::io::XConnectable; + +}; + + +}; }; }; }; + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/NoRouteToHostException.idl b/udkapi/com/sun/star/io/NoRouteToHostException.idl new file mode 100644 index 0000000000..14ad88b7cf --- /dev/null +++ b/udkapi/com/sun/star/io/NoRouteToHostException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** Signals that an error occurred while attempting to connect a socket to + a remote address and port. Typically, the remote host cannot be reached + because of an intervening firewall, or if an intermediate router is down. + */ +exception NoRouteToHostException: com::sun::star::io::SocketException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/NotConnectedException.idl b/udkapi/com/sun/star/io/NotConnectedException.idl new file mode 100644 index 0000000000..fca04ad67a --- /dev/null +++ b/udkapi/com/sun/star/io/NotConnectedException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when a read/write operation is tried on an instance that has + not been chained properly. + */ +published exception NotConnectedException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/ObjectInputStream.idl b/udkapi/com/sun/star/io/ObjectInputStream.idl new file mode 100644 index 0000000000..fcb2b25b1c --- /dev/null +++ b/udkapi/com/sun/star/io/ObjectInputStream.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module io { + +/** is a stream which allows reading the data of persistent objects. + + <p>Implementations of this service must fulfill the specifications of the + DataInputStream service. It must be chained to an + XMarkableStream. Therefore, it provides the + XMarkableStream interface, and delegates the calls to the + chained object. </p> + <p>The written objects are held until this instance is destroyed. + The references to the objects are read as four-byte integers. + Data format reads:</p> + + <pre> + short InfoLength + long ObjectReference // 0 indicates no object + UTF ServiceName // length of 0 indicates this is only a reference + long ObjectLength // 0 if it is a reference or no object, otherwise the len of the object data + Object ObjectData // the data of the object + ... // skipping additional data + </pre> + + @note + <ul> + <li>-thread safe</li> + <li>-allow buffer size is 2 ^ 31 -1</li> + <li>-maximum object reference identifier must be the number of objects. </li> + <li>-object reference identifier 0 indicates no object</li> + <li>-skip addition data</li> + <li>-set the stream position behind the object data</li> + </ul> + */ +published service ObjectInputStream +{ + /** allows to read the data from the stream. + */ + interface com::sun::star::io::XObjectInputStream; + + /** allows to set the underlying inputstream */ + interface com::sun::star::io::XActiveDataSink; + + /** allows to navigate via a chain of streams */ + interface com::sun::star::io::XConnectable; + + /** allows to set marks within the stream. The implementation + may forward calls to this interface to a chained markablestream. */ + interface com::sun::star::io::XMarkableStream; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/ObjectOutputStream.idl b/udkapi/com/sun/star/io/ObjectOutputStream.idl new file mode 100644 index 0000000000..a6479aebda --- /dev/null +++ b/udkapi/com/sun/star/io/ObjectOutputStream.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is a stream which allows writing the data of persistent objects. + + <p>Implementations of this service must fulfill the specifications of the + DataOutputStream service; furthermore, the stream needs to be chained to a + XMarkableStream. Therefore, it also provides the XMarkableStream + interface, but it delegates the calls to the chained object. + The written objects are held until this instance is destroyed. + The references to the objects are written as four-byte integers + and begin at 1. Data format is written: </p> + <pre> + short InfoLength + long ObjectReference // 0 indicates no object + UTF ServiceName // length of 0 indicates this is only a reference + long ObjectLength // 0 if it is a reference or no object, otherwise the len of the object data + Object ObjectData // the data of the object + </pre> + + @note + <ul> + <li>-thread safe </li> + <li>-allow buffer size is 2 ^ 31 -1 </li> + <li>-maximum object reference identifier is the number of objects. </li> + <li>-object reference identifier 0 indicates no object </li> + </ul> + */ +published service ObjectOutputStream +{ + /** allows to write the data to the stream. + */ + interface com::sun::star::io::XObjectOutputStream; + + /** allows to set the underlying outputstream */ + interface com::sun::star::io::XActiveDataSource; + + /** allows to navigate via a chain of streams */ + interface com::sun::star::io::XConnectable; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/Pipe.idl b/udkapi/com/sun/star/io/Pipe.idl new file mode 100644 index 0000000000..80ff1ee77d --- /dev/null +++ b/udkapi/com/sun/star/io/Pipe.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module io { + +/** the implementation of an output stream and an input stream. + <p> + All data written through the outputstream is buffered until it is + read again from the input stream. Often two different threads access + input and outputstream. + + <p> With the pipe-service, an outputstream can be converted into an + input stream at the cost of an additional buffer. + */ +published service Pipe : XPipe; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/Pump.idl b/udkapi/com/sun/star/io/Pump.idl new file mode 100644 index 0000000000..6fa696fd13 --- /dev/null +++ b/udkapi/com/sun/star/io/Pump.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module io { + +/** the implementation of a data source and a data sink. + <p>A thread will be created that reads from the input stream and writes + the data to the connected output stream. Data will not be buffered by + this service. </p> + + */ +published service Pump +{ + /** allows to set the outputstream + */ + interface com::sun::star::io::XActiveDataSource; + + /** allows to set the inputstream + */ + interface com::sun::star::io::XActiveDataSink; + + /** allows listener administration and starting/stopping the pump */ + interface com::sun::star::io::XActiveDataControl; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/SequenceInputStream.idl b/udkapi/com/sun/star/io/SequenceInputStream.idl new file mode 100644 index 0000000000..784e74376f --- /dev/null +++ b/udkapi/com/sun/star/io/SequenceInputStream.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module io { + +/** This service allows to wrap a sequence of bytes with a stream object. + */ +published service SequenceInputStream : XSeekableInputStream +{ + /** allows to create a stream based on the sequence. + */ + createStreamFromSequence( [in] sequence<byte> aData ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/SequenceOutputStream.idl b/udkapi/com/sun/star/io/SequenceOutputStream.idl new file mode 100644 index 0000000000..1aa9ef6c98 --- /dev/null +++ b/udkapi/com/sun/star/io/SequenceOutputStream.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** This service allows to wrap a sequence of bytes with an output stream object. + */ +service SequenceOutputStream : XSequenceOutputStream; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/SocketException.idl b/udkapi/com/sun/star/io/SocketException.idl new file mode 100644 index 0000000000..7e10df8077 --- /dev/null +++ b/udkapi/com/sun/star/io/SocketException.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** Thrown to indicate that there is an error in the underlying + protocol, such as a TCP error. + */ +exception SocketException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/TempFile.idl b/udkapi/com/sun/star/io/TempFile.idl new file mode 100644 index 0000000000..b1ca7a4a51 --- /dev/null +++ b/udkapi/com/sun/star/io/TempFile.idl @@ -0,0 +1,30 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** This service allows to get access to temp files. + */ +service TempFile : XTempFile; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/TextInputStream.idl b/udkapi/com/sun/star/io/TextInputStream.idl new file mode 100644 index 0000000000..4d667e9e55 --- /dev/null +++ b/udkapi/com/sun/star/io/TextInputStream.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** provides functionality to read text data from a + com::sun::star::io::XInputStream + that initially has to be passed to the method + XActiveDataSink::setInputStream(). + + <p>For details about the text functionality see + com::sun::star::io::XTextInputStream. + */ +published service TextInputStream : XTextInputStream2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/TextOutputStream.idl b/udkapi/com/sun/star/io/TextOutputStream.idl new file mode 100644 index 0000000000..f103885a1e --- /dev/null +++ b/udkapi/com/sun/star/io/TextOutputStream.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** provides functionality to write text data to a + com::sun::star::io::XOutputStream + that initially has to be passed to the method + XActiveDataSource::setOutputStream(). + + <p>For details about the text functionality see + com::sun::star::io::XTextOutputStream. + */ +published service TextOutputStream : XTextOutputStream2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/UnexpectedEOFException.idl b/udkapi/com/sun/star/io/UnexpectedEOFException.idl new file mode 100644 index 0000000000..87333c5221 --- /dev/null +++ b/udkapi/com/sun/star/io/UnexpectedEOFException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when the <code>EOF</code> is reached during reading a datatype + (<code>long</code>, <code>string</code>, etc.). + */ +published exception UnexpectedEOFException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/UnknownHostException.idl b/udkapi/com/sun/star/io/UnknownHostException.idl new file mode 100644 index 0000000000..324724af7c --- /dev/null +++ b/udkapi/com/sun/star/io/UnknownHostException.idl @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** is thrown when the IP address of a host could not be determined. + */ +exception UnknownHostException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/WrongFormatException.idl b/udkapi/com/sun/star/io/WrongFormatException.idl new file mode 100644 index 0000000000..25c73bf1f2 --- /dev/null +++ b/udkapi/com/sun/star/io/WrongFormatException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when inconsistent data comes up while reading a complex + data type (<code>string</code> or object). + */ +published exception WrongFormatException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XActiveDataControl.idl b/udkapi/com/sun/star/io/XActiveDataControl.idl new file mode 100644 index 0000000000..bad0c32c9a --- /dev/null +++ b/udkapi/com/sun/star/io/XActiveDataControl.idl @@ -0,0 +1,69 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to control an active data source. + + <p>This interface should be supported by objects which implement + XActiveDataSource or XActiveDataSink.</p> + */ +published interface XActiveDataControl: com::sun::star::uno::XInterface +{ + /** registers an object to receive events from this data source. + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void addListener( [in] com::sun::star::io::XStreamListener aListener ); + + /** unregisters an object to receive events from this data source. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void removeListener( [in] com::sun::star::io::XStreamListener aListener ); + + /** starts I/O. + + <p>Either XActiveDataControl::setInputStream() or + XActiveDataControl::setOutputStream() must be called beforehand. + </p> + + <p>This method does not block the thread, so reading is + generally not finished when the method returns. </p> + */ + void start(); + + /** does a weak abort. + + <p>It closes all connected resources and calls + XInputStream::close() or + XOutputStream::close() and fires the + XStreamListener::terminated()-event.</p> + */ + void terminate(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XActiveDataSink.idl b/udkapi/com/sun/star/io/XActiveDataSink.idl new file mode 100644 index 0000000000..7577fd670b --- /dev/null +++ b/udkapi/com/sun/star/io/XActiveDataSink.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to read the corresponding object from an input stream. + + <p>If you want to allow control from outside, also implement the + XActiveDataControl interface. </p> + */ +published interface XActiveDataSink: com::sun::star::uno::XInterface +{ + /** plugs the input stream. + + <p>If XConnectable is also implemented, this + method should query <var>aStream</var> for an + XConnectable and connect both.</p> + */ + void setInputStream( [in] com::sun::star::io::XInputStream aStream ); + + /** @returns + the plugged stream. + */ + com::sun::star::io::XInputStream getInputStream(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XActiveDataSource.idl b/udkapi/com/sun/star/io/XActiveDataSource.idl new file mode 100644 index 0000000000..e398d70c71 --- /dev/null +++ b/udkapi/com/sun/star/io/XActiveDataSource.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** has to be implemented if the class should be able to write into an output + stream. + @see XActiveDataControl. + */ +published interface XActiveDataSource: com::sun::star::uno::XInterface +{ + /** plugs the output stream. + + <p>If XConnectable is also implemented, this + method should query <var>aStream</var> for a + XConnectable and connect both. + </p> + */ + void setOutputStream( [in] com::sun::star::io::XOutputStream aStream ); + + /** @returns + the plugged stream. + */ + com::sun::star::io::XOutputStream getOutputStream(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XActiveDataStreamer.idl b/udkapi/com/sun/star/io/XActiveDataStreamer.idl new file mode 100644 index 0000000000..0b0dbc2621 --- /dev/null +++ b/udkapi/com/sun/star/io/XActiveDataStreamer.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to read and write the corresponding stream. + + + <p>If you want to allow control from outside, also implement the + XActiveDataControl interface. </p> + */ +published interface XActiveDataStreamer: com::sun::star::uno::XInterface +{ + /** plugs the input/output stream. + + <p>If XConnectable is also implemented, this + method should query <var>aStream</var> for a + XConnectable and connect both.</p> + */ + void setStream( [in] com::sun::star::io::XStream aStream ); + + /** @returns + the plugged stream. + */ + com::sun::star::io::XStream getStream(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl b/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl new file mode 100644 index 0000000000..6b5e3ca0c3 --- /dev/null +++ b/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl @@ -0,0 +1,76 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module io { + +/** + An optional companion interface to + com::sun::star::io::XOutputStream that supports scenarios + where com::sun::star::io::XOutputStream::writeBytes() + operates asynchronously and does not necessarily report any errors. + + <p>A typical scenario where this interface is useful is when an + com::sun::star::io::XOutputStream is used to write to a + file via NFS. Normally, any calls to + com::sun::star::io::XOutputStream::writeBytes() will + execute asynchronously then, in that any potential errors might only be + reported by later calls to + com::sun::star::io::XOutputStream::writeBytes() or + com::sun::star::io::XOutputStream::closeOutput(). If + such an output stream shall not be closed immediately after one or more calls + to com::sun::star::io::XOutputStream::writeBytes(), but + the client wants to know as soon as possible whether writing was successful, + then + com::sun::star::io::XAsyncOutputMonitor::waitForCompletion() + should be called after the series of calls to + com::sun::star::io::XOutputStream::writeBytes().</p> + + @since OOo 2.0 +*/ +interface XAsyncOutputMonitor { + /** + waits for the completion of any previous calls to + com::sun::star::io::XOutputStream::writeBytes(), + and reports potentially pending errors. + + <p>Calling this method is potentially expensive (even if the associated + com::sun::star::io::XOutputStream represents a local + file not accessed via NFS, for example). This method has a similar + description to + com::sun::star::io::XOutputStream::flush(). + However, where the semantics of <code>flush</code> are rather vague, + <code>waitForCompletion</code> has very specific semantics—it just + blocks long enough so that any errors encountered during previous calls + to com::sun::star::io::XOutputStream::writeBytes() + can reliably be reported. It specifically does not guarantee that any + data have safely been stored on a stable physical medium, like a hard + disk (and it is completely unspecified whether <code>flush</code> should + give this guarantee).</p> + + @throws com::sun::star::io::IOException + if any previous call to com::sun::star::io::XOutputStream::writeBytes() + encountered such an error, but has not yet reported it (in cases where + <code>writeBytes</code> operates asynchronously). + */ + void waitForCompletion() raises (IOException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XConnectable.idl b/udkapi/com/sun/star/io/XConnectable.idl new file mode 100644 index 0000000000..0f0e0de7a8 --- /dev/null +++ b/udkapi/com/sun/star/io/XConnectable.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module io { + +/** makes it possible to connect data sinks and sources. + + <p>The predecessor-member is the element in the connection that is + nearer to the source of the data. The successor-member is the element + that is further away from the source of the data. (Note that this + classification does not depend on whether the class implements + XInputStream or XOutputStream; it only + depends on the direction of data flow.) </p> + <p>This interface allows generic services to navigate between + arbitrary elements of a connection.</p> + */ +published interface XConnectable: com::sun::star::uno::XInterface +{ + /** sets the source of the data flow for this object. + */ + void setPredecessor( [in] com::sun::star::io::XConnectable aPredecessor ); + + /** @returns + the predecessor of this object. + */ + com::sun::star::io::XConnectable getPredecessor(); + + /** sets the sink of the data flow for this object. + */ + void setSuccessor( [in] com::sun::star::io::XConnectable aSuccessor ); + + /** @returns + the successor of this object. + */ + com::sun::star::io::XConnectable getSuccessor(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataExporter.idl b/udkapi/com/sun/star/io/XDataExporter.idl new file mode 100644 index 0000000000..cacb6949c5 --- /dev/null +++ b/udkapi/com/sun/star/io/XDataExporter.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to export data from a component into a data sink. + + <p>Exporter objects are registered for specific components and data types. + </p> + */ +published interface XDataExporter: com::sun::star::uno::XInterface +{ + /** exports data for a component into an output stream. + */ + void exportData( [in] com::sun::star::io::XOutputStream aOutputStream, + [in] com::sun::star::lang::XComponent Component, + [in] com::sun::star::io::XDataTransferEventListener aListener ); + + /** cancels the export process. + */ + void cancel(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataImporter.idl b/udkapi/com/sun/star/io/XDataImporter.idl new file mode 100644 index 0000000000..bb483fbb7f --- /dev/null +++ b/udkapi/com/sun/star/io/XDataImporter.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to import data from a data source into a component. + + <p>Importer objects are registered for specific components and data types.</p> + */ +published interface XDataImporter: com::sun::star::uno::XInterface +{ + /** imports data for a component from an active data source. + */ + void importData( [in] com::sun::star::io::XActiveDataSource aActiveSource, + [in] com::sun::star::lang::XComponent Component, + [in] com::sun::star::io::XDataTransferEventListener aListener ); + + /** cancels the import process. + */ + void cancel(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataInputStream.idl b/udkapi/com/sun/star/io/XDataInputStream.idl new file mode 100644 index 0000000000..26710fb108 --- /dev/null +++ b/udkapi/com/sun/star/io/XDataInputStream.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to read machine-independent simple data types from a + stream. + @see com::sun::star::io::XDataOutputStream + */ +published interface XDataInputStream: com::sun::star::io::XInputStream +{ + /** reads in a boolean. It is an 8-bit value. 0 means FALSE; all + other values mean TRUE. + */ + byte readBoolean() + raises( com::sun::star::io::IOException ); + + /** reads an 8-bit byte. + */ + byte readByte() + raises( com::sun::star::io::IOException ); + + /** reads a 16-bit unicode character. + */ + char readChar() + raises( com::sun::star::io::IOException ); + + /** reads a 16-bit big endian integer. + */ + short readShort() + raises( com::sun::star::io::IOException ); + + /** reads a 32-bit big endian integer. + */ + long readLong() + raises( com::sun::star::io::IOException ); + + /** reads a 64-bit big endian integer. + */ + hyper readHyper() + raises( com::sun::star::io::IOException ); + + /** reads a 32-bit IEEE float. + */ + float readFloat() + raises( com::sun::star::io::IOException ); + + /** reads a 64-bit IEEE double. + */ + double readDouble() + raises( com::sun::star::io::IOException ); + + /** reads a string of UTF encoded characters. + */ + string readUTF() + raises( com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataOutputStream.idl b/udkapi/com/sun/star/io/XDataOutputStream.idl new file mode 100644 index 0000000000..0c5df021fc --- /dev/null +++ b/udkapi/com/sun/star/io/XDataOutputStream.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to write machine-independent simple data types to a + stream. + @see com::sun::star::io::XDataInputStream + */ +published interface XDataOutputStream: com::sun::star::io::XOutputStream +{ + /** writes a boolean. It is an 8-bit value. 0 means FALSE; all other + values mean TRUE. + */ + void writeBoolean( [in] boolean Value ) + raises( com::sun::star::io::IOException ); + + /** writes an 8-bit byte. + */ + void writeByte( [in] byte Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 16-bit character. + */ + void writeChar( [in] char Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 16-bit big endian integer. + */ + void writeShort( [in] short Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 32-bit big endian integer. + */ + void writeLong( [in] long Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 64-bit big endian integer. + */ + void writeHyper( [in] hyper Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 32-bit IEEE float. + */ + void writeFloat( [in] float Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 64-bit IEEE double. + */ + void writeDouble( [in] double Value ) + raises( com::sun::star::io::IOException ); + + /** writes a string in UTF format. + */ + void writeUTF( [in] string Value ) + raises( com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataTransferEventListener.idl b/udkapi/com/sun/star/io/XDataTransferEventListener.idl new file mode 100644 index 0000000000..c407c24aa0 --- /dev/null +++ b/udkapi/com/sun/star/io/XDataTransferEventListener.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is used to receive callbacks from an importer or exporter. + */ +published interface XDataTransferEventListener: com::sun::star::lang::XEventListener +{ + /** is called when an import or export process has finished. + */ + void finished( [in] com::sun::star::io::DataTransferEvent aEvent ); + + /** is called when an import or export process has been cancelled. + */ + void cancelled( [in] com::sun::star::io::DataTransferEvent aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XInputStream.idl b/udkapi/com/sun/star/io/XInputStream.idl new file mode 100644 index 0000000000..39810e78bb --- /dev/null +++ b/udkapi/com/sun/star/io/XInputStream.idl @@ -0,0 +1,135 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** This is the basic interface to read data from a stream. + <p> + See the <a href="http://udk.openoffice.org/common/man/concept/streams.html"> + streaming document</a> for further information on chaining and piping streams. + */ +published interface XInputStream: com::sun::star::uno::XInterface +{ + /** reads the specified number of bytes in the given sequence. + + <p>The return value specifies the number of bytes which have been + put into the sequence. A difference between <var>nBytesToRead</var> + and the return value indicates that EOF has been reached. This means + that the method blocks until the specified number of bytes are + available or the EOF is reached. </p> + + @param aData + after the call, the byte sequence contains the requested number + of bytes (or less as a sign of EOF). + <br> + C++ only : Note that for unbridged (e.g., in-process) + calls, using the same sequence for repetitive readBytes()-calls + can bear a performance advantage. The callee can put the data + directly into the sequence so that no buffer reallocation is + necessary. + But this holds only when + <ol> + <li> neither caller nor callee keep a second reference to the same + sequence. + <li> the sequence is pre-allocated with the requested number of bytes. + <li> the same sequence is reused (simply preallocating a new + sequence for every call bears no advantage). + <li> the call is not bridged (e.g., between different compilers + or different processes). + </ol> + <br> + If the same 'optimized' code runs against an interface in a different process, + there is an unnecessary memory allocation/deallocation (the out parameter + is of course NOT transported over the connection), but this should + be negligible compared to a synchron call. + + @param nBytesToRead + the total number of bytes to read + */ + long readBytes( [out] sequence<byte> aData, + [in] long nBytesToRead ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException); + + /** reads the available number of bytes, at maximum + <var>nMaxBytesToRead</var>. + + <p>This method is very similar to the readBytes method, except that + it has different blocking behaviour. + The method blocks as long as at least 1 byte is available or + EOF has been reached. EOF has only been reached, when the method + returns 0 and the corresponding byte sequence is empty. + Otherwise, after the call, aData contains the available, + but no more than nMaxBytesToRead, bytes. + + @param aData contains the data read from the stream. + @param nMaxBytesToRead The maximum number of bytes to be read from this + stream during the call. + @see com::sun::star::io::XInputStream::readBytes + */ + long readSomeBytes( [out] sequence<byte> aData, + [in] long nMaxBytesToRead ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException ); + + /** skips the next <var>nBytesToSkip</var> bytes (must be positive). + + <p>It is up to the implementation whether this method is + blocking the thread or not. </p> + + @param nBytesToSkip + number of bytes to skip + */ + void skipBytes( [in] long nBytesToSkip ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException ); + + /** states how many bytes can be read or skipped without blocking. + + <p>Note: This method offers no information on whether the EOF + has been reached. </p> + */ + long available() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::IOException + ); + + /** closes the stream. + + <p>Users must close the stream explicitly when no further + reading should be done. (There may exist ring references to + chained objects that can only be released during this call. + Thus not calling this method would result in a leak of memory or + external resources.) </p> + */ + void closeInput() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::IOException); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XInputStreamProvider.idl b/udkapi/com/sun/star/io/XInputStreamProvider.idl new file mode 100644 index 0000000000..43e380ce74 --- /dev/null +++ b/udkapi/com/sun/star/io/XInputStreamProvider.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + + +/** Interface for providing an input stream. + + <p>Every time createInputStream() is called a new input stream + is returned, always pointing to the begin of the same data. All + input streams returned by createInputStream() + are completely independent from each other.</p> +*/ +published interface XInputStreamProvider : com::sun::star::uno::XInterface +{ + /** Creates a new input stream, every time providing + the same data. + + @return + a new input stream + */ + com::sun::star::io::XInputStream createInputStream(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XMarkableStream.idl b/udkapi/com/sun/star/io/XMarkableStream.idl new file mode 100644 index 0000000000..15eeb98926 --- /dev/null +++ b/udkapi/com/sun/star/io/XMarkableStream.idl @@ -0,0 +1,84 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to set and remove seekable marks to a stream. + */ +published interface XMarkableStream: com::sun::star::uno::XInterface +{ + /** creates a mark of the current position and returns an identifier to it. + */ + long createMark() + raises( com::sun::star::io::IOException ); + + /** deletes the mark that you previously created with + XMarkableStream::createMark(). + + <p>It is an error to delete a mark if other marks after this + exist. In this case, for reasons of robustness, the + implementation must delete this mark and all others after + this mark. </p> + */ + void deleteMark( [in] long Mark ) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException ); + + /** jumps to a previously created mark. + */ + void jumpToMark( [in] long nMark ) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException ); + + + /** jumps to the furthest position of the stream. + <p> In the inputstream case, a subsequent read call returns + data, that was never read or skipped over before. In the + outputstream case, a subsequent write call will add + new data at the end of the stream without overwriting existing data. + */ + void jumpToFurthest() + raises( com::sun::star::io::IOException ); + + /** @returns + the offset from the current stream position to the + mark ("current position" - "mark position"). + + @param nMark + identifies the mark which is used as a base + to calculate the offset of the current position. + + @throws IllegalArgumentException + if the mark does not exist or is deleted. + + @throws IOException + if an I/O error has occurred. + */ + long offsetToMark( [in] long nMark ) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XObjectInputStream.idl b/udkapi/com/sun/star/io/XObjectInputStream.idl new file mode 100644 index 0000000000..c2e8490761 --- /dev/null +++ b/udkapi/com/sun/star/io/XObjectInputStream.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + + +/** reads XPersistObject implementations from a stream + */ +published interface XObjectInputStream: com::sun::star::io::XDataInputStream +{ + + /** reads an object from the stream. In general, it + reads the service name, instantiates the object and + calls read on the XPersistObject interface with itself + as argument. + */ + com::sun::star::io::XPersistObject readObject() + raises( com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XObjectOutputStream.idl b/udkapi/com/sun/star/io/XObjectOutputStream.idl new file mode 100644 index 0000000000..caa2c0c776 --- /dev/null +++ b/udkapi/com/sun/star/io/XObjectOutputStream.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + + published interface XPersistObject; + + +/** stores XPersistObject implementations into the stream + + <p>An implementation of the type XPersistObject + uses this interface to write its internal state into a stream. + Have a look there for the explanation of the concept. + + @see com::sun::star::io::XPersistObject + */ +published interface XObjectOutputStream: XDataOutputStream +{ + /** writes an object to the stream. + @param Object the object, which shall serialize itself into the stream. + */ + void writeObject( [in] XPersistObject Object ) + raises( IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XOutputStream.idl b/udkapi/com/sun/star/io/XOutputStream.idl new file mode 100644 index 0000000000..78eeedeaa8 --- /dev/null +++ b/udkapi/com/sun/star/io/XOutputStream.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** This is the basic interface to write data to a stream. + <p> + See the <a href="http://udk.openoffice.org/common/man/concept/streams.html"> + streaming document</a> for further information on chaining and piping streams. + */ +published interface XOutputStream: com::sun::star::uno::XInterface +{ + /** writes the whole sequence to the stream. (blocking call) + */ + void writeBytes( [in] sequence<byte> aData ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException); + + /** flushes out of the stream any data that may exist in buffers. + + <p>The semantics of this method are rather vague. See + com::sun::star::io::XAsyncOutputMonitor::waitForCompletion() + for a similar method + with very specific semantics, that is useful in certain scenarios.</p> + */ + void flush() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException); + + /** gets called to indicate that all data has been written. + + <p>If this method has not yet been called, no attached + XInputStream receives an EOF signal. No further + bytes may be written after this method has been called.</p> + */ + void closeOutput() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XPersist.idl b/udkapi/com/sun/star/io/XPersist.idl new file mode 100644 index 0000000000..8b5bfe2bad --- /dev/null +++ b/udkapi/com/sun/star/io/XPersist.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to write this object to a URL or read it from a URL. + */ +published interface XPersist: com::sun::star::uno::XInterface +{ + /** writes all the persistent data of the object to the URL. + */ + void write ( [in] string URL ) raises ( com::sun::star::io::IOException ) ; + + /** reads all the persistent data of the object from the URL. + */ + void read ( [in] string URL ) raises ( com::sun::star::io::IOException ) ; + +}; + + +}; }; }; }; + +/*============================================================================= +=============================================================================*/ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XPersistObject.idl b/udkapi/com/sun/star/io/XPersistObject.idl new file mode 100644 index 0000000000..38a3707c2e --- /dev/null +++ b/udkapi/com/sun/star/io/XPersistObject.idl @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + + published interface XObjectInputStream; + published interface XObjectOutputStream; + + +/** allows to make UNO objects persistent + + <p>Every UNO object, that wants to be serializable, should implement + this interface. The object stores stores itself, when the + write method is called. + <p> + The object needs to be created before it deserializes + itself again (by using the read method). Therefore it must be + creatable by name via a factory, which is in general + the global service manager. The create and read mechanism + is implemented by the com::sun::star::io::ObjectInputStream. + + <p>The serialization format (the series of strings, integers, objects) must + be specified at the specification of the concrete service. + + <p>The interface does not support any special versioning mechanism. + + @see com::sun::star::io::XObjectOutputStream + @see com::sun::star::io::XObjectInputStream + */ +published interface XPersistObject: com::sun::star::uno::XInterface +{ + + /** gives the service name of the object + + <p>This name is used to create such an object by a factory + during deserialization. </p> + + @returns + the service name that specifies the behavior and the + persistent data format of this implementation. + + @see com::sun::star::lang::XMultiComponentFactory::getAvailableServiceNames() + */ + string getServiceName(); + + /** writes all the persistent data of the object to the stream. + <p>The implementation + must write the data in the order documented in the service specification. + @param OutStream the stream, the data shall be written to. The stream + supports simple types and other XPersistObject implementations. + */ + void write( [in] com::sun::star::io::XObjectOutputStream OutStream ) + raises( com::sun::star::io::IOException ); + + /** reads all the persistent data of the object from the stream. + <p>In case + other XPersistObjects are read from the stream, the implementation uses a factory + to create these objects (in general the global service manager). + <p> The implementation must read the data in the order documented at + the service specification. + @param InStream the stream, the data shall be read from. + */ + void read( [in] com::sun::star::io::XObjectInputStream InStream ) + raises( com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XPipe.idl b/udkapi/com/sun/star/io/XPipe.idl new file mode 100644 index 0000000000..8002c425c3 --- /dev/null +++ b/udkapi/com/sun/star/io/XPipe.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + + +/** The implementation of an output stream and an input stream. + <p> + All data written through the outputstream is buffered until it is + read again from the input stream. Often two different threads access + input and outputstream. + + <p> With the pipe-service, an outputstream can be converted into an + input stream at the cost of an additional buffer. + + @since LibreOffice 4.0 + */ +published interface XPipe +{ + interface com::sun::star::io::XOutputStream; + + interface com::sun::star::io::XInputStream; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XSeekable.idl b/udkapi/com/sun/star/io/XSeekable.idl new file mode 100644 index 0000000000..4297bbf552 --- /dev/null +++ b/udkapi/com/sun/star/io/XSeekable.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** makes it possible to seek to a certain position within a stream. + + <p>This interface should be supported, if it is possible to access the + data at the new position quickly. + You should not support this interface, if you have a continuous + stream, for example, a video stream. + */ +published interface XSeekable: com::sun::star::uno::XInterface +{ + /** changes the seek pointer to a new location relative to the beginning of the stream. + + + <p> This method changes the seek pointer so subsequent reads and writes can take place at a different + location in the stream object. It is an error to seek before the beginning of the stream or after the + end of the stream. </p> + + @throws com::sun::star::lang::IllegalArgumentException in case location is negative or greater than XSeekable::getLength(). + */ + void seek( [in] hyper location ) + raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::io::IOException ); + + /** returns the current offset of the stream. + @returns + the current offset in this stream. + */ + hyper getPosition() + raises( com::sun::star::io::IOException ); + + /** returns the length of the stream. + @returns + the length of the storage medium on which the stream works. + */ + hyper getLength() + raises( com::sun::star::io::IOException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XSeekableInputStream.idl b/udkapi/com/sun/star/io/XSeekableInputStream.idl new file mode 100644 index 0000000000..a689f1db10 --- /dev/null +++ b/udkapi/com/sun/star/io/XSeekableInputStream.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** This interface can be used to represent a seekable input stream. + */ +published interface XSeekableInputStream +{ + interface XInputStream; + interface XSeekable; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XSequenceOutputStream.idl b/udkapi/com/sun/star/io/XSequenceOutputStream.idl new file mode 100644 index 0000000000..64537d812c --- /dev/null +++ b/udkapi/com/sun/star/io/XSequenceOutputStream.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** This interface offers access to the written bytes +*/ +interface XSequenceOutputStream +{ + interface XOutputStream; + + /** allows to get access to the written data + */ + sequence< byte > getWrittenBytes() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::IOException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XStream.idl b/udkapi/com/sun/star/io/XStream.idl new file mode 100644 index 0000000000..29b4eda85e --- /dev/null +++ b/udkapi/com/sun/star/io/XStream.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + + +/** offers read and write access to the same stream. + */ +published interface XStream: com::sun::star::uno::XInterface +{ + /** @returns + the XInputStream part of the stream. Closing the returned + XInputStream also closes any XOutputStream part. + */ + XInputStream getInputStream(); + + + /** @returns + the XInputStream part of the stream. Closing the returned + XOutputStream also closes the XInputStream part. + */ + XOutputStream getOutputStream(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XStreamListener.idl b/udkapi/com/sun/star/io/XStreamListener.idl new file mode 100644 index 0000000000..f213abcfb5 --- /dev/null +++ b/udkapi/com/sun/star/io/XStreamListener.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to receive events from an active data control. + */ +published interface XStreamListener: com::sun::star::lang::XEventListener +{ + /** gets called as soon as data transfer has started. + */ + void started(); + + /** gets called when data transfer terminates normally or when data + transfer is terminated from outside. + + <p>The termination could be done using the method + XActiveDataControl::terminate().</p> + */ + void closed(); + + /** gets called when XActiveDataControl::terminate() is called. + */ + void terminated(); + + /** gets called when an internal error in source or sink has occurred. + + <p>After the method is called, the close is called on the + connected streams.</p> + */ + void error( [in] any aException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTempFile.idl b/udkapi/com/sun/star/io/XTempFile.idl new file mode 100644 index 0000000000..65a43f991b --- /dev/null +++ b/udkapi/com/sun/star/io/XTempFile.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** This interface offers access to temp files. + */ +interface XTempFile +{ + // INTERFACES + /** interface XStream offers read and write access to + the same stream. + */ + interface XStream; + + /** interface XSeekable makes it possible to seek to a + certain position within a stream. + */ + interface XSeekable; + + // ATTRIBUTES + /** This attribute controls whether the file will be automatically + removed on object destruction. + */ + [attribute] boolean RemoveFile; + + /** This attribute specifies the URL of the temp file. + */ + [readonly,attribute] string Uri; + + /** This attribute specifies the temp file name. + */ + [readonly,attribute] string ResourceName; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTextInputStream.idl b/udkapi/com/sun/star/io/XTextInputStream.idl new file mode 100644 index 0000000000..9e9ab1a627 --- /dev/null +++ b/udkapi/com/sun/star/io/XTextInputStream.idl @@ -0,0 +1,96 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** Interface to read strings from a stream. + + <p>This interfaces allows to read strings separated by + delimiters and to read lines. The character encoding + to be used can be set by setEncoding(). + Default encoding is "utf8".</p> + */ +published interface XTextInputStream: com::sun::star::io::XInputStream +{ + /** reads text until a line break (CR, LF, or CR/LF) or + EOF is found and returns it as string (without CR, LF). + + <p>The read characters are converted according to the + encoding defined by setEncoding(). If + EOF is already reached before calling this method + an empty string is returned.<p> + + @see setEncoding + @see isEOF + */ + string readLine() + raises( com::sun::star::io::IOException ); + + /** reads text until one of the given delimiter characters + or EOF is found and returns it as string (without delimiter). + + <p><strong>Important:</strong> CR/LF is not used as default + delimiter! So if no delimiter is defined or none of the + delimiters is found, the stream will be read to EOF. The + read characters are converted according to the encoding + defined by setEncoding(). If EOF is already + reached before calling this method an empty string is returned.</p> + + @see setEncoding + @see isEOF + */ + string readString( [in] sequence<char> Delimiters, [in] boolean bRemoveDelimiter ) + raises( com::sun::star::io::IOException ); + + /** Returns the EOF status. + + <p>This method has to be used to detect if the end + of the stream is reached.</p> + <p><strong>Important:</strong> + This cannot be detected by asking for an empty string + because that can be a valid return value of readLine() + (if the line is empty) and + readString() (if a delimiter is directly followed + by the next one).</p> + + @returns + `TRUE`, if the end of file is reached, so that + no next string can be read. `FALSE` otherwise + */ + boolean isEOF() + raises( com::sun::star::io::IOException ); + + /** sets character encoding. + + @param Encoding + sets the character encoding that should be used. + The character encoding names refer to the document + http://www.iana.org/assignments/character-sets. + Which character sets are supported depends on + the implementation. + */ + void setEncoding( [in] string Encoding ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTextInputStream2.idl b/udkapi/com/sun/star/io/XTextInputStream2.idl new file mode 100644 index 0000000000..f64bde5df1 --- /dev/null +++ b/udkapi/com/sun/star/io/XTextInputStream2.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** Provides a unified interface for the new-style service TextInputStream. + + @since LibreOffice 4.1 + */ +published interface XTextInputStream2 +{ + /// Interface to read text data + interface com::sun::star::io::XTextInputStream; + + /// Interface to specify the used com::sun::star::io::XInputStream + interface com::sun::star::io::XActiveDataSink; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTextOutputStream.idl b/udkapi/com/sun/star/io/XTextOutputStream.idl new file mode 100644 index 0000000000..fda0a695af --- /dev/null +++ b/udkapi/com/sun/star/io/XTextOutputStream.idl @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** Interface to write strings to a stream using a special + character encoding. + + <p>This interfaces allows to write strings to a stream. + The character encoding to be used can be set by + setEncoding(). Default encoding is "utf8".</p> + */ +published interface XTextOutputStream: com::sun::star::io::XOutputStream +{ + /** writes a string to the stream using the encoding + defined by setEncoding(). + + <p>Line breaks or delimiters that may be necessary + to support XTextInputStream::readLine() + and XTextInputStream::readString() + have to be added manually to the parameter string.</p> + + @see setEncoding + @see XTextInputStream::readLine + @see XTextInputStream::readString + */ + void writeString( [in] string aString ) + raises( com::sun::star::io::IOException ); + + /** sets character encoding. + + @param Encoding + sets the character encoding that should be used. + The character encoding names refer to the document + http://www.iana.org/assignments/character-sets. + Which character sets are supported depends on + the implementation. + */ + void setEncoding( [in] string Encoding ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTextOutputStream2.idl b/udkapi/com/sun/star/io/XTextOutputStream2.idl new file mode 100644 index 0000000000..f3f2a1f3e5 --- /dev/null +++ b/udkapi/com/sun/star/io/XTextOutputStream2.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** Provides a unified interface for the new-style service TextOutputStream. + + @since LibreOffice 4.1 + */ +published interface XTextOutputStream2 +{ + /// Interface to write text data + interface com::sun::star::io::XTextOutputStream; + + /// Interface to specify the used com::sun::star::io::XOutputStream + interface com::sun::star::io::XActiveDataSource; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTruncate.idl b/udkapi/com/sun/star/io/XTruncate.idl new file mode 100644 index 0000000000..2034122620 --- /dev/null +++ b/udkapi/com/sun/star/io/XTruncate.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + + + +/** makes it possible to set the size of the underlying data of a stream + to zero. + */ +published interface XTruncate: com::sun::star::uno::XInterface +{ + + /** sets the size of the underlying data of the stream to zero. + */ + void truncate() + raises( IOException ); + + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XXMLExtractor.idl b/udkapi/com/sun/star/io/XXMLExtractor.idl new file mode 100644 index 0000000000..032c76a0bd --- /dev/null +++ b/udkapi/com/sun/star/io/XXMLExtractor.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** offers the capability to extract the XML document stream from a document + storage. +*/ + +published interface XXMLExtractor : com::sun::star::uno::XInterface +{ + /** extracts the XML stream from the document storage. + + @returns + the extracted XML stream. + */ + com::sun::star::io::XInputStream extract( [in] com::sun::star::io::XInputStream aStream ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |