bump product version to 6.3.0.0.beta1
[LibreOffice.git] / registry / source / keyimpl.hxx
bloba964866d68bd72548be7273721c6b8c6593f658d
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_REGISTRY_SOURCE_KEYIMPL_HXX
21 #define INCLUDED_REGISTRY_SOURCE_KEYIMPL_HXX
23 #include "regimpl.hxx"
24 #include <rtl/ustring.hxx>
26 class ORegKey
28 public:
30 ORegKey(const OUString& keyName, ORegistry* pReg);
31 ~ORegKey();
33 void acquire()
34 { ++m_refCount; }
36 sal_uInt32 release()
37 { return --m_refCount; }
39 RegError releaseKey(RegKeyHandle hKey);
41 RegError createKey(const OUString& keyName, RegKeyHandle* phNewKey);
43 RegError openKey(const OUString& keyName, RegKeyHandle* phOpenKey);
45 RegError openSubKeys(const OUString& keyName,
46 RegKeyHandle** phOpenSubKeys,
47 sal_uInt32* pnSubKeys);
49 RegError getKeyNames(const OUString& keyName,
50 rtl_uString*** pSubKeyNames,
51 sal_uInt32* pnSubKeys);
53 RegError closeKey(RegKeyHandle hKey);
55 RegError deleteKey(const OUString& keyName);
57 RegError getValueInfo(const OUString& valueName,
58 RegValueType* pValueTye,
59 sal_uInt32* pValueSize) const;
61 RegError setValue(const OUString& valueName,
62 RegValueType vType,
63 RegValue value,
64 sal_uInt32 vSize);
66 RegError setLongListValue(const OUString& valueName,
67 sal_Int32 const * pValueList,
68 sal_uInt32 len);
70 RegError setStringListValue(const OUString& valueName,
71 sal_Char** pValueList,
72 sal_uInt32 len);
74 RegError setUnicodeListValue(const OUString& valueName,
75 sal_Unicode** pValueList,
76 sal_uInt32 len);
78 RegError getValue(const OUString& valueName, RegValue value) const;
80 RegError getLongListValue(const OUString& valueName,
81 sal_Int32** pValueList,
82 sal_uInt32* pLen) const;
84 RegError getStringListValue(const OUString& valueName,
85 sal_Char*** pValueList,
86 sal_uInt32* pLen) const;
88 RegError getUnicodeListValue(const OUString& valueName,
89 sal_Unicode*** pValueList,
90 sal_uInt32* pLen) const;
92 RegError getResolvedKeyName(const OUString& keyName,
93 OUString& resolvedName) const;
95 bool isDeleted() const
96 { return m_bDeleted; }
98 void setDeleted (bool bKeyDeleted)
99 { m_bDeleted = bKeyDeleted; }
101 bool isModified() const
102 { return m_bModified; }
104 void setModified (bool bModified = true)
105 { m_bModified = bModified; }
107 bool isReadOnly() const
108 { return m_pRegistry->isReadOnly(); }
110 sal_uInt32 countSubKeys();
112 ORegistry* getRegistry() const
113 { return m_pRegistry; }
115 const store::OStoreFile& getStoreFile() const
116 { return m_pRegistry->getStoreFile(); }
118 store::OStoreDirectory getStoreDir() const;
120 const OUString& getName() const
121 { return m_name; }
123 OUString getFullPath(OUString const & path) const;
125 private:
126 sal_uInt32 m_refCount;
127 OUString const m_name;
128 bool m_bDeleted:1;
129 bool m_bModified:1;
130 ORegistry* m_pRegistry;
133 #endif
136 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */