From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- udkapi/com/sun/star/lang/XConnectionPoint.idl | 166 ++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 udkapi/com/sun/star/lang/XConnectionPoint.idl (limited to 'udkapi/com/sun/star/lang/XConnectionPoint.idl') diff --git a/udkapi/com/sun/star/lang/XConnectionPoint.idl b/udkapi/com/sun/star/lang/XConnectionPoint.idl new file mode 100644 index 000000000..702ffae1b --- /dev/null +++ b/udkapi/com/sun/star/lang/XConnectionPoint.idl @@ -0,0 +1,166 @@ +/* -*- 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 . + */ +#ifndef __com_sun_star_lang_XConnectionPoint_idl__ +#define __com_sun_star_lang_XConnectionPoint_idl__ + +#include +#include + +#include + +#include + + + +module com { module sun { module star { module lang { + +/** supports connection points for connectable objects. + +

Connectable objects support the following features:

+ +
    +
  • outgoing interfaces, such as event sets;
  • +
  • the ability to enumerate the types of the outgoing interfaces; +
  • the ability to connect and disconnect sinks to the object + for those outgoing types;
  • +
  • the ability to enumerate the connections that exist to a + particular outgoing interface.
  • +
+ +

When to Implement?

+ +

To create a connectable object, you need to implement objects + that provide two related interfaces:

+ +
    +
  • XConnectionPointContainer
  • +
  • XConnectionPoint
  • +
+ +

The XConnectionPointContainer interface is implemented + on the connectable object to indicate the existence of the outgoing + interfaces. It provides a sequence of sub-objects. It also provides + access to all the connection point sub-objects, each of which + implements the XConnectionPoint interface. The + XConnectionPoint interface provides a sequence of + sub-objects.

+ +

Each connection point is a separate sub-object to avoid circular + reference counting problems. A connection point controls how many + connections (one or more) it will allow in its implementation of + XConnectionPoint::advise().

+ +

When to use?

+ +

A client can use the XConnectionPointContainer interface:

+ + - to get a sequence of connection points for each outgoing type. + + - to obtain access to connection point sub-objects with the + XConnectionPoint interface for each + outgoing type. Through the XConnectionPoint interface, + a client starts or terminates an advisory loop with the + connectable object and the client's own sink. The + client can also use the XConnectionPoint + interface to get a sequence of the connections that it + knows about. + + @see XConnectionPointContainer + */ +published interface XConnectionPoint: com::sun::star::uno::XInterface +{ + /** @returns + the type of the outgoing interface managed by this + connection point. + +

Using the XConnectionPointContainer::getConnectionPoints() + method, a client can obtain an XConnectionPoint + interface. Using that interface and this method, the client + can determine the type of each connection point enumerated. The + type returned from this method must enable the caller to access + this same connection point through + XConnectionPointContainer::findConnectionPoint(). + + @see XConnectionPointContainer::findConnectionPoint + */ + type getConnectionType(); + + /** @returns + the XConnectionPointContainer interface on + the parent connectable object. + + @see XConnectionPointContainer + */ + com::sun::star::lang::XConnectionPointContainer getConnectionPointContainer(); + + /** creates a connection between a connection point and a + client's sink, where the sink implements the outgoing interface + supported by this connection point. + +

A few add...Listener methods need additional parameters + to add listeners or throw exceptions. One of these methods is + com::sun::star::beans::XPropertySet::addPropertyChangeListener(). + We ignore the problem in this interface. A solution must be provided + in an additional XConnectionPoint interface.

+ + @param xListener + specifies the listener interface on the client's advise sink. + The client's sink receives outgoing calls from the + connection point container. + + @throws ListenerExistException + if it is an unicast broadcaster and a listener is already set. + + @throws InvalidListenerException + if the listener does not supply the needed interfaces. + + @see com::sun::star::beans::XPropertySet::addPropertyChangeListener + */ + void advise( [in] com::sun::star::uno::XInterface xListener ) + raises( com::sun::star::lang::ListenerExistException, + com::sun::star::lang::InvalidListenerException ); + + /** terminates a notification previously set up with advise. + +

A few remove...Listener methods need additional + parameters to add listeners or throw exceptions. One of these methods + is com::sun::star::beans::XPropertySet::removePropertyChangeListener(). + We ignore the problem in this interface. A solution must be + provided in an additional XConnectionPoint interface.

+ + @param xListener + specifies the listener interface on the client's advise sink. + + @see com::sun::star::beans::XPropertySet::removePropertyChangeListener + */ + void unadvise( [in] com::sun::star::uno::XInterface xListener ); + + /** @returns + a sequence of all currently advised connections. + */ + sequence getConnections(); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3