summaryrefslogtreecommitdiff
path: root/registry/inc/registry/reader.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'registry/inc/registry/reader.hxx')
-rw-r--r--registry/inc/registry/reader.hxx624
1 files changed, 0 insertions, 624 deletions
diff --git a/registry/inc/registry/reader.hxx b/registry/inc/registry/reader.hxx
deleted file mode 100644
index a867f3b1185a..000000000000
--- a/registry/inc/registry/reader.hxx
+++ /dev/null
@@ -1,624 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_registry_reader_hxx
-#define INCLUDED_registry_reader_hxx
-
-#include "registry/reader.h"
-#include "registry/refltype.hxx"
-#include "registry/types.h"
-#include "registry/version.h"
-
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-
-#include <algorithm>
-#include <new>
-
-namespace typereg {
-
-/**
- A type reader working on a binary blob that represents a UNOIDL type.
-
- <p>Instances of this class are not multi-thread&ndash;safe.</p>
-
- @since UDK 3.2.0
- */
-class Reader {
-public:
- /**
- Creates an invalid type reader.
- */
- Reader(): m_handle(0) {}
-
- /**
- Creates a type reader.
-
- <p>If the given binary blob is malformed, or of a version larger than
- <code>maxVersion</code>, the created type reader is flagged as
- invalid.</p>
-
- @param buffer the binary blob representing the type; must point to at
- least <code>length</code> bytes, and need only be byte-aligned
-
- @param length the size in bytes of the binary blob representing the type
-
- @param copy if true, the type reader creates an internal copy of the
- given buffer, and the given buffer is not accessed after this constructor
- returns; if false, the type reader works directly on the given buffer,
- which must remain available unmodified until the underlying type reader
- is destroyed (note that the lifetime of the underlying type reader can be
- different from the lifetime of this <code>Reader</code> instance)
-
- @param maxVersion the maximum binary blob version the client is prepared
- to handle; must not be negative
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- Reader(
- void const * buffer, sal_uInt32 length, bool copy,
- typereg_Version maxVersion)
- {
- if (!typereg_reader_create(buffer, length, copy, maxVersion, &m_handle))
- {
- throw std::bad_alloc();
- }
- }
-
- /**
- Shares a type reader between two <code>Reader</code> instances.
-
- @param other another <code>Reader</code> instance
- */
- Reader(Reader const & other): m_handle(other.m_handle) {
- typereg_reader_acquire(m_handle);
- }
-
- /**
- Destroys this <code>Reader</code> instance.
-
- <p>The underlying type reader is only destroyed if this instance was its
- last user.</p>
- */
- ~Reader() {
- typereg_reader_release(m_handle);
- }
-
- /**
- Replaces the underlying type reader.
-
- @param other any <code>Reader</code> instance
-
- @return this <code>Reader</code> instance
- */
- Reader & operator =(Reader const & other) {
- Reader temp(other);
- std::swap(this->m_handle, temp.m_handle);
- return *this;
- }
-
- /**
- Returns whether this type reader is valid.
-
- @return true iff this type reader is valid
- */
- bool isValid() const {
- return m_handle != 0;
- }
-
- /**
- Returns the binary blob version of this type reader.
-
- @return the version of the binary blob from which this type reader was
- constructed; if this type reader is invalid,
- <code>TYPEREG_VERSION_0</code> is returned
- */
- typereg_Version getVersion() const {
- return typereg_reader_getVersion(m_handle);
- }
-
- /**
- Returns the documentation of this type reader.
-
- @return the documentation of this type reader; if this type reader is
- invalid, an empty string is returned
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getDocumentation() const {
- rtl_uString * s = 0;
- typereg_reader_getDocumentation(m_handle, &s);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the file name of this type reader.
-
- @return the file name of this type reader; if this type reader is
- invalid, an empty string is returned
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- @deprecated
- */
- OUString getFileName() const {
- rtl_uString * s = 0;
- typereg_reader_getFileName(m_handle, &s);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the type class of this type reader.
-
- <p>This function will always return the type class without the internal
- <code>RT_TYPE_PUBLISHED</code> flag set. Use <code>isPublished</code> to
- determine whether this type reader is published.</p>
-
- @return the type class of this type reader; if this type reader is
- invalid, <code>RT_TYPE_INVALID</code> is returned
- */
- RTTypeClass getTypeClass() const {
- return typereg_reader_getTypeClass(m_handle);
- }
-
- /**
- Returns whether this type reader is published.
-
- @return whether this type reader is published; if this type reader is
- invalid, <code>false</code> is returned
- */
- bool isPublished() const {
- return typereg_reader_isPublished(m_handle);
- }
-
- /**
- Returns the type name of this type reader.
-
- @return the type name of this type reader; if this type reader is
- invalid, an empty string is returned
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getTypeName() const {
- rtl_uString * s = 0;
- typereg_reader_getTypeName(m_handle, &s);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the number of super types of this type reader.
-
- @return the number of super types of this type reader; if this type
- reader is invalid, zero is returned
- */
- sal_uInt16 getSuperTypeCount() const {
- return typereg_reader_getSuperTypeCount(m_handle);
- }
-
- /**
- Returns the type name of a super type of this type reader.
-
- @param index a valid index into the range of super types of this type
- reader
-
- @return the type name of the given super type
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getSuperTypeName(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getSuperTypeName(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the number of fields of this type reader.
-
- @return the number of fields of this type reader; if this type reader is
- invalid, zero is returned
- */
- sal_uInt16 getFieldCount() const {
- return typereg_reader_getFieldCount(m_handle);
- }
-
- /**
- Returns the documentation of a field of this type reader.
-
- @param index a valid index into the range of fields of this type reader
-
- @return the documentation of the given field
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getFieldDocumentation(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getFieldDocumentation(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the file name of a field of this type reader.
-
- @param index a valid index into the range of fields of this type reader
-
- @return the file name of the given field
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- @deprecated
- */
- OUString getFieldFileName(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getFieldFileName(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the flags of a field of this type reader.
-
- @param index a valid index into the range of fields of this type reader
-
- @return the flags of the given field
- */
- RTFieldAccess getFieldFlags(sal_uInt16 index) const {
- return typereg_reader_getFieldFlags(m_handle, index);
- }
-
- /**
- Returns the name of a field of this type reader.
-
- @param index a valid index into the range of fields of this type reader
-
- @return the name of the given field
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getFieldName(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getFieldName(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the type name of a field of this type reader.
-
- @param index a valid index into the range of fields of this type reader
-
- @return the type name of the given field
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getFieldTypeName(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getFieldTypeName(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the value of a field of this type reader.
-
- @param index a valid index into the range of fields of this type reader
-
- @return the value of the given field
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- RTConstValue getFieldValue(sal_uInt16 index) const {
- RTConstValue v;
- if (!typereg_reader_getFieldValue(
- m_handle, index, &v.m_type, &v.m_value))
- {
- throw std::bad_alloc();
- }
- return v;
- }
-
- /**
- Returns the number of methods of this type reader.
-
- @return the number of methods of this type reader; if this type reader is
- invalid, zero is returned
- */
- sal_uInt16 getMethodCount() const {
- return typereg_reader_getMethodCount(m_handle);
- }
-
- /**
- Returns the documentation of a method of this type reader.
-
- @param index a valid index into the range of methods of this type reader
-
- @return the documentation of the given method
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getMethodDocumentation(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getMethodDocumentation(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the flags of a method of this type reader.
-
- @param index a valid index into the range of methods of this type reader
-
- @return the flags of the given method
- */
- RTMethodMode getMethodFlags(sal_uInt16 index) const {
- return typereg_reader_getMethodFlags(m_handle, index);
- }
-
- /**
- Returns the name of a method of this type reader.
-
- @param index a valid index into the range of methods of this type reader
-
- @return the name of the given method
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getMethodName(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getMethodName(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the return type name of a method of this type reader.
-
- @param index a valid index into the range of methods of this type reader
-
- @return the return type name of the given method
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getMethodReturnTypeName(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getMethodReturnTypeName(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the number of parameters of a method of this type reader.
-
- @param index a valid index into the range of methods of this type reader
-
- @return the number of parameters of the given method
- */
- sal_uInt16 getMethodParameterCount(sal_uInt16 index) const {
- return typereg_reader_getMethodParameterCount(m_handle, index);
- }
-
- /**
- Returns the flags of a parameter of a method of this type reader.
-
- @param methodIndex a valid index into the range of methods of this type
- reader
-
- @param parameterIndex a valid index into the range of parameters of the
- given method
-
- @return the flags of the given method parameter
- */
- RTParamMode getMethodParameterFlags(
- sal_uInt16 methodIndex, sal_uInt16 parameterIndex) const
- {
- return typereg_reader_getMethodParameterFlags(
- m_handle, methodIndex, parameterIndex);
- }
-
- /**
- Returns the name of a parameter of a method of this type reader.
-
- @param methodIndex a valid index into the range of methods of this type
- reader
-
- @param parameterIndex a valid index into the range of parameters of the
- given method
-
- @return the name of the given method parameter
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getMethodParameterName(
- sal_uInt16 methodIndex, sal_uInt16 parameterIndex) const
- {
- rtl_uString * s = 0;
- typereg_reader_getMethodParameterName(
- m_handle, &s, methodIndex, parameterIndex);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the type name of a parameter of a method of this type reader.
-
- @param methodIndex a valid index into the range of methods of this type
- reader
-
- @param parameterIndex a valid index into the range of parameters of the
- given method
-
- @return the type name of the given method parameter
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getMethodParameterTypeName(
- sal_uInt16 methodIndex, sal_uInt16 parameterIndex) const
- {
- rtl_uString * s = 0;
- typereg_reader_getMethodParameterTypeName(
- m_handle, &s, methodIndex, parameterIndex);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the number of exceptions of a method of this type reader.
-
- @param index a valid index into the range of methods of this type reader
-
- @return the number of exceptions of the given method
- */
- sal_uInt16 getMethodExceptionCount(sal_uInt16 index) const {
- return typereg_reader_getMethodExceptionCount(m_handle, index);
- }
-
- /**
- Returns the type name of an exception of a method of this type reader.
-
- @param methodIndex a valid index into the range of methods of this type
- reader
-
- @param exceptionIndex a valid index into the range of exceptions of the
- given method
-
- @return the type name of the given method exception
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getMethodExceptionTypeName(
- sal_uInt16 methodIndex, sal_uInt16 exceptionIndex) const
- {
- rtl_uString * s = 0;
- typereg_reader_getMethodExceptionTypeName(
- m_handle, &s, methodIndex, exceptionIndex);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the number of references of this type reader.
-
- @return the number of references of this type reader; if this type reader
- is invalid, zero is returned
- */
- sal_uInt16 getReferenceCount() const {
- return typereg_reader_getReferenceCount(m_handle);
- }
-
- /**
- Returns the documentation of a reference of this type reader.
-
- @param index a valid index into the range of references of this type
- reader
-
- @return the documentation of the given reference
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getReferenceDocumentation(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getReferenceDocumentation(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
- /**
- Returns the flags of a reference of this type reader.
-
- @param index a valid index into the range of references of this type
- reader
-
- @return the flags of the given reference
- */
- RTFieldAccess getReferenceFlags(sal_uInt16 index) const {
- return typereg_reader_getReferenceFlags(m_handle, index);
- }
-
- /**
- Returns the sort of a reference of this type reader.
-
- @param index a valid index into the range of references of this type
- reader
-
- @return the sort of the given reference
- */
- RTReferenceType getReferenceSort(sal_uInt16 index) const {
- return typereg_reader_getReferenceSort(m_handle, index);
- }
-
- /**
- Returns the type name of a reference of this type reader.
-
- @param index a valid index into the range of references of this type
- reader
-
- @return the type name of the given reference
-
- @exception std::bad_alloc is raised if an out-of-memory condition occurs
- */
- OUString getReferenceTypeName(sal_uInt16 index) const {
- rtl_uString * s = 0;
- typereg_reader_getReferenceTypeName(m_handle, &s, index);
- if (s == 0) {
- throw std::bad_alloc();
- }
- return OUString(s, SAL_NO_ACQUIRE);
- }
-
-private:
- void * m_handle;
-};
-
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */