1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24#ifndef __com_sun_star_ucb_XCommandProcessor2_idl__
25#define __com_sun_star_ucb_XCommandProcessor2_idl__
26
27#ifndef __com_sun_star_ucb_XCommandProcessor_idl__
28#include <com/sun/star/ucb/XCommandProcessor.idl>
29#endif
30
31module com { module sun { module star { module ucb {
32
33//============================================================================
34/** An improved version of a
35    <type scope="com::sun::star::ucb">XCommandProcessor</type> that helps avoid
36    ever-increasing resource consumption.
37 */
38published interface XCommandProcessor2: com::sun::star::ucb::XCommandProcessor
39{
40    //------------------------------------------------------------------------
41    /** releases a command identifier obtainded through
42        <member>XCommandProcessor::createCommandIdentifier</member> when it is
43        no longer used.
44
45        <p>After this call the command identifier cannot be used any longer in
46        calls to <member>XCommandProcessor::execute</member> and
47        <member>XCommandProcessor::abort</member>.  (But it can happen that a
48        call to <member>XCommandProcessor::createCommandIdentifier</member>
49        reuses this identifier.)</p>
50
51        @param CommandId
52        A command identifier obtained through
53        <member>XCommandProcessor::createCommandIdentifier</member>.  If the
54        identifier is zero, the request is silently ignored; but if the
55        identifier is invalid (not obtained via
56        <member>XCommandProcessor::createCommandIdentifier</member> or already
57        handed to <member>XCommandProcessor2::releaseCommandIdentifier</member>
58        before), the behaviour is undefined.
59     */
60    [oneway] void releaseCommandIdentifier([in] long CommandId);
61};
62
63}; }; }; };
64
65#endif
66