| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef __com_sun_star_ucb_ContentResultSet_idl__ |
| #define __com_sun_star_ucb_ContentResultSet_idl__ |
| |
| #ifndef __com_sun_star_lang_XComponent_idl__ |
| #include <com/sun/star/lang/XComponent.idl> |
| #endif |
| |
| #ifndef __com_sun_star_beans_XPropertySet_idl__ |
| #include <com/sun/star/beans/XPropertySet.idl> |
| #endif |
| |
| #ifndef __com_sun_star_sdbc_XResultSet_idl__ |
| #include <com/sun/star/sdbc/XResultSet.idl> |
| #endif |
| |
| #ifndef __com_sun_star_sdbc_XResultSetMetaDataSupplier_idl__ |
| #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.idl> |
| #endif |
| |
| #ifndef __com_sun_star_sdbc_XRow_idl__ |
| #include <com/sun/star/sdbc/XRow.idl> |
| #endif |
| |
| #ifndef __com_sun_star_sdbc_XCloseable_idl__ |
| #include <com/sun/star/sdbc/XCloseable.idl> |
| #endif |
| |
| #ifndef __com_sun_star_ucb_XContentAccess_idl__ |
| #include <com/sun/star/ucb/XContentAccess.idl> |
| #endif |
| |
| #ifndef __com_sun_star_sdbc_ResultSet_idl__ |
| #include <com/sun/star/sdbc/ResultSet.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module ucb { |
| |
| //============================================================================= |
| /** provides access to the children of a folder content. |
| |
| <p>It can be understand as a table containing a row for each child. The |
| table columns may contain values of properties of the children. |
| */ |
| published service ContentResultSet |
| { |
| //------------------------------------------------------------------------- |
| /** must be implemented to make it possible to resolve cyclic object |
| references ( i.e. between an implementation of |
| <type scope="com::sun::star::beans">XPropertySet</type> |
| - which may hold property change listeners - and |
| <type scope="com::sun::star::beans">XPropertyChangeListener</type> |
| - which may hold the property set ). |
| |
| <p>This interface is required. |
| */ |
| interface com::sun::star::lang::XComponent; |
| |
| /** provides access to the result set meta data. Meta data are for |
| example the number of columns of the result set, information |
| on the data types of columns, column names, and more. |
| |
| <p>This interface is required. |
| */ |
| interface com::sun::star::sdbc::XResultSetMetaDataSupplier; |
| |
| //------------------------------------------------------------------------- |
| /** enables travelling through the result set members ( the contents ). |
| This interface mainly provides a cursor for the result set. |
| |
| <p>Note that every method of this interface implementation additionally |
| may throw a <type>ResultSetException</type> ( which is derived from |
| <type scope="com::sun::star::sdbc">SQLException</type> to be compatible |
| to that interface ). The new exception transports another exception, |
| which indicates the reason for the failure of the method call. |
| |
| <p>This interface is required. |
| */ |
| interface com::sun::star::sdbc::XResultSet; |
| |
| //------------------------------------------------------------------------- |
| /** provides access to data of the content the cursor is pointing to. |
| |
| <p>Note that every method of this interface implementation additionally |
| may throw a <type>ResultSetException</type> ( which is derived from |
| <type scope="com::sun::star::sdbc">SQLException</type> to be compatible |
| to that interface ). The new exception transports another exception, |
| which indicates the reason for the failure of the method call. |
| |
| <p>This interface is required. |
| */ |
| interface com::sun::star::sdbc::XRow; |
| |
| //------------------------------------------------------------------------- |
| /** makes it possible to abort running activities ( i.e. to cancel |
| retrieving data from a server ). |
| |
| <p>Note that every method of this interface implementation additionally |
| may throw a <type>ResultSetException</type> ( which is derived from |
| <type scope="com::sun::star::sdbc">SQLException</type> to be compatible |
| to that interface ). The new exception transports another exception, |
| which indicates the reason for the failure of the method call. |
| |
| <p>This interface is required. |
| */ |
| interface com::sun::star::sdbc::XCloseable; |
| |
| //------------------------------------------------------------------------- |
| /** holds properties of the resultset. |
| |
| <p>This interface is required. |
| */ |
| interface com::sun::star::beans::XPropertySet; |
| |
| //------------------------------------------------------------------------- |
| /** controls the travel mode of the resultset cursor. |
| |
| <p>There are two possible travel modes: |
| |
| <p><table border=1> |
| <tr><td><member>CursorTravelMode::BLOCKING</member></td> |
| <td>Each travel method of the resultset will not return until the |
| data for the new position were retrieved.</td></tr> |
| <tr><td><member>CursorTravelMode::NONBLOCKING</member></td> |
| <td>The implementation will throw a |
| <code>CursorWouldBlockException</code>, if the data for the new |
| position are not retrieved yet.</td></tr> |
| </table> |
| |
| <p>The following pseudo-code illustrates the usage of a non-blocking |
| cursor: |
| |
| <p><pre> |
| bProcessedAllRows = false |
| while ( !bProcessedAllRows ) |
| { |
| cursor.setPropertyValue( "CursorTravelMode", BLOCKING ) |
| |
| cursor.travelSomeWhere() |
| collectRowData() |
| |
| cursor.setPropertyValue( "CursorTravelMode", NONBLOCKING ) |
| |
| bGoOn = true; |
| while ( bGoOn ) |
| { |
| try |
| { |
| cursor.travelSomeWhere() |
| collectRowData() |
| } |
| catch ( CursorWouldBlockException ) |
| { |
| // No more data at the moment. |
| bGoOn = false |
| } |
| } |
| |
| doSomethingWithCollectedRowData() |
| |
| bProcessedAllRows = ... |
| } |
| </pre> |
| |
| <p> |
| If this property is not supported, the implementation needs to provide |
| a blocking cursor. |
| </p> |
| |
| <p> |
| The implementation initially needs to set the value of this property |
| to <member>CursorTravelMode::BLOCKING</member>. |
| </p> |
| |
| @see CursorTravelMode |
| */ |
| [optional, property] long CursorTravelMode; |
| |
| /** contains the number of rows obtained (so far) from the data source. */ |
| [readonly, property] long RowCount; |
| |
| /** indicates that all rows of te resultset have been obtained. */ |
| [readonly, property] boolean IsRowCountFinal; |
| |
| //------------------------------------------------------------------------- |
| /** provides access to the content identifier and the content object |
| itself. |
| |
| <p>This interface is required. |
| */ |
| interface XContentAccess; |
| |
| //------------------------------------------------------------------------- |
| /** can be implemented to provide a complete JDBC conform result set |
| interface for the implementation of this service. |
| |
| <p>The implememtation of this service is optional. |
| */ |
| service com::sun::star::sdbc::ResultSet; |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |