26 #include <string_view>
46 #include <osl/thread.h>
47 #include <rtl/ustring.hxx>
48 #include <rtl/ustrbuf.hxx>
49 #include <osl/file.hxx>
52 using namespace store;
57 void printString(std::u16string_view s) {
59 for (std::size_t i = 0;
i < s.size(); ++
i) {
61 if (c ==
'"' || c ==
'\\') {
62 printf(
"\\%c", static_cast< char >(c));
63 }
else if (s[i] >=
' ' && s[i] <=
'~') {
64 printf(
"%c", static_cast< char >(c));
66 printf(
"\\u%04X", static_cast< unsigned int >(c));
72 void printFieldOrReferenceFlag(
90 printFieldOrReferenceFlag(
92 printFieldOrReferenceFlag(
94 printFieldOrReferenceFlag(
97 printFieldOrReferenceFlag(
99 printFieldOrReferenceFlag(
101 printFieldOrReferenceFlag(
103 printFieldOrReferenceFlag(
105 printFieldOrReferenceFlag(
107 printFieldOrReferenceFlag(
109 printFieldOrReferenceFlag(
112 printFieldOrReferenceFlag(
114 printFieldOrReferenceFlag(
116 printFieldOrReferenceFlag(
122 printf(
"<invalid (0x%04X)>", static_cast< unsigned int >(flags));
127 void dumpType(
typereg::Reader const & reader, OString
const & indent) {
129 printf(
"version: %ld\n", static_cast< long >(reader.
getVersion()));
130 printf(
"%sdocumentation: ", indent.getStr());
133 printf(
"%sfile name: ", indent.getStr());
136 printf(
"%stype class: ", indent.getStr());
138 printf(
"published ");
179 "<invalid (%ld)>", static_cast< long >(reader.
getTypeClass()));
183 printf(
"%stype name: ", indent.getStr());
187 "%ssuper type count: %u\n", indent.getStr(),
191 "%ssuper type name %u: ", indent.getStr(),
192 static_cast< unsigned int >(
i));
197 "%sfield count: %u\n", indent.getStr(),
201 "%sfield %u:\n", indent.getStr(),
202 static_cast< unsigned int >(
i));
203 printf(
"%s documentation: ", indent.getStr());
206 printf(
"%s file name: ", indent.getStr());
209 printf(
"%s flags: ", indent.getStr());
212 printf(
"%s name: ", indent.getStr());
215 printf(
"%s type name: ", indent.getStr());
218 printf(
"%s value: ", indent.getStr());
220 switch (
value.m_type) {
226 printf(
"boolean %s",
value.m_value.aBool ?
"true" :
"false");
230 printf(
"byte %d", static_cast< int >(
value.m_value.aByte));
234 printf(
"short %d", static_cast< int >(
value.m_value.aShort));
240 static_cast< unsigned int >(
value.m_value.aUShort));
244 printf(
"long %ld", static_cast< long >(
value.m_value.aLong));
250 static_cast< unsigned long >(
value.m_value.aULong));
260 printf(
"unsigned hyper");
275 printString(
value.m_value.aString);
279 printf(
"<invalid (%ld)>", static_cast< long >(
value.m_type));
285 "%smethod count: %u\n", indent.getStr(),
289 "%smethod %u:\n", indent.getStr(),
290 static_cast< unsigned int >(
i));
291 printf(
"%s documentation: ", indent.getStr());
294 printf(
"%s flags: ", indent.getStr());
301 printf(
"synchronous");
305 printf(
"attribute get");
309 printf(
"attribute set");
319 printf(
"%s name: ", indent.getStr());
322 printf(
"%s return type name: ", indent.getStr());
326 "%s parameter count: %u\n", indent.getStr(),
332 "%s parameter %u:\n", indent.getStr(),
333 static_cast< unsigned int >(j));
334 printf(
"%s flags: ", indent.getStr());
351 printf(
"<invalid (%ld)>", static_cast< long >(flags));
359 printf(
"%s name: ", indent.getStr());
362 printf(
"%s type name: ", indent.getStr());
367 "%s exception count: %u\n", indent.getStr(),
373 "%s exception type name %u: ", indent.getStr(),
374 static_cast< unsigned int >(j));
380 "%sreference count: %u\n", indent.getStr(),
384 "%sreference %u:\n", indent.getStr(),
385 static_cast< unsigned int >(
i));
386 printf(
"%s documentation: ", indent.getStr());
389 printf(
"%s flags: ", indent.getStr());
392 printf(
"%s sort: ", indent.getStr());
403 printf(
"type parameter");
413 printf(
"%s type name: ", indent.getStr());
418 printf(
"<invalid>\n");
434 if (pRootKey !=
nullptr)
450 sAccessMode = storeAccessMode::Create;
454 sAccessMode = storeAccessMode::ReadOnly;
458 if (regName.isEmpty() &&
459 storeAccessMode::Create == sAccessMode)
465 errCode = rRegFile.
create(regName, sAccessMode);
486 storeError _err = rStoreDir.
create(rRegFile, OUString(), OUString(), sAccessMode);
524 if (!regName.isEmpty())
526 std::unique_ptr<ORegistry> pReg(
new ORegistry());
533 if (FileBase::getSystemPathFromFileURL(regName, systemName) != FileBase::E_None)
534 systemName = regName;
537 if (unlink(name.getStr()) != 0)
561 if (FileBase::getSystemPathFromFileURL(
m_name, systemName) != FileBase::E_None)
565 if (unlink(name.getStr()) != 0)
619 pKey =
static_cast<ORegKey*
>(hKey);
623 OUString sFullKeyName = pKey->
getFullPath(keyName);
634 OUStringBuffer sFullPath(sFullKeyName.getLength()+16);
637 sFullPath.append(
'/');
642 token = sFullKeyName.getToken(0,
'/', nIndex);
643 if (!token.isEmpty())
645 if (rStoreDir.
create(pKey->
getStoreFile(), sFullPath.toString(), token, storeAccessMode::Create))
650 sFullPath.append(token);
651 sFullPath.append(
'/');
653 }
while(nIndex != -1);
656 pKey =
new ORegKey(sFullKeyName,
this);
668 *phOpenKey =
nullptr;
678 pKey =
static_cast<ORegKey*
>(hKey);
685 sal_Int32
n = path.lastIndexOf(
'/') + 1;
688 isReadOnly() ? storeAccessMode::ReadOnly : storeAccessMode::ReadWrite))
698 std::unique_ptr< ORegKey >
p(
new ORegKey(path,
this));
702 i->second->acquire();
704 *phOpenKey =
i->second;
714 OUString
const aKeyName (pKey->
getName());
721 if (pKey != pRootKey)
762 OUString sFullKeyName(pKey->
getName());
763 OUString sFullPath(sFullKeyName);
764 OUString sRelativKey;
765 size_t lastIndex = keyName.rfind(
'/');
767 if (lastIndex != std::u16string_view::npos)
769 sRelativKey += keyName.substr(lastIndex + 1);
771 if (sFullKeyName.getLength() > 1)
772 sFullKeyName += keyName;
774 sFullKeyName += keyName.substr(1);
776 sFullPath = sFullKeyName.copy(0, keyName.rfind(
'/') + 1);
779 if (sFullKeyName.getLength() > 1)
780 sFullKeyName +=
ROOT;
782 sRelativKey += keyName;
783 sFullKeyName += keyName;
785 if (sFullPath.getLength() > 1)
790 _ret = pKey->
openKey(keyName, reinterpret_cast<RegKeyHandle*>(&pOldKey));
801 OUString tmpName = sRelativKey +
ROOT;
804 if (sFile.isValid() && sFile.remove(sFullPath, tmpName))
835 OUString sFullPath(pKey->
getName());
837 if (sFullPath.getLength() > 1)
840 if (const_cast<OStoreFile&>(pKey->
getStoreFile()).
remove(sFullPath, keyName))
847 _err = rStoreDir.next(iter);
854 bool bWarnings,
bool bReport)
876 _ret =
loadAndSaveKeys(pKey, pRootKey, keyName, 0, bWarnings, bReport);
888 _err = rStoreDir.next(iter);
898 const OUString& valueName,
905 sal_uInt32 valueSize;
908 OUString sTargetPath(pTargetKey->
getName());
909 OUString sSourcePath(pSourceKey->
getName());
913 sourceAccess = storeAccessMode::ReadOnly;
918 sTargetPath = sSourcePath.copy(nCut);
921 if (sTargetPath.getLength() > 1)
923 if (sSourcePath.getLength() > 1)
924 sTargetPath += sSourcePath;
926 sTargetPath = sSourcePath;
929 if (sTargetPath.getLength() > 1) sTargetPath +=
ROOT;
930 if (sSourcePath.getLength() > 1) sSourcePath +=
ROOT;
955 aBuffer.resize(nSize);
957 if (rValue.
readAt(0, aBuffer.data(), nSize, rwBytes))
961 if (rwBytes != nSize)
968 if (!rValue.
create(rTargetFile, sTargetPath, valueName, storeAccessMode::ReadWrite))
989 if (rValue.
create(rTargetFile, sTargetPath, valueName, storeAccessMode::Create))
993 if (rValue.
writeAt(0, aBuffer.data(), nSize, rwBytes))
998 if (rwBytes != nSize)
1008 std::u16string_view sTargetPath,
1009 sal_uInt32 srcValueSize,
1029 sal_uInt32 valueSize;
1034 aBuffer.resize(valueSize);
1036 (rwBytes == valueSize))
1045 fprintf(stdout,
"ERROR: values of blop from key \"%s\" has different types.\n",
1046 targetPath.getStr());
1054 reader2.getFieldCount() > 0)
1060 if (reader2.getFieldCount() > 0)
1071 fprintf(stderr,
"WARNING: value of key \"%s\" already exists.\n",
1072 targetPath.getStr());
1080 fprintf(stderr,
"ERROR: values of key \"%s\" contains bad data.\n",
1081 targetPath.getStr());
1089 fprintf(stderr,
"ERROR: values of key \"%s\" has different types.\n",
1090 targetPath.getStr());
1102 std::set< OUString >& nameSet)
1122 std::set< OUString > nameSet;
1128 sal_uInt16
index = 0;
1133 static_cast<sal_uInt16
>(count));
1167 memcpy(aBuffer.data(), &type, 1);
1186 const OUString& keyName,
1192 OUString sRelPath(pSourceKey->
getName().copy(nCut));
1195 if(pTargetKey->
getName().getLength() > 1)
1196 sFullPath += pTargetKey->
getName();
1197 sFullPath += sRelPath;
1198 if (sRelPath.getLength() > 1 || sFullPath.isEmpty())
1201 OUString sFullKeyName = sFullPath + keyName;
1204 if (rStoreDir.
create(pTargetKey->
getStoreFile(), sFullPath, keyName, storeAccessMode::Create))
1215 _ret = pSourceKey->
openKey(keyName, reinterpret_cast<RegKeyHandle*>(&pTmpKey));
1230 sName, nCut, bWarnings, bReport);
1234 sName, nCut, bWarnings, bReport);
1242 _err = rTmpStoreDir.next(iter);
1266 fprintf(stdout,
"Registry \"%s\":\n\n%s\n", regName.getStr(), keyName.getStr());
1285 _err = rStoreDir.next(iter);
1294 sal_uInt32 valueSize;
1296 OUString sFullPath(sPath);
1302 accessMode = storeAccessMode::ReadOnly;
1305 for (
int i= 0;
i < nSpc;
i++) sIndent +=
" ";
1307 if (sFullPath.getLength() > 1)
1311 if (rValue.
create(
m_file, sFullPath, sName, accessMode))
1332 aBuffer.resize(valueSize);
1337 if (rwBytes != valueSize)
1342 const char* indent = sIndent.getStr();
1346 fprintf(stdout,
"%sValue: Type = VALUETYPE_NOT_DEFINED\n", indent);
1350 fprintf(stdout,
"%sValue: Type = RegValueType::LONG\n", indent);
1352 stdout,
"%s Size = %lu\n", indent,
1353 sal::static_int_cast< unsigned long >(valueSize));
1354 fprintf(stdout,
"%s Data = ", indent);
1358 fprintf(stdout,
"%ld\n", sal::static_int_cast< long >(value));
1363 char*
value =
static_cast<char*
>(std::malloc(valueSize));
1364 readUtf8(aBuffer.data(), value, valueSize);
1365 fprintf(stdout,
"%sValue: Type = RegValueType::STRING\n", indent);
1367 stdout,
"%s Size = %lu\n", indent,
1368 sal::static_int_cast< unsigned long >(valueSize));
1369 fprintf(stdout,
"%s Data = \"%s\"\n", indent, value);
1376 fprintf(stdout,
"%sValue: Type = RegValueType::UNICODE\n", indent);
1378 stdout,
"%s Size = %lu\n", indent,
1379 sal::static_int_cast< unsigned long >(valueSize));
1380 fprintf(stdout,
"%s Data = ", indent);
1383 readString(aBuffer.data(), value.get(), size);
1385 OString uStr(value.get(), rtl_ustr_getLength(value.get()), RTL_TEXTENCODING_UTF8);
1386 fprintf(stdout,
"L\"%s\"\n", uStr.getStr());
1391 fprintf(stdout,
"%sValue: Type = RegValueType::BINARY\n", indent);
1393 stdout,
"%s Size = %lu\n", indent,
1394 sal::static_int_cast< unsigned long >(valueSize));
1395 fprintf(stdout,
"%s Data = ", indent);
1403 sal_uInt32 offset = 4;
1408 fprintf(stdout,
"%sValue: Type = RegValueType::LONGLIST\n", indent);
1410 stdout,
"%s Size = %lu\n", indent,
1411 sal::static_int_cast< unsigned long >(valueSize));
1413 stdout,
"%s Len = %lu\n", indent,
1414 sal::static_int_cast< unsigned long >(len));
1415 fprintf(stdout,
"%s Data = ", indent);
1417 sal_Int32 longValue;
1418 for (sal_uInt32
i=0;
i < len;
i++)
1420 readINT32(aBuffer.data() + offset, longValue);
1423 fprintf(stdout,
"%s ", indent);
1426 stdout,
"%lu = %ld\n",
1427 sal::static_int_cast< unsigned long >(
i),
1428 sal::static_int_cast< long >(longValue));
1435 sal_uInt32 offset = 4;
1436 sal_uInt32 sLen = 0;
1441 fprintf(stdout,
"%sValue: Type = RegValueType::STRINGLIST\n", indent);
1443 stdout,
"%s Size = %lu\n", indent,
1444 sal::static_int_cast< unsigned long >(valueSize));
1446 stdout,
"%s Len = %lu\n", indent,
1447 sal::static_int_cast< unsigned long >(len));
1448 fprintf(stdout,
"%s Data = ", indent);
1450 for (sal_uInt32
i=0;
i < len;
i++)
1456 char *pValue =
static_cast<char*
>(std::malloc(sLen));
1457 readUtf8(aBuffer.data() + offset, pValue, sLen);
1460 fprintf(stdout,
"%s ", indent);
1463 stdout,
"%lu = \"%s\"\n",
1464 sal::static_int_cast< unsigned long >(
i), pValue);
1470 case RegValueType::UNICODELIST:
1472 sal_uInt32 offset = 4;
1473 sal_uInt32 sLen = 0;
1478 fprintf(stdout,
"%sValue: Type = RegValueType::UNICODELIST\n", indent);
1480 stdout,
"%s Size = %lu\n", indent,
1481 sal::static_int_cast< unsigned long >(valueSize));
1483 stdout,
"%s Len = %lu\n", indent,
1484 sal::static_int_cast< unsigned long >(len));
1485 fprintf(stdout,
"%s Data = ", indent);
1488 for (sal_uInt32
i=0;
i < len;
i++)
1495 readString(aBuffer.data() + offset, pValue, sLen);
1498 fprintf(stdout,
"%s ", indent);
1500 uStr = OString(pValue, rtl_ustr_getLength(pValue), RTL_TEXTENCODING_UTF8);
1502 stdout,
"%lu = L\"%s\"\n",
1503 sal::static_int_cast< unsigned long >(
i),
1514 fprintf(stdout,
"\n");
1522 OUString sFullPath(sPath);
1529 accessMode = storeAccessMode::ReadOnly;
1532 for (
int i= 0;
i < nSpace;
i++) sIndent +=
" ";
1534 if (sFullPath.getLength() > 1)
1544 fprintf(stdout,
"%s/ %s\n", sIndent.getStr(),
OUStringToOString(sName, RTL_TEXTENCODING_UTF8).getStr());
1546 OUString sSubPath(sFullPath);
1552 _err = rStoreDir.
first(iter);
1560 _ret =
dumpKey(sSubPath, sSubName, nSpace+2);
1563 _ret =
dumpValue(sSubPath, sSubName, nSpace+2);
1571 _err = rStoreDir.
next(iter);
DESTROY_REGISTRY_FAILED
destroy a registry failed. There are may be any open keys.
Flag for published individual constants.
const OUString & getName() const
OUString getFieldTypeName(sal_uInt16 index) const
Returns the type name of a field of this type reader.
OUString getMethodParameterName(sal_uInt16 methodIndex, sal_uInt16 parameterIndex) const
Returns the name of a parameter of a method of this type reader.
STRINGLIST
The key has a value of type ascii string list.
STRING
The key has a value of type ascii string.
RTParamMode
specifies the mode of a parameter.
sal_uInt16 getFieldCount() const
Returns the number of fields of this type reader.
#define VALUE_HEADEROFFSET
indicates a in and out parameter which is used also by reference
RegistryTypeReades reads a binary type blob.
Indicates an extended attribute getter (that has a 'raises' clause) of an interface type...
OUString getReferenceTypeName(sal_uInt16 index) const
Returns the type name of a reference of this type reader.
OUString getFieldFileName(sal_uInt16 index) const
returns the IDL filename of the field specified by index.
RTConstValue getFieldConstValue(sal_uInt16 index) const
returns the value of the field specified by index.
RegistryTypeWriter writes/creates a binary type blob.
RegAccessMode
defines the open/access mode of the registry.
OUString getDocumentation() const
Returns the documentation of this type reader.
constexpr sal_uInt32 STORE_ATTRIB_ISDIR
const OUString & getName() const
OUString getFieldDoku(sal_uInt16 index) const
returns the documentation string for the field specified by index.
sal_uInt16 getReferenceCount() const
Returns the number of references of this type reader.
RegError acquireKey(RegKeyHandle hKey)
specifies that the blob represents an enum type.
UNICODE
The key has a value of type unicode string.
specifies that the blob represents a service type.
storeError create(storeFileHandle hFile, OUString const &rPath, OUString const &rName, storeAccessMode eMode)
LONG
The key has a value of type long.
static RegError checkBlop(store::OStoreStream &rValue, std::u16string_view sTargetPath, sal_uInt32 srcValueSize, sal_uInt8 const *pSrcBuffer, bool bReport)
OUString getMethodDocumentation(sal_uInt16 index) const
Returns the documentation of a method of this type reader.
indicates the asynchronous mode of a method
LONGLIST
The key has a value of type long list.
MERGE_CONFLICT
conflicts exists during the merge process of a key.
sal_uInt16 getMethodCount() const
Returns the number of methods of this type reader.
OUString getFieldName(sal_uInt16 index) const
returns the name of the field specified by index.
RegError releaseKey(RegKeyHandle hKey)
specifies that the blob represents an interface type.
RTConstValue getFieldValue(sal_uInt16 index) const
Returns the value of a field of this type reader.
RTFieldAccess getFieldFlags(sal_uInt16 index) const
Returns the flags of a field of this type reader.
MERGE_ERROR
merging a key, the value and all subkeys failed.
OUString getSuperTypeName() const
returns the full qualified name of the supertype.
A type reader working on a binary blob that represents a UNOIDL type.
NOT_DEFINED
The key has no value or the value type is unknown.
RTParamMode getMethodParameterFlags(sal_uInt16 methodIndex, sal_uInt16 parameterIndex) const
Returns the flags of a parameter of a method of this type reader.
sal_uInt32 readUINT32(const sal_uInt8 *buffer, sal_uInt32 &v)
bool isValid() const
Returns whether this type reader is valid.
static sal_uInt32 checkTypeReaders(RegistryTypeReader const &reader1, RegistryTypeReader const &reader2, std::set< OUString > &nameSet)
indicates a pure in parameter which is used by value
OUString getMethodName(sal_uInt16 index) const
Returns the name of a method of this type reader.
specifies that the blob represents a struct type.
OUString getReferenceDocumentation(sal_uInt16 index) const
Returns the documentation of a reference of this type reader.
specifies that the field is a constant or enum value
the service exports the specified service that means this service provides also the specified service...
CREATE_KEY_FAILED
the key with the specified keyname cannot be created.
specifies that the blob represents a singleton type (a named object) which refers exactly one existin...
RTTypeClass getTypeClass() const
Returns the type class of this type reader.
RTMethodMode getMethodFlags(sal_uInt16 index) const
Returns the flags of a method of this type reader.
RTFieldAccess getFieldAccess(sal_uInt16 index) const
returns the access mode of the field specified by index.
bool isPublished() const
Returns whether this type reader is published.
const sal_uInt8 * getBlop()
returns a pointer to the new type blob.
This mode allows readonly access.
Indicates a rest parameter (currently only valid for service constructors).
RegError eraseKey(ORegKey *pKey, std::u16string_view keyName)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
storeError readAt(sal_uInt32 nOffset, void *pBuffer, sal_uInt32 nBytes, sal_uInt32 &rnDone)
enum SAL_DLLPUBLIC_RTTI RegError
specifies the possible error codes which can occur using the registry API.
Reference< deployment::XPackageRegistry > create(Reference< deployment::XPackageRegistry > const &xRootRegistry, OUString const &context, OUString const &cachePath, Reference< XComponentContext > const &xComponentContext)
storeError first(iterator &it)
specifies that the structure of the given blob is unknown and can't be read.
sal_uInt32 readUtf8(const sal_uInt8 *buffer, char *v, sal_uInt32 maxSize)
BINARY
The key has a value of type binary.
RegError closeKey(RegKeyHandle hKey)
OUString getFileName() const
Returns the file name of this type reader.
specifies that the property/attribute has read/write access
indicates a pure out parameter which is used by reference
enum SAL_DLLPUBLIC_RTTI RegValueType
defines the type of a key value.
REGISTRY_NOT_EXISTS
registry does not exists.
sal_uInt16 getMethodParameterCount(sal_uInt16 index) const
Returns the number of parameters of a method of this type reader.
VALUE_NOT_EXISTS
the key has no value
OUString getFieldName(sal_uInt16 index) const
Returns the name of a field of this type reader.
the service support the interface that means an implementation of this service must implement this in...
sal_uInt16 getMethodExceptionCount(sal_uInt16 index) const
Returns the number of exceptions of a method of this type reader.
storeError create(storeFileHandle hFile, OUString const &rPath, OUString const &rName, storeAccessMode eMode)
specifies that the blob represents an exception type.
DELETE_VALUE_FAILED
deleting of the key value failed.
store::OStoreDirectory getStoreDir() const
storeError writeAt(sal_uInt32 nOffset, void const *pBuffer, sal_uInt32 nBytes, sal_uInt32 &rnDone)
void setFieldData(sal_uInt16 index, const OUString &name, const OUString &typeName, const OUString &doku, const OUString &fileName, RTFieldAccess access, const RTConstValue &constValue)
sets the data for a field member of a type blob.
INVALID_KEYNAME
the keyname is invalid.
OUString getTypeName() const
Returns the type name of this type reader.
KEY_NOT_EXISTS
the specified keyname points to a nonexisting key.
static RegError loadAndSaveValue(ORegKey *pTargetKey, ORegKey const *pSourceKey, const OUString &valueName, sal_uInt32 nCut, bool bWarnings, bool bReport)
OUString getMethodParameterTypeName(sal_uInt16 methodIndex, sal_uInt16 parameterIndex) const
Returns the type name of a parameter of a method of this type reader.
Indicates an extended attribute setter (that has a 'raises' clause) of an interface type...
RegError dumpRegistry(RegKeyHandle hKey) const
void setDeleted(bool bKeyDeleted)
KEY_NOT_OPEN
the key or key handle points to an invalid key or closed key.
RegError openKey(RegKeyHandle hKey, std::u16string_view keyName, RegKeyHandle *phOpenKey)
sal_uInt32 getFieldCount() const
returns the number of fields (attributes/properties, enum values or number of constants in a module)...
indicated the synchronous mode of a method
OUString getSuperTypeName(sal_uInt16 index) const
Returns the type name of a super type of this type reader.
sal_uInt32 readINT32(const sal_uInt8 *buffer, sal_Int32 &v)
OUString getFullPath(std::u16string_view path) const
RegError loadKey(RegKeyHandle hKey, const OUString ®FileName, bool bWarnings, bool bReport)
sal_uInt32 readString(const sal_uInt8 *buffer, sal_Unicode *v, sal_uInt32 maxSize)
INVALID_VALUE
the key has an invalid value or the value type is unknown.
Indicates that a member of a polymorphic struct type template is of a parameterized type...
specifies that the blob represents a typedef type.
INVALID_KEY
the key is not in a valid state.
RegError dumpValue(const OUString &sPath, const OUString &sName, sal_Int16 nSpace) const
sal_Unicode m_pszName[STORE_MAXIMUM_NAMESIZE]
RTTypeClass getTypeClass() const
returns the typeclass of the type represented by this blob.
std::unique_ptr< char[]> aBuffer
DELETE_KEY_FAILED
the specified key cannot be deleted. Maybe an open key handle exists to this key. ...
RegError createKey(RegKeyHandle hKey, std::u16string_view keyName, RegKeyHandle *phNewKey)
Indicates a type parameter of a polymorphic struct type template.
storeError createInMemory()
void * RegKeyHandle
defines the type of a registry key handle used in the C API.
OUString getFieldDocumentation(sal_uInt16 index) const
Returns the documentation of a field of this type reader.
RegError releaseKey(RegKeyHandle hKey)
RegError closeKey(RegKeyHandle hKey)
sal_uInt32 writeUINT32(sal_uInt8 *buffer, sal_uInt32 v)
sal_uInt32 getBlopSize()
returns the size of the new type blob in bytes.
sal_uInt16 getSuperTypeCount() const
Returns the number of super types of this type reader.
RegError loadAndSaveKeys(ORegKey *pTargetKey, ORegKey *pSourceKey, const OUString &keyName, sal_uInt32 nCut, bool bWarnings, bool bReport)
RegError dumpKey(const OUString &sPath, const OUString &sName, sal_Int16 nSpace) const
specifies a property as optional that means that it must not be implemented.
void setModified(bool bModified=true)
RTFieldAccess getReferenceFlags(sal_uInt16 index) const
Returns the flags of a reference of this type reader.
specifies that the blob represents a constants type.
specifies that the blob represents a module type.
OUString getMethodExceptionTypeName(sal_uInt16 methodIndex, sal_uInt16 exceptionIndex) const
Returns the type name of an exception of a method of this type reader.
RegError initRegistry(const OUString &name, RegAccessMode accessMode, bool bCreate=false)
RegError deleteSubkeysAndValues(ORegKey *pKey)
RegError destroyRegistry(const OUString &name)
const store::OStoreFile & getStoreFile() const
typereg_Version getVersion() const
Returns the binary blob version of this type reader.
static RegError mergeModuleValue(store::OStoreStream &rTargetValue, RegistryTypeReader const &reader, RegistryTypeReader const &reader2)
OUString getFieldType(sal_uInt16 index) const
returns the full qualified name of the field specified by index.
RegError openKey(std::u16string_view keyName, RegKeyHandle *phOpenKey)
OUString getFieldFileName(sal_uInt16 index) const
Returns the file name of a field of this type reader.
RTFieldAccess
specifies the type for the field access.
RTReferenceType getReferenceSort(sal_uInt16 index) const
Returns the sort of a reference of this type reader.
OUString getMethodReturnTypeName(sal_uInt16 index) const
Returns the return type name of a method of this type reader.
RegError deleteKey(RegKeyHandle hKey, std::u16string_view keyName)
OUString getTypeName() const
returns the full qualified name of the type.
CANNOT_OPEN_FOR_READWRITE
registry cannot be opened with readwrite access because the registry is already open with readwrite a...
storeError create(OUString const &rFilename, storeAccessMode eAccessMode)
INVALID_REGISTRY
registry is in an invalid state or the registry does not point to a valid registry data file...
specifies a readonly property/attribute
bool m_bDetectedRangeSegmentation false
storeError next(iterator &it)
specifies that the field is a property
specifies a helper class for const values.