Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
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/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
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 .
18 : */
19 :
20 : #ifndef INCLUDED_REGISTRY_SOURCE_KEYIMPL_HXX
21 : #define INCLUDED_REGISTRY_SOURCE_KEYIMPL_HXX
22 :
23 : #include <registry/registry.h>
24 : #include "regimpl.hxx"
25 : #include <rtl/ustring.hxx>
26 :
27 : class ORegKey
28 : {
29 : public:
30 :
31 : ORegKey(const OUString& keyName, ORegistry* pReg);
32 : ~ORegKey();
33 :
34 370 : sal_uInt32 acquire()
35 370 : { return ++m_refCount; }
36 :
37 939 : sal_uInt32 release()
38 939 : { return --m_refCount; }
39 :
40 : RegError releaseKey(RegKeyHandle hKey);
41 :
42 : RegError createKey(const OUString& keyName, RegKeyHandle* phNewKey);
43 :
44 : RegError openKey(const OUString& keyName, RegKeyHandle* phOpenKey);
45 :
46 : RegError openSubKeys(const OUString& keyName,
47 : RegKeyHandle** phOpenSubKeys,
48 : sal_uInt32* pnSubKeys);
49 :
50 : RegError getKeyNames(const OUString& keyName,
51 : rtl_uString*** pSubKeyNames,
52 : sal_uInt32* pnSubKeys);
53 :
54 : RegError closeKey(RegKeyHandle hKey);
55 :
56 : RegError deleteKey(const OUString& keyName);
57 :
58 : RegError getValueInfo(const OUString& valueName,
59 : RegValueType* pValueTye,
60 : sal_uInt32* pValueSize) const;
61 :
62 : RegError setValue(const OUString& valueName,
63 : RegValueType vType,
64 : RegValue value,
65 : sal_uInt32 vSize);
66 :
67 : RegError setLongListValue(const OUString& valueName,
68 : sal_Int32* pValueList,
69 : sal_uInt32 len);
70 :
71 : RegError setStringListValue(const OUString& valueName,
72 : sal_Char** pValueList,
73 : sal_uInt32 len);
74 :
75 : RegError setUnicodeListValue(const OUString& valueName,
76 : sal_Unicode** pValueList,
77 : sal_uInt32 len);
78 :
79 : RegError getValue(const OUString& valueName, RegValue value) const;
80 :
81 : RegError getLongListValue(const OUString& valueName,
82 : sal_Int32** pValueList,
83 : sal_uInt32* pLen) const;
84 :
85 : RegError getStringListValue(const OUString& valueName,
86 : sal_Char*** pValueList,
87 : sal_uInt32* pLen) const;
88 :
89 : RegError getUnicodeListValue(const OUString& valueName,
90 : sal_Unicode*** pValueList,
91 : sal_uInt32* pLen) const;
92 :
93 : RegError getResolvedKeyName(const OUString& keyName,
94 : OUString& resolvedName);
95 :
96 859 : bool isDeleted() const
97 859 : { return m_bDeleted; }
98 :
99 7 : void setDeleted (bool bKeyDeleted)
100 7 : { m_bDeleted = bKeyDeleted; }
101 :
102 35 : bool isModified() const
103 35 : { return m_bModified; }
104 :
105 427 : void setModified (bool bModified = true)
106 427 : { m_bModified = bModified; }
107 :
108 809 : bool isReadOnly() const
109 809 : { return m_pRegistry->isReadOnly(); }
110 :
111 : sal_uInt32 countSubKeys();
112 :
113 951 : ORegistry* getRegistry() const
114 951 : { return m_pRegistry; }
115 :
116 1177 : const store::OStoreFile& getStoreFile() const
117 1177 : { return m_pRegistry->getStoreFile(); }
118 :
119 : store::OStoreDirectory getStoreDir();
120 :
121 649 : const OUString& getName() const
122 649 : { return m_name; }
123 :
124 : sal_uInt32 getRefCount() const
125 : { return m_refCount; }
126 :
127 : OUString getFullPath(OUString const & path) const;
128 :
129 : private:
130 : sal_uInt32 m_refCount;
131 : OUString m_name;
132 : bool m_bDeleted:1;
133 : bool m_bModified:1;
134 : ORegistry* m_pRegistry;
135 : };
136 :
137 : #endif
138 :
139 :
140 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|