From 940b4d1848e8c70ab7642901a68594e8016caffc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 18:51:28 +0200 Subject: Adding upstream version 1:7.0.4. Signed-off-by: Daniel Baumann --- offapi/com/sun/star/util/XAtomServer.idl | 130 +++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 offapi/com/sun/star/util/XAtomServer.idl (limited to 'offapi/com/sun/star/util/XAtomServer.idl') diff --git a/offapi/com/sun/star/util/XAtomServer.idl b/offapi/com/sun/star/util/XAtomServer.idl new file mode 100644 index 000000000..6682dffb3 --- /dev/null +++ b/offapi/com/sun/star/util/XAtomServer.idl @@ -0,0 +1,130 @@ +/* -*- 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_util_XAtomServer_idl__ +#define __com_sun_star_util_XAtomServer_idl__ + +#include +#include +#include + + +module com +{ +module sun +{ +module star +{ +module util +{ + +/** an interface to map between strings and ids + +

a note on atoms:
+ Atoms are abbreviations for strings. + When a string gets registered, it is assigned a numeric id + so that said string can always be referred to by this id. + This way strings have to be transported only once over remote connections. + Valid ids are (in this implementation) non zero, signed 32 bit values. + An atom of 0 means that the string in question is not registered

+ +

Additionally there is the abstraction of atom class:
+ Atoms are grouped into classes, so that an id can be assigned + to multiple strings, depending on the class context. The main + advantage of this is that atoms in one class may be kept + to small numbers, so that bandwidth can be reduced by sending + the atoms only as 16 bit values. Note that it is up to the user in this + case to handle overflows.

+*/ + +published interface XAtomServer : com::sun::star::uno::XInterface +{ + /** returns a whole atom class + + @param atomClass + which class to return + + @returns + the descriptions for all atoms of class atomClass + */ + sequence< AtomDescription > getClass( [in] long atomClass ); + /** returns multiple atom classes + + @param atomClasses + which classes to return + + @returns + the descriptions for all atoms of the requested classes + */ + sequence< sequence< AtomDescription > > getClasses( [in] sequence< long > atomClasses ); + /** returns the strings for an arbitrary amount of atoms of multiple classes + + @param atoms + describes which strings to return + + @returns + the strings for the requested atoms + */ + sequence< string > getAtomDescriptions( [in] sequence< AtomClassRequest > atoms ); + + /** returns the atoms that have been registered to a class after an + already known atom + +

Hint to implementor: using ascending atoms is the easiest way + to decide, which atoms are recent.

+ + @param atomClass + the class in question + + @param atom + the last known atom + + @returns + all atom description that have been added to class + atomClass after atom + */ + sequence< AtomDescription > getRecentAtoms( [in] long atomClass, [in] long atom ); + + /** registers or searches for a string + + @param atomClass + the class of atoms in question + + @param description + the string in question + + @param create + if true a new atom will be created for an unknown string + else the invalid atom (0) will be returned for an unknown string + + @returns + the atom for the string description + */ + long getAtom( [in] long atomClass, [in] string description, [in] boolean create ); +}; + + +}; // module util +}; // module star +}; // module sun +}; // module com + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3