summaryrefslogtreecommitdiff
path: root/registry/source/keyimpl.hxx
diff options
context:
space:
mode:
authorMatthias Huetsch [mhu] <matthias.huetsch@sun.com>2010-03-04 15:19:41 +0100
committerMatthias Huetsch [mhu] <matthias.huetsch@sun.com>2010-03-04 15:19:41 +0100
commit709ee7e9b098fa7074d84d3faab7aa5cd5ebf73b (patch)
treed58e2e95e278a2c864877950904c7bc27dbe3e41 /registry/source/keyimpl.hxx
parentffca8743e16d5afd101df88aa50f2c8735830e53 (diff)
mhu22: #i105430# #i108349# Fixed registry:ORegKey reference counting to avoid redundant closeKey()/flush() calls.
Diffstat (limited to 'registry/source/keyimpl.hxx')
-rw-r--r--registry/source/keyimpl.hxx74
1 files changed, 40 insertions, 34 deletions
diff --git a/registry/source/keyimpl.hxx b/registry/source/keyimpl.hxx
index 4e99696bcd44..ab0de6710e31 100644
--- a/registry/source/keyimpl.hxx
+++ b/registry/source/keyimpl.hxx
@@ -33,16 +33,14 @@
#include <registry/registry.h>
#include "regimpl.hxx"
-#include <rtl/string.hxx>
-
-using namespace rtl;
-using namespace store;
+#include <rtl/ustring.hxx>
class ORegKey
{
public:
- ORegKey(const OUString& keyName, ORegistry* pReg);
+ ORegKey(const rtl::OUString& keyName, ORegistry* pReg);
+ ~ORegKey();
sal_uInt32 acquire()
{ return ++m_refCount; }
@@ -50,68 +48,77 @@ public:
sal_uInt32 release()
{ return --m_refCount; }
- RegError createKey(const OUString& keyName, RegKeyHandle* phNewKey);
+ RegError acquireKey(RegKeyHandle hKey);
+ RegError releaseKey(RegKeyHandle hKey);
+
+ RegError createKey(const rtl::OUString& keyName, RegKeyHandle* phNewKey);
- RegError openKey(const OUString& keyName, RegKeyHandle* phOpenKey);
+ RegError openKey(const rtl::OUString& keyName, RegKeyHandle* phOpenKey);
- RegError openSubKeys(const OUString& keyName,
+ RegError openSubKeys(const rtl::OUString& keyName,
RegKeyHandle** phOpenSubKeys,
sal_uInt32* pnSubKeys);
- RegError getKeyNames(const OUString& keyName,
+ RegError getKeyNames(const rtl::OUString& keyName,
rtl_uString*** pSubKeyNames,
sal_uInt32* pnSubKeys);
RegError closeKey(RegKeyHandle hKey);
- RegError deleteKey(const OUString& keyName);
+ RegError deleteKey(const rtl::OUString& keyName);
- RegError getValueInfo(const OUString& valueName,
+ RegError getValueInfo(const rtl::OUString& valueName,
RegValueType* pValueTye,
sal_uInt32* pValueSize) const;
- RegError setValue(const OUString& valueName,
+ RegError setValue(const rtl::OUString& valueName,
RegValueType vType,
RegValue value,
sal_uInt32 vSize);
- RegError setLongListValue(const OUString& valueName,
+ RegError setLongListValue(const rtl::OUString& valueName,
sal_Int32* pValueList,
sal_uInt32 len);
- RegError setStringListValue(const OUString& valueName,
+ RegError setStringListValue(const rtl::OUString& valueName,
sal_Char** pValueList,
sal_uInt32 len);
- RegError setUnicodeListValue(const OUString& valueName,
+ RegError setUnicodeListValue(const rtl::OUString& valueName,
sal_Unicode** pValueList,
sal_uInt32 len);
- RegError getValue(const OUString& valueName, RegValue value) const;
+ RegError getValue(const rtl::OUString& valueName, RegValue value) const;
- RegError getLongListValue(const OUString& valueName,
+ RegError getLongListValue(const rtl::OUString& valueName,
sal_Int32** pValueList,
sal_uInt32* pLen) const;
- RegError getStringListValue(const OUString& valueName,
+ RegError getStringListValue(const rtl::OUString& valueName,
sal_Char*** pValueList,
sal_uInt32* pLen) const;
- RegError getUnicodeListValue(const OUString& valueName,
+ RegError getUnicodeListValue(const rtl::OUString& valueName,
sal_Unicode*** pValueList,
sal_uInt32* pLen) const;
- RegError getKeyType(const OUString& name,
+ RegError getKeyType(const rtl::OUString& name,
RegKeyType* pKeyType) const;
- RegError getResolvedKeyName(const OUString& keyName,
- OUString& resolvedName);
+ RegError getResolvedKeyName(const rtl::OUString& keyName,
+ rtl::OUString& resolvedName);
+
+ bool isDeleted() const
+ { return m_bDeleted != 0; }
- sal_Bool isDeleted() const
- { return m_bDeleted; }
+ void setDeleted (sal_Bool bKeyDeleted)
+ { m_bDeleted = bKeyDeleted ? 1 : 0; }
- void setDeleted(sal_Bool bKeyDeleted)
- { m_bDeleted = bKeyDeleted; }
+ bool isModified() const
+ { return m_bModified != 0; }
+
+ void setModified (bool bModified = true)
+ { m_bModified = bModified ? 1 : 0; }
sal_Bool isReadOnly() const
{ return m_pRegistry->isReadOnly(); }
@@ -121,28 +128,27 @@ public:
ORegistry* getRegistry() const
{ return m_pRegistry; }
- const OStoreFile& getStoreFile() const
+ const store::OStoreFile& getStoreFile() const
{ return m_pRegistry->getStoreFile(); }
- OStoreDirectory getStoreDir();
+ store::OStoreDirectory getStoreDir();
- const OUString& getName() const
+ const rtl::OUString& getName() const
{ return m_name; }
sal_uInt32 getRefCount() const
{ return m_refCount; }
- OUString getFullPath(OUString const & path) const;
+ rtl::OUString getFullPath(rtl::OUString const & path) const;
private:
sal_uInt32 m_refCount;
- OUString m_name;
- sal_Bool m_bDeleted;
+ rtl::OUString m_name;
+ int m_bDeleted:1;
+ int m_bModified:1;
ORegistry* m_pRegistry;
};
-
-
#endif