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 --- .../CannotRegisterImplementationException.idl | 48 +++ udkapi/com/sun/star/registry/DefaultRegistry.idl | 137 +++++++ .../star/registry/ImplementationRegistration.idl | 46 +++ .../sun/star/registry/InvalidRegistryException.idl | 40 ++ .../sun/star/registry/InvalidValueException.idl | 40 ++ .../sun/star/registry/MergeConflictException.idl | 40 ++ udkapi/com/sun/star/registry/NestedRegistry.idl | 134 +++++++ udkapi/com/sun/star/registry/RegistryKeyType.idl | 43 +++ udkapi/com/sun/star/registry/RegistryValueType.idl | 66 ++++ udkapi/com/sun/star/registry/SimpleRegistry.idl | 43 +++ .../star/registry/XImplementationRegistration.idl | 99 +++++ .../star/registry/XImplementationRegistration2.idl | 62 +++ udkapi/com/sun/star/registry/XRegistryKey.idl | 414 +++++++++++++++++++++ udkapi/com/sun/star/registry/XSimpleRegistry.idl | 131 +++++++ 14 files changed, 1343 insertions(+) create mode 100644 udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl create mode 100644 udkapi/com/sun/star/registry/DefaultRegistry.idl create mode 100644 udkapi/com/sun/star/registry/ImplementationRegistration.idl create mode 100644 udkapi/com/sun/star/registry/InvalidRegistryException.idl create mode 100644 udkapi/com/sun/star/registry/InvalidValueException.idl create mode 100644 udkapi/com/sun/star/registry/MergeConflictException.idl create mode 100644 udkapi/com/sun/star/registry/NestedRegistry.idl create mode 100644 udkapi/com/sun/star/registry/RegistryKeyType.idl create mode 100644 udkapi/com/sun/star/registry/RegistryValueType.idl create mode 100644 udkapi/com/sun/star/registry/SimpleRegistry.idl create mode 100644 udkapi/com/sun/star/registry/XImplementationRegistration.idl create mode 100644 udkapi/com/sun/star/registry/XImplementationRegistration2.idl create mode 100644 udkapi/com/sun/star/registry/XRegistryKey.idl create mode 100644 udkapi/com/sun/star/registry/XSimpleRegistry.idl (limited to 'udkapi/com/sun/star/registry') diff --git a/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl b/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl new file mode 100644 index 000000000..e1de8120f --- /dev/null +++ b/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl @@ -0,0 +1,48 @@ +/* -*- 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_registry_CannotRegisterImplementationException_idl__ +#define __com_sun_star_registry_CannotRegisterImplementationException_idl__ + +#include + + + + module com { module sun { module star { module registry { + +/** is thrown when an application tries to register a new component (implementation) using the + XImplementationRegistration::registerImplementation() + method, but the component cannot be registered. The reason for this exception could be:
+
    +
  • the component cannot be found or cannot be loaded (missing path or classpath) +
  • the component doesn't provide the necessary specifications (exported registration functions for a + C++ component (shared library) or a named registration class with the appropriate methods for + a Java component (normally a jar file)). +

+ + */ +published exception CannotRegisterImplementationException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/DefaultRegistry.idl b/udkapi/com/sun/star/registry/DefaultRegistry.idl new file mode 100644 index 000000000..2e4bbad1d --- /dev/null +++ b/udkapi/com/sun/star/registry/DefaultRegistry.idl @@ -0,0 +1,137 @@ +/* -*- 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_registry_DefaultRegistry_idl__ +#define __com_sun_star_registry_DefaultRegistry_idl__ + +#include + + + + module com { module sun { module star { module registry { + +/** implicitly supports a local registry and a read-only + system registry for global information. + In the context of this service, + the functions open, close, and destroy + from XSimpleRegistry are not supported and throw an exception + if they are used. + + Functions of XSimpleRegistry: +
+
getURL +
+
returns the name of the local registry. +
+
isValid +
+
checks if the local registry is valid. If the interface is not `NULL` + the local registry should always be valid. +
+
isReadOnly
+
checks if the local registry has write protection. +
+
mergeKey +
+
merges all information from the specified registry in the local registry. +
+
getRootKey +
+
returns a virtual rootkey of both registries. +
+
+ + Functions of XRegistryKey: +
+
openKey +
+
returns a virtual key which is specified in the local or the system + registry. +
+
deleteKey +
+
deletes the key only if it is present in the local registry. +
+
setLongValue, setAsciiValue, setStringValue, setBinaryValue +
+
sets the value at the specified key in the local registry. +
+
getLongValue, getAsciiValue, getStringValue, getBinaryValue +
+
returns the value at the specified key in the local registry, or if + the value is not present in the local registry, it will return the value of the + system registry. +
+
openKeys +
+
returns a sequence of all subkeys in both registries. +
+
getKeyNames +
+
returns a sequence with the names of all subkeys in both registries. +
+
+ Note: all write functions only work on the local registry. +
+
+ + How to find the registries: +
+
search for the system registry: +
+
The system registry will always be searched in the same directory as the + executable. The name of the system registry is "applicat.rdb". If the system + registry was not found, then the environment variable STAR_REGISTRY will be checked. + If this variable was set, it must contain a full path to a valid system registry. +
+
Search for the user registry using the following rules: +
+
+
    +
  1. 1. (for further use) search in sversion.ini (.sversionrc) for an entry + REGISTRY_VERSION_STRING (example: UserRegistry 5.0/505=test.rdb) in the section + [Registry]. If found, then take this value instead of "user.rdb" as "REGISTRY NAME". +
  2. +
  3. 2. Search in the config directory of the user for a file "REGISTRY NAME". If + found, return the full path and name of the file. If not found, retry this + step with a dot before "REGISTRY NAME". +
  4. +
  5. 3. If not found, a new user registry with name user.rdb will be created in the user + config directory. +
  6. +
+
+
+

Guarantees:

+ +
    +
  • -thread safe
  • +
+ */ +published service DefaultRegistry +{ + interface com::sun::star::registry::XSimpleRegistry; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/ImplementationRegistration.idl b/udkapi/com/sun/star/registry/ImplementationRegistration.idl new file mode 100644 index 000000000..b12d4afd3 --- /dev/null +++ b/udkapi/com/sun/star/registry/ImplementationRegistration.idl @@ -0,0 +1,46 @@ +/* -*- 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_registry_ImplementationRegistration_idl__ +#define __com_sun_star_registry_ImplementationRegistration_idl__ + +#include + + + + module com { module sun { module star { module registry { + +/** is the implementation of the interface XImplementationRegistration. + This service can be used to install or uninstall components (implementations). + Further, it is possible to check if all runtime dependencies (needed services) are + available to use a specified component. + + Guarantees: +
    +
  • -thread safe
  • +
+ */ +published service ImplementationRegistration + : com::sun::star::registry::XImplementationRegistration; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/InvalidRegistryException.idl b/udkapi/com/sun/star/registry/InvalidRegistryException.idl new file mode 100644 index 000000000..e5c3d48c6 --- /dev/null +++ b/udkapi/com/sun/star/registry/InvalidRegistryException.idl @@ -0,0 +1,40 @@ +/* -*- 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_registry_InvalidRegistryException_idl__ +#define __com_sun_star_registry_InvalidRegistryException_idl__ + +#include + + + + module com { module sun { module star { module registry { + +/** signals that the registry is invalid or an operation on the registry + failed. + */ +published exception InvalidRegistryException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/InvalidValueException.idl b/udkapi/com/sun/star/registry/InvalidValueException.idl new file mode 100644 index 000000000..81bd011d1 --- /dev/null +++ b/udkapi/com/sun/star/registry/InvalidValueException.idl @@ -0,0 +1,40 @@ +/* -*- 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_registry_InvalidValueException_idl__ +#define __com_sun_star_registry_InvalidValueException_idl__ + +#include + + + + module com { module sun { module star { module registry { + +/** signals that the value of the key is invalid or does not have the + appropriate key type. + */ +published exception InvalidValueException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/MergeConflictException.idl b/udkapi/com/sun/star/registry/MergeConflictException.idl new file mode 100644 index 000000000..fdf6a35f1 --- /dev/null +++ b/udkapi/com/sun/star/registry/MergeConflictException.idl @@ -0,0 +1,40 @@ +/* -*- 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_registry_MergeConflictException_idl__ +#define __com_sun_star_registry_MergeConflictException_idl__ + +#include + + + + module com { module sun { module star { module registry { + +/** is thrown if entries of two registries are contradictory in the context of + XSimpleRegistry::mergeKey()e() method. + */ +published exception MergeConflictException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/NestedRegistry.idl b/udkapi/com/sun/star/registry/NestedRegistry.idl new file mode 100644 index 000000000..f8a8f0f03 --- /dev/null +++ b/udkapi/com/sun/star/registry/NestedRegistry.idl @@ -0,0 +1,134 @@ +/* -*- 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_registry_NestedRegistry_idl__ +#define __com_sun_star_registry_NestedRegistry_idl__ + +#include +#include + + + + module com { module sun { module star { module registry { + +/** supports a shared view on two different registries. The registry + files will be opened in two different modes, registry1 will be opened with read/write + rights and registry2 will be opened read-only. + In the context of this service, the functions open, close, + and destroy from XSimpleRegistry are not supported and + throw an exception if they are used. + + Functions of XSimpleRegistry: +
+
getURL +
+
returns the name of registry1. + +
+
isValid +
+
checks if registry1 is valid. If the interface is not `NULL` + then registry1 should always be valid. + +
+
isReadOnly +
+
checks if registry1 has write protection. +
+
mergeKey +
+
merges all information from the specified registry in registry1. + +
+
getRootKey +
+
returns a virtual rootkey of both registries. +
+
+ + Functions of XRegistryKey: +
+
openKey +
+
returns a virtual key which is specified in registry1 or registry2. + +
+
deleteKey +
+
deletes the key only if it is present in registry1. + +
+
setLongValue, setAsciiValue, setStringValue, setBinaryValue +
+
sets the value at the specified key in registry1. + +
+
getLongValue, getAsciiValue, getStringValue, getBinaryValue +
+
returns the value at the specified key in registry1, or if + the value is not present in registry1, it will return the value of registry2. + +
+
openKeys +
+
returns a sequence of all subkeys in both registries. + +
+
getKeyNames +
+
returns a sequence with the names of all subkeys in both + registries. + +
+
+ Note: all write functions only work on registry1. +
+
+ + How to initialize the registries:
+ Use a sequence of XSimpleRegistry with two elements. The first element must be + the registry which is opened with read/write rights and the second element must be + the read-only one.
+ Two different ways are possible:
+
    +
  • use com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() to + create an instance of this service where the value of the any parameter must be the sequence with + the two open registries. +
  • use the initialize function of the com::sun::star::lang::XInitialization interface where the value of the + any parameter must be the sequence with the two open registries. +
+
+ + + Guarantees: +
    +
  • -thread safe
  • +
+ */ +published service NestedRegistry +{ + interface com::sun::star::registry::XSimpleRegistry; + interface com::sun::star::lang::XInitialization; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/RegistryKeyType.idl b/udkapi/com/sun/star/registry/RegistryKeyType.idl new file mode 100644 index 000000000..c02a3126a --- /dev/null +++ b/udkapi/com/sun/star/registry/RegistryKeyType.idl @@ -0,0 +1,43 @@ +/* -*- 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_registry_RegistryKeyType_idl__ +#define __com_sun_star_registry_RegistryKeyType_idl__ + + + + module com { module sun { module star { module registry { + +/** represents all possible types of a key. + +

A key can be a normal key with a value and subkeys, or it can be a + link which references another key.

+ */ +published enum RegistryKeyType +{ + KEY, + LINK + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/RegistryValueType.idl b/udkapi/com/sun/star/registry/RegistryValueType.idl new file mode 100644 index 000000000..0134fd761 --- /dev/null +++ b/udkapi/com/sun/star/registry/RegistryValueType.idl @@ -0,0 +1,66 @@ +/* -*- 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_registry_RegistryValueType_idl__ +#define __com_sun_star_registry_RegistryValueType_idl__ + + + + module com { module sun { module star { module registry { + +/** represents all possible types of a key value. + +

An ASCII value and a string value will both be handled with type + string. But interns will be handled differently. Normally the idl + string represents a unicode string.

+ */ +published enum RegistryValueType +{ + /** the type of the key is not defined. + */ + NOT_DEFINED, + /** the type of the key is long. + */ + LONG, + /** the type of the key is ASCII. + */ + ASCII, + /** the type of the key is a string. + */ + STRING, + /** the type of the key is binary. + */ + BINARY, + /** the type of the key is LONGLIST. + */ + LONGLIST, + /** the type of the key is an ASCIILIST. + */ + ASCIILIST, + /** the type of the key is a STRINGLIST. + */ + STRINGLIST + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/SimpleRegistry.idl b/udkapi/com/sun/star/registry/SimpleRegistry.idl new file mode 100644 index 000000000..14fe69891 --- /dev/null +++ b/udkapi/com/sun/star/registry/SimpleRegistry.idl @@ -0,0 +1,43 @@ +/* -*- 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_registry_SimpleRegistry_idl__ +#define __com_sun_star_registry_SimpleRegistry_idl__ + +#include + + + + module com { module sun { module star { module registry { + +/** makes it possible to create, open, or close a registry. Further, it is + possible to merge a registry under a specified key in the open registry. + + Guarantees: +
    +
  • -thread safe
  • +
+ */ +published service SimpleRegistry : com::sun::star::registry::XSimpleRegistry; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/XImplementationRegistration.idl b/udkapi/com/sun/star/registry/XImplementationRegistration.idl new file mode 100644 index 000000000..40da303f5 --- /dev/null +++ b/udkapi/com/sun/star/registry/XImplementationRegistration.idl @@ -0,0 +1,99 @@ +/* -*- 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_registry_XImplementationRegistration_idl__ +#define __com_sun_star_registry_XImplementationRegistration_idl__ + +#include + +#include + +#include + + + + module com { module sun { module star { module registry { + +/** offers a registry for implementation objects and provides information + about the registered implementations. + */ +published interface XImplementationRegistration: com::sun::star::uno::XInterface +{ + /** registers a component which provides one or more implementations. + + @param aImplementationLoader + the URL of the implementation loader. + + @param aLocation + specifies the location of the component with the URL. + + @param xReg + specifies the registry where the component should be installed. + If it is a NULL interface, then the component will be installed + in the system registry (if this feature is supported). + */ + void registerImplementation( [in] string aImplementationLoader, + [in] string aLocation, + [in] com::sun::star::registry::XSimpleRegistry xReg ) + raises( com::sun::star::registry::CannotRegisterImplementationException ); + + /** revokes a component and all their provided implementations from the registry. + + @param aLocation + specifies the location of the component with the URL. + + @param xReg + specifies the registry where the component should be installed. + If it is a NULL interface, then the component will be revoked + from the system registry (if this feature is supported). + */ + boolean revokeImplementation( [in] string aLocation, + [in] com::sun::star::registry::XSimpleRegistry xReg ); + + // DOCUMENTATION CHANGED FOR XImplementationRegistration::getImplementations + /** @returns + the names of the implementations registered by the url location. + + @param aImplementationLoader + specifies the name of the needed loader for this type of implementation. For + example, the loader "com.sun.star.loader.SharedLibrary" for implementations + that are realized as an SharedLibrary. + + @param aLocation + specifies the location of the component with the URL. + */ + sequence getImplementations( [in] string aImplementationLoader, + [in] string aLocation ); + + // DOCUMENTATION CHANGED FOR XImplementationRegistration::checkInstantiation + /** @returns + a sequence with names of the missing services to create an instance of this implementation. + + @param implementationName + specifies the name of the checked implementation. + */ + sequence checkInstantiation( [in] string implementationName ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/XImplementationRegistration2.idl b/udkapi/com/sun/star/registry/XImplementationRegistration2.idl new file mode 100644 index 000000000..3b6a969e8 --- /dev/null +++ b/udkapi/com/sun/star/registry/XImplementationRegistration2.idl @@ -0,0 +1,62 @@ +/* -*- 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_registry_XImplementationRegistration2_idl__ +#define __com_sun_star_registry_XImplementationRegistration2_idl__ + +#include + + module com { module sun { module star { module registry { + + +/** extends the functionality of com::sun::star::registry::XImplementationRegistration. It can be useful to specify a complete Url to a component but register the components name only (library or jar name). + + @since OOo 2.4 + */ +interface XImplementationRegistration2: com::sun::star::registry::XImplementationRegistration +{ + + /** registers a component which provides one or more implementations. + + @param aImplementationLoader + the URL of the implementation loader. + + @param aLocation + specifies the location of the component with the URL. + + @param aRegisteredLocation + the URL with which the component is actually registered. + + @param xReg + specifies the registry where the component should be installed. + If it is a NULL interface, then the component will be installed + in the system registry (if this feature is supported). + */ + void registerImplementationWithLocation( [in] string aImplementationLoader, + [in] string aLocation, [in] string aRegisteredLocation, + [in] com::sun::star::registry::XSimpleRegistry xReg ) + raises( com::sun::star::registry::CannotRegisterImplementationException ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/XRegistryKey.idl b/udkapi/com/sun/star/registry/XRegistryKey.idl new file mode 100644 index 000000000..bdf36cf56 --- /dev/null +++ b/udkapi/com/sun/star/registry/XRegistryKey.idl @@ -0,0 +1,414 @@ +/* -*- 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_registry_XRegistryKey_idl__ +#define __com_sun_star_registry_XRegistryKey_idl__ + +#include +#include +#include +#include +#include + + + +module com { module sun { module star { module registry { + +/** makes structural information (except regarding tree structures) + of a single registry key accessible. + +

This is the main interface for registry keys.

+ + @see XSimpleRegistry +*/ +published interface XRegistryKey: com::sun::star::uno::XInterface +{ + /** This is the key of the entry relative to its parent.

+ +

The access path starts with the root "/" and all parent + entry names are delimited with slashes "/" too, like in a + UNIX (R) file system. Slashes which are part of single names + are represented as hexadecimals preceded with a "%" like in + URL syntax. + */ + [readonly, attribute] string KeyName; + + /** checks if the key can be overwritten. + + @throws InvalidRegistryException + if the registry is not open. + */ + boolean isReadOnly() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** checks if the key points to an open valid key in the data-source. + */ + boolean isValid(); + + /** @returns + the type of the specified key. + + @param rKeyName + specifies the relative path from the current key to + the key of the type which will be returned. + + @throws InvalidRegistryException + if the registry is not open. + */ + com::sun::star::registry::RegistryKeyType getKeyType( [in] string rKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** @returns + the type of the key value or NOT_DEFINED if the key has no value. + + @throws InvalidRegistryException + if the registry is not open. + */ + com::sun::star::registry::RegistryValueType getValueType() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** @returns + a long value if the key contains one. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the value is not of type long. + */ + long getLongValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a long value to the key. + +

If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setLongValue( [in] long value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getLongListValue + /** @returns + a sequence of longs if the key contains a long list value. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type long list. + */ + sequence getLongListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a long list value to the key. + +

If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setLongListValue( [in] sequence seqValue ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getAsciiValue + /** @returns + an ascii string value if the key contains one. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type ascii. + */ + string getAsciiValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets an ASCII string value to the key. + +

The high byte of the string should be NULL. If not, there + is no guarantee that the string will be correctly transported. + If the key already has a value, the value will be overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setAsciiValue( [in] string value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getAsciiListValue + /** @returns + a sequence of ascii strings if the key contains an ascii list value. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type ascii list. + */ + sequence getAsciiListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets an ASCII string list value to the key. + +

The high byte of the string should be NULL. If not, there + is no guarantee that the string will be correctly transported. + If the key already has a value, the value will be overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setAsciiListValue( [in] sequence seqValue ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getStringValue + /** @returns + a unicode string value if the key contains one. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type string. + */ + string getStringValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a unicode string value to the key. + +

If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setStringValue( [in] string value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getStringListValue + /** @returns + a sequence of unicode strings if the key contains a unicode string list value. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type string list. + */ + sequence getStringListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a unicode string value to the key. + +

If the key already has a value, the value will be overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setStringListValue( [in] sequence seqValue ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getBinaryValue + /** @returns + a binary value if the key contains one. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type binary. + */ + sequence getBinaryValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a binary value to the key. + +

If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setBinaryValue( [in] sequence value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** opens a sub key of the key. + +

If the sub key does not exist, the function returns a + NULL-interface. + + @param aKeyName + the relative path from the current key to the key + which will be created. + + @returns + a NULL interface if the key does not exist. + + @throws InvalidRegistryException + if the registry is not open. + */ + com::sun::star::registry::XRegistryKey openKey( [in] string aKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** creates a new key in the registry.

+ +

If the key already exists, the function will open the key. + + @param aKeyName + specifies the relative path from the current key to + the key which will be created. + + @returns + a NULL interface if the key could not be created. + + @throws InvalidRegistryException + if the registry is not open, the registry is readonly + or if the key exists and is of type LINK. + */ + com::sun::star::registry::XRegistryKey createKey( [in] string aKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** closes a key in the registry. + + @throws InvalidRegistryException + if the registry is not open. + */ + void closeKey() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** deletes a key from the registry. + + @param rKeyName + specifies the relative path from the current key to + the key which will be deleted. + + @throws InvalidRegistryException + if the registry is not open, the registry is readonly, + the key does not exists or if the key is of type LINK. + */ + void deleteKey( [in] string rKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::openKeys + /** opens all subkeys of the key. If a subkey is a link, the link will be + resolved and the appropriate key will be opened. + + @returns + an empty sequence if the key has no subkeys. + + @throws InvalidRegistryException + if the registry is not open. + */ + sequence openKeys() + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getKeyNames + /** @returns a sequence with the names of all subkeys of the key. + If the key has no subkeys, the function returns an empty sequence. If a subkey is + a link, the name of the link will be returned. + + @throws InvalidRegistryException + if the registry is not open. + */ + sequence getKeyNames() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** creates a new link in the registry. + + @returns + `TRUE` if the link was created. If the link already + exists or the link target does not exist, the + function returns `FALSE`. + + @param aLinkName + specifies the relative path from the current key to + the link which will be created. + + @param aLinkTarget + specifies the full path of the key which will be + referenced by the link. + + @throws InvalidRegistryException + if the registry is not open or the registry is + readonly. + + */ + boolean createLink( [in] string aLinkName, + [in] string aLinkTarget ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** deletes a link from the registry. + + @param rLinkName + specifies the relative path from the current key to + the link which will be deleted. + + @throws InvalidRegistryException + if the registry is not open, the registry is readonly, + or if the link does not exist. + */ + void deleteLink( [in] string rLinkName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getLinkTarget + /** @returns + the target (complete path of a key) of the link specified by rLinkName. + + @param rLinkName + specifies the relative path from the current key to + the link which target will be returned. + + @throws InvalidRegistryException + if the registry is not open or the link does not exists. + */ + string getLinkTarget( [in] string rLinkName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getResolvedName + /** @returns + the resolved name of a key. The function resolve the complete name of the key. + If a link could not be resolved, the linktarget concatenated with the unresolved rest + of the name, will be returned. + + @param aKeyName + specifies a relative path from the current key which will be resolved from all links. + + @throws InvalidRegistryException + if the registry is not open or a recursion was detected. + */ + string getResolvedName( [in] string aKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/XSimpleRegistry.idl b/udkapi/com/sun/star/registry/XSimpleRegistry.idl new file mode 100644 index 000000000..342d2642f --- /dev/null +++ b/udkapi/com/sun/star/registry/XSimpleRegistry.idl @@ -0,0 +1,131 @@ +/* -*- 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_registry_XSimpleRegistry_idl__ +#define __com_sun_star_registry_XSimpleRegistry_idl__ + +#include +#include +#include +#include + + + +module com { module sun { module star { module registry { + +/** allows access to a registry (a persistent data source). + The data is stored in a hierarchical key structure beginning with a root key. + Each key can store a value and can have multiple subkeys. + + @see XRegistryKey +*/ +published interface XSimpleRegistry: com::sun::star::uno::XInterface +{ + /** returns the URL of the current data source of the registry. + */ + string getURL(); + + /** connects the registry to a persistent data source represented by + a URL. + +

If a local registry is already open, this function + will close the currently open registry. + + @param rURL + specifies the complete URL to access the data source. + + @param bReadOnly + specifies if the data source should be opened for + read only. + + @param bCreate + specifies if the data source should be created if it + does not already exist. + + @throws InvalidRegistryException + if the registry does not exist. + */ + void open( [in] string rURL, + [in] boolean bReadOnly, + [in] boolean bCreate ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** checks if the registry points to a valid data-source. + */ + boolean isValid(); + + /** disconnects the registry from the data-source. + + @throws InvalidRegistryException + if the registry is not open. + */ + void close() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** destroys the registry and the data source. + + @throws InvalidRegistryException + if the registry is not open. + */ + void destroy() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** @returns + the root key of the registry. + + @throws InvalidRegistryException + if no registry is open + */ + com::sun::star::registry::XRegistryKey getRootKey() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** checks if the registry is readonly. + + @throws InvalidRegistryException + if the registry is not open. + */ + boolean isReadOnly() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** DEPRECATED: this method lacks a registry key (better than a URL). + + merges a registry under the specified key. + +

If the key does not exist it will be created. Existing + keys will be overridden from keys of registry specified by + aUrl. + + @throws InvalidRegistryException + if the registry is not open. + + @throws MergeConflictException + if any differences occur during merging + */ + void mergeKey( [in] string aKeyName, + [in] string aUrl ) + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::MergeConflictException ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3