summaryrefslogtreecommitdiffstats
path: root/udkapi/com/sun/star/registry
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /udkapi/com/sun/star/registry
parentInitial commit. (diff)
downloadlibreoffice-upstream.tar.xz
libreoffice-upstream.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'udkapi/com/sun/star/registry')
-rw-r--r--udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl48
-rw-r--r--udkapi/com/sun/star/registry/DefaultRegistry.idl137
-rw-r--r--udkapi/com/sun/star/registry/ImplementationRegistration.idl46
-rw-r--r--udkapi/com/sun/star/registry/InvalidRegistryException.idl40
-rw-r--r--udkapi/com/sun/star/registry/InvalidValueException.idl40
-rw-r--r--udkapi/com/sun/star/registry/MergeConflictException.idl40
-rw-r--r--udkapi/com/sun/star/registry/NestedRegistry.idl134
-rw-r--r--udkapi/com/sun/star/registry/RegistryKeyType.idl43
-rw-r--r--udkapi/com/sun/star/registry/RegistryValueType.idl66
-rw-r--r--udkapi/com/sun/star/registry/SimpleRegistry.idl43
-rw-r--r--udkapi/com/sun/star/registry/XImplementationRegistration.idl99
-rw-r--r--udkapi/com/sun/star/registry/XImplementationRegistration2.idl62
-rw-r--r--udkapi/com/sun/star/registry/XRegistryKey.idl414
-rw-r--r--udkapi/com/sun/star/registry/XSimpleRegistry.idl131
14 files changed, 1343 insertions, 0 deletions
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 <com/sun/star/uno/Exception.idl>
+
+
+
+ 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:<br>
+ <br><ul>
+ <li>the component cannot be found or cannot be loaded (missing path or classpath)
+ <li>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)).
+ </ul><br>
+
+ */
+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 <com/sun/star/registry/XSimpleRegistry.idl>
+
+
+
+ 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 <code>open</code>, <code>close</code>, and <code>destroy</code>
+ from XSimpleRegistry are not supported and throw an exception
+ if they are used.
+
+ Functions of XSimpleRegistry:
+ <dl>
+ <dt> <b>getURL</b>
+ </dt>
+ <dd> returns the name of the local registry.
+ </dd>
+ <dt> <b>isValid</b>
+ </dt>
+ <dd> checks if the local registry is valid. If the interface is not `NULL`
+ the local registry should always be valid.
+ </dd>
+ <dt> <b>isReadOnly</b> </dt>
+ <dd> checks if the local registry has write protection.
+ </dd>
+ <dt> <b>mergeKey</b>
+ </dt>
+ <dd> merges all information from the specified registry in the local registry.
+ </dd>
+ <dt> <b>getRootKey</b>
+ </dt>
+ <dd> returns a virtual rootkey of both registries.
+ </dd>
+ </dl>
+
+ Functions of XRegistryKey:
+ <dl>
+ <dt> <b>openKey</b>
+ </dt>
+ <dd> returns a virtual key which is specified in the local or the system
+ registry.
+ </dd>
+ <dt> <b>deleteKey</b>
+ </dt>
+ <dd> deletes the key only if it is present in the local registry.
+ </dd>
+ <dt> <b>setLongValue, setAsciiValue, setStringValue, setBinaryValue</b>
+ </dt>
+ <dd> sets the value at the specified key in the local registry.
+ </dd>
+ <dt> <b>getLongValue, getAsciiValue, getStringValue, getBinaryValue</b>
+ </dt>
+ <dd> 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.
+ </dd>
+ <dt> <b>openKeys</b>
+ </dt>
+ <dd> returns a sequence of all subkeys in both registries.
+ </dd>
+ <dt> <b>getKeyNames</b>
+ </dt>
+ <dd> returns a sequence with the names of all subkeys in both registries.
+ </dd>
+ <dt>
+ <b>Note: all write functions only work on the local registry.</b>
+ </dt>
+ </dl>
+
+ How to find the registries:
+ <dl>
+ <dt> search for the system registry:
+ </dt>
+ <dd> 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.
+ </dd>
+ <dt> Search for the user registry using the following rules:
+ </dt>
+ <dd>
+ <ol>
+ <li> 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".
+ </li>
+ <li> 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".
+ </li>
+ <li> 3. If not found, a new user registry with name user.rdb will be created in the user
+ config directory.
+ </li>
+ </ol>
+ </dd>
+ </dl>
+ <h4>Guarantees:</h4>
+
+ <ul>
+ <li>-thread safe</li>
+ </ul>
+ */
+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 <com/sun/star/registry/XImplementationRegistration.idl>
+
+
+
+ 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:
+ <ul>
+ <li>-thread safe</li>
+ </ul>
+ */
+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 <com/sun/star/uno/Exception.idl>
+
+
+
+ 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 <com/sun/star/uno/Exception.idl>
+
+
+
+ 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 <com/sun/star/uno/Exception.idl>
+
+
+
+ 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 <com/sun/star/registry/XSimpleRegistry.idl>
+#include <com/sun/star/lang/XInitialization.idl>
+
+
+
+ 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 <code>open</code>, <code>close</code>,
+ and <code>destroy</code> from XSimpleRegistry are not supported and
+ throw an exception if they are used.
+
+ Functions of XSimpleRegistry:
+ <dl>
+ <dt> <b>getURL</b>
+ </dt>
+ <dd> returns the name of registry1.
+
+ </dd>
+ <dt> <b>isValid</b>
+ </dt>
+ <dd> checks if registry1 is valid. If the interface is not `NULL`
+ then registry1 should always be valid.
+
+ </dd>
+ <dt> <b>isReadOnly</b>
+ </dt>
+ <dd> checks if registry1 has write protection.
+ </dd>
+ <dt> <b>mergeKey</b>
+ </dt>
+ <dd> merges all information from the specified registry in registry1.
+
+ </dd>
+ <dt> <b>getRootKey</b>
+ </dt>
+ <dd> returns a virtual rootkey of both registries.
+ </dd>
+ </dl>
+
+ Functions of XRegistryKey:
+ <dl>
+ <dt> <b>openKey</b>
+ </dt>
+ <dd> returns a virtual key which is specified in registry1 or registry2.
+
+ </dd>
+ <dt> <b>deleteKey</b>
+ </dt>
+ <dd> deletes the key only if it is present in registry1.
+
+ </dd>
+ <dt> <b>setLongValue, setAsciiValue, setStringValue, setBinaryValue</b>
+ </dt>
+ <dd> sets the value at the specified key in registry1.
+
+ </dd>
+ <dt> <b>getLongValue, getAsciiValue, getStringValue, getBinaryValue</b>
+ </dt>
+ <dd> 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.
+
+ </dd>
+ <dt> <b>openKeys</b>
+ </dt>
+ <dd> returns a sequence of all subkeys in both registries.
+
+ </dd>
+ <dt> <b>getKeyNames</b>
+ </dt>
+ <dd> returns a sequence with the names of all subkeys in both
+ registries.
+
+ </dd>
+ <dt>
+ <b>Note: all write functions only work on registry1.</b>
+ </dt>
+ </dl>
+
+ How to initialize the registries:<br>
+ 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.<br>
+ Two different ways are possible:<br>
+ <ul>
+ <li> 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.
+ <li> 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.
+ </ul>
+ <br>
+
+
+ Guarantees:
+ <ul>
+ <li>-thread safe</li>
+ </ul>
+ */
+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.
+
+ <p>A key can be a normal key with a value and subkeys, or it can be a
+ link which references another key.</p>
+ */
+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.
+
+ <p>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. </p>
+ */
+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 <com/sun/star/registry/XSimpleRegistry.idl>
+
+
+
+ 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:
+ <ul>
+ <li>-thread safe</li>
+ </ul>
+ */
+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 <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/registry/XSimpleRegistry.idl>
+
+#include <com/sun/star/registry/CannotRegisterImplementationException.idl>
+
+
+
+ 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<string> 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<string> 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 <com/sun/star/registry/XImplementationRegistration.idl>
+
+ 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 <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/registry/InvalidRegistryException.idl>
+#include <com/sun/star/registry/RegistryKeyType.idl>
+#include <com/sun/star/registry/RegistryValueType.idl>
+#include <com/sun/star/registry/InvalidValueException.idl>
+
+
+
+module com { module sun { module star { module registry {
+
+/** makes structural information (except regarding tree structures)
+ of a single registry key accessible.
+
+ <p>This is the main interface for registry keys.<p>
+
+ @see XSimpleRegistry
+*/
+published interface XRegistryKey: com::sun::star::uno::XInterface
+{
+ /** This is the key of the entry relative to its parent.<p>
+
+ <p>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.
+
+ <p>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<long> getLongListValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets a long list value to the key.
+
+ <p>If the key already has a value, the value will be
+ overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setLongListValue( [in] sequence<long> 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.
+
+ <p>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<string> getAsciiListValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets an ASCII string list value to the key.
+
+ <p>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<string> 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.
+
+ <p> 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<string> getStringListValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets a unicode string value to the key.
+
+ <p>If the key already has a value, the value will be overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setStringListValue( [in] sequence<string> 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<byte> getBinaryValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets a binary value to the key.
+
+ <p>If the key already has a value, the value will be
+ overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setBinaryValue( [in] sequence<byte> value )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** opens a sub key of the key.
+
+ <p>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.<p>
+
+ <p>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<com::sun::star::registry::XRegistryKey> 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<string> 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 <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/registry/InvalidRegistryException.idl>
+#include <com/sun/star/registry/XRegistryKey.idl>
+#include <com/sun/star/registry/MergeConflictException.idl>
+
+
+
+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.
+
+ <p>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.
+
+ <p>If the key does not exist it will be created. Existing
+ keys will be overridden from keys of registry specified by
+ <var>aUrl</var>.
+
+ @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: */