/* -*- 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 bridge {
/** Bridge internal interface, that allows to change protocol settings of the remote
counter part .
< p > In general , this interface is implemented by the bridge itself . It must not
be called from outside the bridge . < / p >
< p > INTERNAL INTERFACE , DO NOT USE IT ELSEWHERE ! < / p >
*/
published interface XProtocolProperties : com::sun::star::uno::XInterface
{
/** called to get a list of bridge internal properties. Which properties can be retrieved,
is protocol dependent .
< p > The properties MUST NOT change between a requestChange and a commit change call . < / p >
*/
sequence< ProtocolProperty > getProperties( );
/** called to initiate a protocol change.
< p > This method should always be called in the scope of the local bridge setting object ,
because the remote counter part may do such a call at the same time
( typically at startup time ) . < / p >
@ param nRandomNumber
In case both processes call requestChange at the same time ,
the caller with the higher nRandomNumber is allowed to call
commitChange .
@ returns
1 , if the caller may ( and MUST ! ! ! ) call commitChange .
0 , if the caller is not allowed to call commitChange . This can only happen ,
if the other bridge has called requestChange at the same time and
nRandomNumber is smaller than the other bridge ' s nRandomNumber .
The remote counterpart is supposed to call commitChange within a small
time span . Please call requestChange ( ) after the remote counterpart has
called commitChange ( ) .
- 1 if the nRandomNumber is of the same value as the previously
sent requestChange ( sent by the remote counterpart ) . This is a draw : o ) .
Generate a new random number and try again .
*/
long requestChange( [in] long nRandomNumber );
/** called to commit a protocol change.
< p > It is only allowed to call commitChange , if requestChange
has been called previously and the return value was true . The new properties are
valid after the reply of commitChange has been received .
Note , that this is difficult for the callee , because it must marshal the reply
with the old settings . < / p >
< p > All properties not mentioned in the list are unchanged .
Note that the bridge must be blocked for other threads ,
before commitChange is sent and unblocked
after the reply has been received . This blocks the bridge . < / p >
@ throws InvalidProtocolChangeException
when the remote counterpart could not change at least one of the properties .
No property has been changed . requestChange must be called
again to initiate a new change of the protocol .
*/
void commitChange( [in] sequence< ProtocolProperty > newValues )
raises ( com::sun::star::bridge::InvalidProtocolChangeException );
};
};};};};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Messung V0.5 in Prozent C=95 H=86 G=90
¤ Dauer der Verarbeitung: 0.5 Sekunden
¤
*© Formatika GbR, Deutschland