summaryrefslogtreecommitdiff
path: root/registry/inc
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2004-02-03 10:50:46 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2004-02-03 10:50:46 +0000
commita2a55e3b3cd33c0ea952d361efd2df2690162ba8 (patch)
tree75cf2018a5ccddc2cc9405f64189a0cea689c5c9 /registry/inc
parent17ba275d71d9312de98d6e3b3f1abddbe86c3524 (diff)
INTEGRATION: CWS sb10 (1.6.64); FILE MERGED
2003/12/10 09:26:45 sb 1.6.64.1: #114000# Adapted to multiple-inheritance interface types.
Diffstat (limited to 'registry/inc')
-rw-r--r--registry/inc/registry/reflwrit.hxx61
1 files changed, 59 insertions, 2 deletions
diff --git a/registry/inc/registry/reflwrit.hxx b/registry/inc/registry/reflwrit.hxx
index 0edff26f5c1d..613cc1ed4dfa 100644
--- a/registry/inc/registry/reflwrit.hxx
+++ b/registry/inc/registry/reflwrit.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: reflwrit.hxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: jsc $ $Date: 2001-11-15 18:01:32 $
+ * last change: $Author: hr $ $Date: 2004-02-03 11:50:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -107,6 +107,9 @@ struct RegistryTypeWriter_Api
sal_uInt32 (TYPEREG_CALLTYPE *getBlopSize) (TypeWriterImpl);
void (TYPEREG_CALLTYPE *setReferenceData) (TypeWriterImpl, sal_uInt16, rtl_uString*, RTReferenceType, rtl_uString*, RTFieldAccess);
+
+ TypeWriterImpl (TYPEREG_CALLTYPE *createMIEntry) (RTTypeClass, rtl_uString*, sal_uInt16, sal_uInt16, sal_uInt16, sal_uInt16);
+ void (TYPEREG_CALLTYPE *setMISuperTypeData) (TypeWriterImpl, sal_uInt16, rtl_uString*);
};
/** specifies a function pointer of the initialization function which is called to initialize
@@ -183,6 +186,27 @@ public:
sal_uInt16 methodCount,
sal_uInt16 referenceCount);
+ /** Constructor using the registry Api directly, for multiple-inheritance
+ types.
+
+ The constructor is used if the api is known.
+ @param RTTypeClass specifies the type of the new blob.
+ @param typeName specifies the full qualified type name with '/' as separator.
+ @param superTypeCount specifies the number of base types.
+ @param fieldCount specifies the number of fields (eg. number of attrbutes/properties,
+ enum values or constants).
+ @param methodCount specifies the number of methods.
+ @param referenceCount specifies the number of references (eg. number of supported interfaces,
+ exported services ...)
+ */
+ inline RegistryTypeWriter(const RegistryTypeWriter_Api* pApi,
+ RTTypeClass RTTypeClass,
+ const ::rtl::OUString& typeName,
+ sal_uInt16 superTypeCount,
+ sal_uInt16 fieldCount,
+ sal_uInt16 methodCount,
+ sal_uInt16 referenceCount);
+
/** Constructor using the loader mechanism.
This constructor is called with a RegistryTypeWriterLoader.
@@ -324,6 +348,15 @@ public:
const ::rtl::OUString& doku,
RTFieldAccess access = RT_ACCESS_INVALID);
+ /** sets the data for a base type of a multiple-inheritance type.
+
+ @param index indicates the index of the base type.
+ @param name specifies the full qualified type name of the base type
+ with '/' as separator.
+ */
+ inline void setMISuperTypeData( sal_uInt16 index,
+ const ::rtl::OUString& name);
+
protected:
/// stores the registry type writer Api.
@@ -355,6 +388,24 @@ inline RegistryTypeWriter::RegistryTypeWriter(const RegistryTypeWriter_Api* pApi
referenceCount);
}
+inline RegistryTypeWriter::RegistryTypeWriter(const RegistryTypeWriter_Api* pApi,
+ RTTypeClass RTTypeClass,
+ const ::rtl::OUString& typeName,
+ sal_uInt16 superTypeCount,
+ sal_uInt16 fieldCount,
+ sal_uInt16 methodCount,
+ sal_uInt16 referenceCount)
+ : m_pApi(pApi)
+ , m_Api()
+ , m_hImpl(NULL)
+{
+ m_hImpl = m_pApi->createMIEntry(RTTypeClass,
+ typeName.pData,
+ superTypeCount,
+ fieldCount,
+ methodCount,
+ referenceCount);
+}
inline RegistryTypeWriter::RegistryTypeWriter(const RegistryTypeWriterLoader& rLoader,
RTTypeClass RTTypeClass,
@@ -477,4 +528,10 @@ inline void RegistryTypeWriter::setReferenceData( sal_uInt16 inde
m_pApi->setReferenceData(m_hImpl, index, name.pData, refType, doku.pData, access);
}
+inline void RegistryTypeWriter::setMISuperTypeData( sal_uInt16 index,
+ const ::rtl::OUString& name)
+{
+ m_pApi->setMISuperTypeData(m_hImpl, index, name.pData);
+}
+
#endif