summaryrefslogtreecommitdiff
path: root/codemaker/source/cppumaker/cpputype.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'codemaker/source/cppumaker/cpputype.hxx')
-rw-r--r--codemaker/source/cppumaker/cpputype.hxx378
1 files changed, 9 insertions, 369 deletions
diff --git a/codemaker/source/cppumaker/cpputype.hxx b/codemaker/source/cppumaker/cpputype.hxx
index 9d92a014b8bd..fd254b06ca65 100644
--- a/codemaker/source/cppumaker/cpputype.hxx
+++ b/codemaker/source/cppumaker/cpputype.hxx
@@ -20,379 +20,19 @@
#ifndef INCLUDED_CODEMAKER_SOURCE_CPPUMAKER_CPPUTYPE_HXX
#define INCLUDED_CODEMAKER_SOURCE_CPPUMAKER_CPPUTYPE_HXX
-#include "codemaker/dependencies.hxx"
-#include "codemaker/options.hxx"
-#include "codemaker/typemanager.hxx"
-#include "codemaker/commoncpp.hxx"
-#include "registry/reader.hxx"
-#include "registry/types.h"
-#include "rtl/ref.hxx"
-#include "rtl/string.hxx"
-
-namespace codemaker {
- namespace cppumaker { class Includes; }
- struct ExceptionTreeNode;
- class GeneratedTypeSet;
-}
+#include "sal/config.h"
-enum CppuTypeDecl
-{
- CPPUTYPEDECL_ALLTYPES,
- CPPUTYPEDECL_NOINTERFACES,
- CPPUTYPEDECL_ONLYINTERFACES
-};
+#include "rtl/ref.hxx"
+namespace codemaker { class GeneratedTypeSet; }
+namespace rtl { class OUString; }
class CppuOptions;
-class FileStream;
-
-class CppuType
-{
-public:
- CppuType(typereg::Reader& typeReader,
- const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr);
-
- virtual ~CppuType();
-
- virtual sal_Bool dump(CppuOptions* pOptions) throw( CannotDumpException );
- sal_Bool dumpFile(CppuOptions* pOptions,
- const OString& sExtension,
- const OString& sName,
- const OString& sOutPath )
- throw( CannotDumpException );
- void dumpDependedTypes(
- codemaker::GeneratedTypeSet & generated, CppuOptions * options);
- virtual sal_Bool dumpHFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException ) = 0;
- virtual sal_Bool dumpHxxFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException ) = 0;
-
- OString dumpHeaderDefine(
- FileStream& o, char const * prefix, sal_Bool bExtended=sal_False);
-
- void dumpGetCppuType(FileStream & out);
- virtual void dumpLightGetCppuType(FileStream& o);
- virtual void dumpNormalGetCppuType(FileStream& o);
- virtual void dumpComprehensiveGetCppuType(FileStream& o);
-
- virtual void dumpType(FileStream& o, const OString& type, bool bConst=false,
- bool bRef=false, bool bNative=false, bool cppuUnoType=false)
- const throw( CannotDumpException );
- OString getTypeClass(const OString& type="", sal_Bool bCStyle=sal_False);
- void dumpCppuGetType(FileStream& o, const OString& type, sal_Bool bDecl=sal_False, CppuTypeDecl eDeclFlag=CPPUTYPEDECL_ALLTYPES);
-
- OString typeToIdentifier(const OString& type);
-
- void dumpConstantValue(FileStream& o, sal_uInt16 index);
-
- virtual sal_uInt32 getMemberCount();
- virtual sal_uInt32 getInheritedMemberCount();
-
- void inc(sal_Int32 num=4);
- void dec(sal_Int32 num=4);
- OString indent() const;
-protected:
- virtual sal_uInt32 checkInheritedMemberCount(
- const typereg::Reader* pReader);
-
- bool passByReference(OString const & unoType);
-
- OString resolveTypedefs(const OString& type) const;
- OString checkRealBaseType(const OString& type, sal_Bool bResolveTypeOnly = sal_False) const;
- void dumpCppuGetTypeMemberDecl(FileStream& o, CppuTypeDecl eDeclFlag);
-
- codemaker::cpp::IdentifierTranslationMode isGlobal() const;
-
- virtual void dumpDeclaration(FileStream & out) throw (CannotDumpException);
-
- virtual void addSpecialDependencies() {}
-
- virtual bool dumpFiles(CppuOptions * options, OString const & outPath);
-
- virtual void addLightGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
- virtual void addNormalGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
- virtual void addComprehensiveGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
- virtual bool isPolymorphic() const;
-
- virtual void dumpTemplateHead(FileStream & out) const;
-
- virtual void dumpTemplateParameters(FileStream & out) const;
-
- void dumpGetCppuTypePreamble(FileStream & out);
-
- void dumpGetCppuTypePostamble(FileStream & out);
-
- void addDefaultHIncludes(codemaker::cppumaker::Includes & includes) const;
- void addDefaultHxxIncludes(codemaker::cppumaker::Includes & includes) const;
-
- void dumpInitializer(
- FileStream & out, bool parameterized, OUString const & type) const;
-
- void dumpHFileContent(
- FileStream & out, codemaker::cppumaker::Includes & includes);
-
-protected:
- sal_uInt32 m_inheritedMemberCount;
-
- bool m_cppuTypeLeak;
- bool m_cppuTypeDynamic;
- sal_Int32 m_indentLength;
- OString m_typeName;
- OString m_name;
- typereg::Reader m_reader;
- rtl::Reference< TypeManager > m_typeMgr;
- codemaker::Dependencies m_dependencies;
-
-private:
- void addGetCppuTypeIncludes(codemaker::cppumaker::Includes & includes)
- const;
-};
-
-class InterfaceType : public CppuType
-{
-public:
- InterfaceType(typereg::Reader& typeReader,
- const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr);
-
- virtual ~InterfaceType();
-
- virtual void dumpDeclaration(FileStream& o) throw( CannotDumpException );
- sal_Bool dumpHFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
- sal_Bool dumpHxxFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
-
- void dumpAttributes(FileStream& o);
- void dumpMethods(FileStream& o);
- void dumpNormalGetCppuType(FileStream& o);
- void dumpComprehensiveGetCppuType(FileStream& o);
- void dumpCppuAttributeRefs(FileStream& o, sal_uInt32& index);
- void dumpCppuMethodRefs(FileStream& o, sal_uInt32& index);
- void dumpCppuAttributes(FileStream& o, sal_uInt32& index);
- void dumpCppuMethods(FileStream& o, sal_uInt32& index);
- void dumpAttributesCppuDecl(FileStream& o, StringSet* pFinishedTypes, CppuTypeDecl eDeclFlag);
- void dumpMethodsCppuDecl(FileStream& o, StringSet* pFinishedTypes, CppuTypeDecl eDeclFlag );
-
- sal_uInt32 getMemberCount();
- sal_uInt32 getInheritedMemberCount();
-
-protected:
- virtual void addSpecialDependencies();
-
- virtual void addComprehensiveGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
- sal_uInt32 checkInheritedMemberCount(const typereg::Reader* pReader);
-
-protected:
- sal_uInt32 m_inheritedMemberCount;
- bool m_hasAttributes;
- bool m_hasMethods;
- bool m_isDeprecated;
-
-private:
- void dumpExceptionSpecification(
- FileStream & out, sal_uInt32 methodIndex, bool runtimeException);
-
- void dumpAttributeExceptionSpecification(
- FileStream & out, OUString const & name, RTMethodMode sort);
-
- void dumpExceptionTypeName(
- FileStream & out, char const * prefix, sal_uInt32 index,
- OUString name);
-
- sal_Int32 dumpExceptionTypeNames(
- FileStream & out, char const * prefix, sal_uInt16 methodIndex,
- bool runtimeException);
-
- sal_Int32 dumpAttributeExceptionTypeNames(
- FileStream & out, char const * prefix, OUString const & name,
- RTMethodMode sort);
-};
-
-class ConstantsType : public CppuType
-{
-public:
- ConstantsType(typereg::Reader& typeReader,
- const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr);
-
- virtual ~ConstantsType();
-
- virtual sal_Bool dump(CppuOptions* pOptions) throw( CannotDumpException );
-
- virtual void dumpDeclaration(FileStream& o) throw( CannotDumpException );
- sal_Bool dumpHFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
- sal_Bool dumpHxxFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
- sal_Bool hasConstants();
-};
-
-class ModuleType : public ConstantsType
-{
-public:
- ModuleType(typereg::Reader& typeReader,
- const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr);
-
- virtual ~ModuleType();
-
-protected:
- virtual bool dumpFiles(CppuOptions * options, OString const & outPath);
-};
-
-class StructureType : public CppuType
-{
-public:
- StructureType(typereg::Reader& typeReader,
- const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr);
-
- virtual ~StructureType();
-
- virtual void dumpDeclaration(FileStream& o) throw( CannotDumpException );
- sal_Bool dumpHFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
- sal_Bool dumpHxxFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
-
- virtual void dumpLightGetCppuType(FileStream & out);
-
- virtual void dumpNormalGetCppuType(FileStream & out);
-
- virtual void dumpComprehensiveGetCppuType(FileStream & out);
-
- sal_Bool dumpSuperMember(FileStream& o, const OString& super, sal_Bool bWithType);
-
-protected:
- virtual void addLightGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
- virtual void addNormalGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
- virtual void addComprehensiveGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
- virtual bool isPolymorphic() const;
-
- virtual void dumpTemplateHead(FileStream & out) const;
-
- virtual void dumpTemplateParameters(FileStream & out) const;
-};
-
-class ExceptionType : public CppuType
-{
-public:
- ExceptionType(typereg::Reader& typeReader,
- const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr);
-
- virtual ~ExceptionType();
-
- virtual void dumpDeclaration(FileStream& o) throw( CannotDumpException );
- sal_Bool dumpHFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
- sal_Bool dumpHxxFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
-
- sal_Bool dumpSuperMember(FileStream& o, const OString& super, sal_Bool bWithType);
-};
-
-class EnumType : public CppuType
-{
-public:
- EnumType(typereg::Reader& typeReader,
- const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr);
-
- virtual ~EnumType();
-
- virtual void dumpDeclaration(FileStream& o) throw( CannotDumpException );
- sal_Bool dumpHFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
- sal_Bool dumpHxxFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
-
- void dumpNormalGetCppuType(FileStream& o);
- void dumpComprehensiveGetCppuType(FileStream& o);
-};
-
-class TypeDefType : public CppuType
-{
-public:
- TypeDefType(typereg::Reader& typeReader,
- const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr);
-
- virtual ~TypeDefType();
-
- virtual void dumpDeclaration(FileStream& o) throw( CannotDumpException );
- sal_Bool dumpHFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
- sal_Bool dumpHxxFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
-};
-
-class ConstructiveType: public CppuType {
-public:
- ConstructiveType(
- typereg::Reader & reader, OString const & name,
- rtl::Reference< TypeManager > const & manager):
- CppuType(reader, name, manager) {}
-
- virtual sal_Bool dumpHFile(
- FileStream & o, codemaker::cppumaker::Includes & includes)
- throw (CannotDumpException);
-
-protected:
- virtual bool dumpFiles(CppuOptions * options, OString const & outPath);
-};
-
-class ServiceType: public ConstructiveType {
-public:
- ServiceType(
- typereg::Reader & reader, OString const & name,
- rtl::Reference< TypeManager > const & manager):
- ConstructiveType(reader, name, manager) {}
-
- bool isSingleInterfaceBased();
-
- virtual sal_Bool dumpHxxFile(
- FileStream & o, codemaker::cppumaker::Includes & includes)
- throw (CannotDumpException);
-
-private:
- virtual void addSpecialDependencies();
-
- bool isDefaultConstructor(sal_uInt16 ctorIndex) const;
-
- bool hasRestParameter(sal_uInt16 ctorIndex) const;
-
- void dumpCatchClauses(
- FileStream & out, codemaker::ExceptionTreeNode const * node);
-};
-
-class SingletonType: public ConstructiveType {
-public:
- SingletonType(
- typereg::Reader & reader, OString const & name,
- rtl::Reference< TypeManager > const & manager):
- ConstructiveType(reader, name, manager) {}
-
- bool isInterfaceBased();
-
- virtual sal_Bool dumpHxxFile(
- FileStream & o, codemaker::cppumaker::Includes & includes)
- throw (CannotDumpException);
-};
-
-bool produceType(const OString& typeName,
- rtl::Reference< TypeManager > const & typeMgr,
- codemaker::GeneratedTypeSet & generated,
- CppuOptions* pOptions)
- throw( CannotDumpException );
+class TypeManager;
-bool produceType(RegistryKey& typeName, bool bIsExtraType,
- rtl::Reference< TypeManager > const & typeMgr,
- codemaker::GeneratedTypeSet & generated,
- CppuOptions* pOptions)
- throw( CannotDumpException );
+void produce(
+ rtl::OUString const & name, rtl::Reference< TypeManager > const & manager,
+ codemaker::GeneratedTypeSet & generated, CppuOptions const & options);
-#endif // INCLUDED_CODEMAKER_SOURCE_CPPUMAKER_CPPUTYPE_HXX
+#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */