summaryrefslogtreecommitdiff
path: root/codemaker
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2010-10-16 03:38:17 -0500
committerNorbert Thiebaud <nthiebaud@gmail.com>2010-10-25 19:55:39 -0500
commit6991ea8f40cac8887e3a350b984112d4147d83f2 (patch)
tree685f61aa81d2e3546e9a424ee200b76f2fb3715d /codemaker
parent0e20364de4e991507617ae39e346263554703c70 (diff)
kill bonobo-related code in the codemaker
Diffstat (limited to 'codemaker')
-rw-r--r--codemaker/source/bonobowrappermaker/corbamaker.cxx239
-rw-r--r--codemaker/source/bonobowrappermaker/corbaoptions.cxx259
-rw-r--r--codemaker/source/bonobowrappermaker/corbaoptions.hxx54
-rw-r--r--codemaker/source/bonobowrappermaker/corbatype.cxx2784
-rw-r--r--codemaker/source/bonobowrappermaker/corbatype.hxx312
-rw-r--r--codemaker/source/bonobowrappermaker/makefile.mk62
6 files changed, 0 insertions, 3710 deletions
diff --git a/codemaker/source/bonobowrappermaker/corbamaker.cxx b/codemaker/source/bonobowrappermaker/corbamaker.cxx
deleted file mode 100644
index 85221b53f9ec..000000000000
--- a/codemaker/source/bonobowrappermaker/corbamaker.cxx
+++ /dev/null
@@ -1,239 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_codemaker.hxx"
-
-#include <stdio.h>
-
-#include "sal/main.h"
-
-#include <codemaker/typemanager.hxx>
-#include <codemaker/dependency.hxx>
-
-#include "corbaoptions.hxx"
-#include "corbatype.hxx"
-
-using namespace rtl;
-
-sal_Bool produceAllTypes(const OString& typeName,
- TypeManager& typeMgr,
- TypeDependency& typeDependencies,
- CorbaOptions* pOptions,
- sal_Bool bFullScope,
- FileStream& o,
- TypeSet* pAllreadyDumped,
- TypeSet* generatedConversion)
-
- throw( CannotDumpException )
-{
- if (!produceType(typeName, typeMgr, typeDependencies, pOptions, o, pAllreadyDumped, generatedConversion))
- {
- fprintf(stderr, "%s ERROR: %s\n",
- pOptions->getProgramName().getStr(),
- OString("cannot dump Type '" + typeName + "'").getStr());
- exit(99);
- }
-
- RegistryKey typeKey = typeMgr.getTypeKey(typeName);
- RegistryKeyNames subKeys;
-
- if (typeKey.getKeyNames(OUString(), subKeys))
- return sal_False;
-
- OString tmpName;
- for (sal_uInt32 i=0; i < subKeys.getLength(); i++)
- {
- tmpName = OUStringToOString(subKeys.getElement(i), RTL_TEXTENCODING_UTF8);
-
- if (pOptions->isValid("-B"))
- tmpName = tmpName.copy(tmpName.indexOf('/', 1) + 1);
- else
- tmpName = tmpName.copy(1);
-
- if (bFullScope)
- {
- if (!produceAllTypes(tmpName, typeMgr, typeDependencies, pOptions, sal_True, o, pAllreadyDumped, generatedConversion))
- return sal_False;
- } else
- {
- if (!produceType(tmpName, typeMgr, typeDependencies, pOptions, o, pAllreadyDumped, generatedConversion))
- return sal_False;
- }
- }
-
- return sal_True;
-}
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
-{
- CorbaOptions options;
-
- try
- {
- if (!options.initOptions(argc, argv))
- {
- exit(1);
- }
- }
- catch( IllegalArgument& e)
- {
- fprintf(stderr, "Illegal option: %s\n", e.m_message.getStr());
- exit(99);
- }
-
- RegistryTypeManager typeMgr;
- TypeDependency typeDependencies;
-
- if (!typeMgr.init(!options.isValid("-T"), options.getInputFiles()))
- {
- fprintf(stderr, "%s : init registries failed, check your registry files.\n", options.getProgramName().getStr());
- exit(99);
- }
-
- if (options.isValid("-B"))
- {
- typeMgr.setBase(options.getOption("-B"));
- }
-
- try
- {
- TypeSet generatedConversion;
- FileStream cppFile;
- OString outPath;
- if (options.isValid("-O"))
- outPath = options.getOption("-O");
-
- cppFile.open(outPath);
-
- if(!cppFile.isValid())
- {
- OString message("cannot open ");
- message += outPath + " for writing";
- throw CannotDumpException(message);
- }
-
- if (options.isValid("-H"))
- {
- OString corbaHeader = options.getOption("-H");
-
- cppFile << "#include <"
- << corbaHeader
- << ">\n\n";
-
- CorbaType::dumpDefaultHxxIncludes(cppFile);
- cppFile << "\n";
- }
-
- if (options.isValid("-T"))
- {
- OString tOption(options.getOption("-T"));
-
- OString typeName, tmpName;
- sal_Bool ret = sal_False;
- sal_Int32 nIndex = 0;
- do
- {
- typeName = tOption.getToken(0, ';', nIndex);
-
- sal_Int32 nPos = typeName.lastIndexOf( '.' );
- tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
- if (tmpName == "*")
- {
- // produce this type and his scope, but the scope is not recursively generated.
- if (typeName.equals("*"))
- {
- tmpName = "/";
- } else
- {
- tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
- if (tmpName.getLength() == 0)
- tmpName = "/";
- else
- tmpName.replace('.', '/');
- }
- ret = produceAllTypes(tmpName, typeMgr, typeDependencies, &options, sal_False, cppFile, NULL, &generatedConversion);
- } else
- {
- // produce only this type
- ret = produceType(typeName.replace('.', '/'), typeMgr, typeDependencies, &options, cppFile, NULL, &generatedConversion);
- }
-
- if (!ret)
- {
- fprintf(stderr, "%s ERROR: %s\n",
- options.getProgramName().getStr(),
- OString("cannot dump Type '" + typeName + "'").getStr());
- exit(99);
- }
- } while( nIndex != -1 );
- } else
- {
- // produce all types
- if (!produceAllTypes("/", typeMgr, typeDependencies, &options, sal_True, cppFile, NULL, &generatedConversion))
- {
- fprintf(stderr, "%s ERROR: %s\n",
- options.getProgramName().getStr(),
- "an error occurs while dumping all types.");
- exit(99);
- }
- }
-
- cppFile << "namespace bonobobridge {\n"
- << "const ConversionInfo* get_conversion_functions() {\n"
- << " static ConversionInfo allFunctions[" << generatedConversion.size()+1<< "] = {\n";
-
- for (TypeSet::iterator iter = generatedConversion.begin(); iter != generatedConversion.end(); iter++)
- {
- cppFile << " {\"" << (*iter).getStr() << "\""
- << ", &TC_" << (*iter).replace('/','_').getStr() << "_struct"
- << ", sizeof(" << (*iter).replace('/','_').getStr() << ")"
- << ", convert_b2u_" << (*iter).replace('/','_').getStr()
- << ", convert_u2b_" << (*iter).replace('/','_').getStr()
- << " },\n";
- }
-
- cppFile << " {NULL, NULL, 0 , NULL, NULL} };\n"
- << " return allFunctions;\n"
- << "}\n"
- << "}; // namespace bonobobridge\n";
-
- cppFile.close();
- }
- catch( CannotDumpException& e)
- {
- fprintf(stderr, "%s ERROR: %s\n",
- options.getProgramName().getStr(),
- e.m_message.getStr());
- exit(99);
- }
-
- return 0;
-}
-
-
diff --git a/codemaker/source/bonobowrappermaker/corbaoptions.cxx b/codemaker/source/bonobowrappermaker/corbaoptions.cxx
deleted file mode 100644
index e8d5362dd1f0..000000000000
--- a/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+++ /dev/null
@@ -1,259 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_codemaker.hxx"
-#include <stdio.h>
-
-#include "corbaoptions.hxx"
-
-using namespace rtl;
-
-sal_Bool CorbaOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile)
- throw( IllegalArgument )
-{
- sal_Bool ret = sal_True;
- sal_uInt16 i=0;
-
- if (!bCmdFile)
- {
- bCmdFile = sal_True;
-
- m_program = av[0];
-
- if (ac < 2)
- {
- fprintf(stderr, "%s", prepareHelp().getStr());
- ret = sal_False;
- }
-
- i = 1;
- } else
- {
- i = 0;
- }
-
- char *s=NULL;
- for (i; i < ac; i++)
- {
- if (av[i][0] == '-')
- {
- switch (av[i][1])
- {
- case 'O':
- if (av[i][2] == '\0')
- {
- if (i < ac - 1 && av[i+1][0] != '-')
- {
- i++;
- s = av[i];
- } else
- {
- OString tmp("'-O', please check");
- if (i <= ac - 1)
- {
- tmp += " your input '" + OString(av[i+1]) + "'";
- }
-
- throw IllegalArgument(tmp);
- }
- } else
- {
- s = av[i] + 2;
- }
-
- m_options["-O"] = OString(s);
- break;
- case 'H':
- if (av[i][2] == '\0')
- {
- if (i < ac - 1 && av[i+1][0] != '-')
- {
- i++;
- s = av[i];
- } else
- {
- OString tmp("'-H', please check");
- if (i <= ac - 1)
- {
- tmp += " your input '" + OString(av[i+1]) + "'";
- }
-
- throw IllegalArgument(tmp);
- }
- } else
- {
- s = av[i] + 2;
- }
-
- m_options["-H"] = OString(s);
- break;
- case 'B':
- if (av[i][2] == '\0')
- {
- if (i < ac - 1 && av[i+1][0] != '-')
- {
- i++;
- s = av[i];
- } else
- {
- OString tmp("'-B', please check");
- if (i <= ac - 1)
- {
- tmp += " your input '" + OString(av[i+1]) + "'";
- }
-
- throw IllegalArgument(tmp);
- }
- } else
- {
- s = av[i] + 2;
- }
-
- m_options["-B"] = OString(s);
- break;
- case 'T':
- if (av[i][2] == '\0')
- {
- if (i < ac - 1 && av[i+1][0] != '-')
- {
- i++;
- s = av[i];
- } else
- {
- OString tmp("'-T', please check");
- if (i <= ac - 1)
- {
- tmp += " your input '" + OString(av[i+1]) + "'";
- }
-
- throw IllegalArgument(tmp);
- }
- } else
- {
- s = av[i] + 2;
- }
-
- if (m_options.count("-T") > 0)
- {
- OString tmp(m_options["-T"]);
- tmp = tmp + ";" + s;
- m_options["-T"] = tmp;
- } else
- {
- m_options["-T"] = OString(s);
- }
- break;
- case 'G':
- if (av[i][2] != '\0')
- {
- OString tmp("'-G', please check");
- if (i <= ac - 1)
- {
- tmp += " your input '" + OString(av[i]) + "'";
- }
-
- throw IllegalArgument(tmp);
- }
-
- m_options["-G"] = OString("");
- break;
- default:
- throw IllegalArgument("the option is unknown" + OString(av[i]));
- break;
- }
- } else
- {
- if (av[i][0] == '@')
- {
- FILE* cmdFile = fopen(av[i]+1, "r");
- if( cmdFile == NULL )
- {
- fprintf(stderr, "%s", prepareHelp().getStr());
- ret = sal_False;
- } else
- {
- int rargc=0;
- char* rargv[512];
- char buffer[512];
-
- while ( fscanf(cmdFile, "%s", buffer) != EOF )
- {
- rargv[rargc]= strdup(buffer);
- rargc++;
- }
- fclose(cmdFile);
-
- ret = initOptions(rargc, rargv, bCmdFile);
-
- for (long i=0; i < rargc; i++)
- {
- free(rargv[i]);
- }
- }
- } else
- {
- m_inputFiles.push_back(av[i]);
- }
- }
- }
- printf("-T: %s\n", m_options["-T"].getStr());
-
- return ret;
-}
-
-OString CorbaOptions::prepareHelp()
-{
- OString help("\nusing: ");
- help += m_program + " [-options] file_1 ... file_n\nOptions:\n";
- help += " -O<file> = file name for the generated output.\n";
- help += " The output directory tree is generated under this directory.\n";
- help += " -T<name> = name specifies a type or a list of types. The output for this\n";
- help += " [t1;...] type is generated. If no '-T' option is specified,\n";
- help += " then output for all types is generated.\n";
- help += " Example: 'com.sun.star.uno.XInterface' is a valid type.\n";
- help += " -B<name> = name specifies the base node. All types are searched under this\n";
- help += " node. Default is the root '/' of the registry files.\n";
- help += " -G = generate only target files which does not exists.\n";
- help += " -H<header> = include CORBA generated <header>.\n";
- help += prepareVersion();
-
- return help;
-}
-
-OString CorbaOptions::prepareVersion()
-{
- OString version("\nSun Microsystems (R) ");
- version += m_program + " Version 2.0\n\n";
-
- return version;
-}
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/codemaker/source/bonobowrappermaker/corbaoptions.hxx b/codemaker/source/bonobowrappermaker/corbaoptions.hxx
deleted file mode 100644
index 59cdf9e238db..000000000000
--- a/codemaker/source/bonobowrappermaker/corbaoptions.hxx
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _CORBAMAKER_CPPUOPTIONS_HXX_
-#define _CORBAMAKER_CPPUOPTIONS_HXX_
-
-#include <codemaker/options.hxx>
-
-class CorbaOptions : public Options
-{
-public:
- CorbaOptions()
- : Options() {}
-
- ~CorbaOptions() {}
-
- sal_Bool initOptions(int ac, char* av[], sal_Bool bCmdFile=sal_False)
- throw( IllegalArgument );
-
- ::rtl::OString prepareHelp();
-
- ::rtl::OString prepareVersion();
-
-protected:
-};
-
-#endif // _CORBAMAKER_CPPUOPTIONS_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/codemaker/source/bonobowrappermaker/corbatype.cxx b/codemaker/source/bonobowrappermaker/corbatype.cxx
deleted file mode 100644
index 9b1716e6daa6..000000000000
--- a/codemaker/source/bonobowrappermaker/corbatype.cxx
+++ /dev/null
@@ -1,2784 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_codemaker.hxx"
-
-#include <stdio.h>
-#include <rtl/alloc.h>
-#include <rtl/ustring.hxx>
-#include <rtl/strbuf.hxx>
-
-#include "corbatype.hxx"
-#include "corbaoptions.hxx"
-
-#include <hash_set>
-#include <list>
-
-using namespace rtl;
-
-
-//*************************************************************************
-// CorbaType
-//*************************************************************************
-CorbaType::CorbaType(TypeReader& typeReader,
- const OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions)
- : m_inheritedMemberCount(0)
- , m_indentLength(0)
- , m_typeName(typeName)
- , m_reader(typeReader)
- , m_typeMgr((TypeManager&)typeMgr)
- , m_dependencies(typeDependencies)
- , m_generatedConversions(generatedConversions)
-{
- sal_Int32 i = typeName.lastIndexOf('/');
- m_name = typeName.copy( i != -1 ? i+1 : 0 );
-}
-
-CorbaType::~CorbaType()
-{
-
-}
-
-sal_Bool CorbaType::isNestedTypeByName(const ::rtl::OString& type)
-{
- sal_Bool ret = sal_False;
-
- sal_Int32 i = type.lastIndexOf('/');
-
- if (i >= 0)
- {
- OString outerTypeName(type.copy(0, i));
- ret = (m_typeMgr.getTypeClass(outerTypeName) == RT_TYPE_INTERFACE);
- }
-
- return ret;
-}
-
-sal_Bool CorbaType::dump(CorbaOptions* pOptions, FileStream& o, TypeSet* allreadyDumped)
- throw( CannotDumpException )
-{
- sal_Bool ret = sal_False;
-
- ret = dumpConversionFunctions(o, allreadyDumped);
-
- return ret;
-}
-
-sal_Bool CorbaType::dumpDependedTypes(CorbaOptions* pOptions, FileStream& o, TypeSet* allreadyDumped)
- throw( CannotDumpException )
-{
- sal_Bool ret = sal_True;
-
- TypeUsingSet usingSet(m_dependencies.getDependencies(m_typeName));
-
- TypeUsingSet::const_iterator iter = usingSet.begin();
- OString typeName;
- sal_uInt32 index = 0;
- while (iter != usingSet.end())
- {
- typeName = (*iter).m_type;
- if ((index = typeName.lastIndexOf(']')) > 0)
- typeName = typeName.copy(index + 1);
-
- if (getUnoBaseType(typeName).getLength() == 0)
- {
- if (!produceType(typeName,
- m_typeMgr,
- m_dependencies,
- pOptions,
- o, allreadyDumped, m_generatedConversions))
- {
- fprintf(stderr, "%s ERROR: %s\n",
- pOptions->getProgramName().getStr(),
- OString("cannot dump Type '" + typeName + "'").getStr());
- exit(99);
- }
- }
- ++iter;
- }
-
- return ret;
-}
-
-sal_Bool CorbaType::dumpConversionFunctions(FileStream& o, TypeSet* allreadyDumped)
- throw( CannotDumpException )
-{
- if (m_typeName.lastIndexOf(']') < 0)
- {
- dumpInclude(o, allreadyDumped, m_typeName, "hpp", sal_False);
- dumpDepIncludes(o, allreadyDumped, m_typeName, "hpp");
-
- dumpFunctions(o);
- }
-
- return sal_True;
-}
-
-
-void CorbaType::dumpDefaultHxxIncludes(FileStream& o)
-{
- o << "#ifndef _OSL_MUTEX_HXX_\n"
- << "#include <osl/mutex.hxx>\n"
- << "#endif\n\n";
-
- o << "#ifndef _RTL_USTRING_HXX_\n"
- << "#include <rtl/ustring.hxx>\n"
- << "#endif\n\n";
-
- o << "#ifndef _COM_SUN_STAR_UNO_TYPE_HXX_\n"
- << "#include <com/sun/star/uno/Type.hxx>\n"
- << "#endif\n";
-
- o << "#ifndef _COM_SUN_STAR_UNO_ANY_HXX_\n"
- << "#include <com/sun/star/uno/Any.hxx>\n"
- << "#endif\n";
-
- o << "#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_\n"
- << "#include <com/sun/star/uno/Reference.hxx>\n"
- << "#endif\n";
-
- o << "#ifndef _COM_SUN_STAR_UNO_XINTERFACE_HPP_\n"
- << "#include <com/sun/star/uno/XInterface.hpp>\n"
- << "#endif\n";
-
- o << "#ifndef _BONOBO_NULLINTERFACE_HPP_\n"
- << "#include <Bonobo/NullInterface.hpp>\n"
- << "#endif\n";
-
- o << "#ifndef _COM_SUN_STAR_UNO_EXCEPTION_HPP_\n"
- << "#include <com/sun/star/uno/Exception.hpp>\n"
- << "#endif\n";
-
- o << "#ifndef _COM_SUN_STAR_UNO_RUNTIMEEXCEPTION_HPP_\n"
- << "#include <com/sun/star/uno/RuntimeException.hpp>\n"
- << "#endif\n";
-
- o << "#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_\n"
- << "#include <com/sun/star/uno/Sequence.hxx>\n"
- << "#endif\n";
-}
-
-
-void CorbaType::dumpInclude(FileStream& o, TypeSet* allreadyDumped, const OString& typeName, sal_Char* prefix, sal_Bool bExtended, sal_Bool bCaseSensitive)
-{
- OString realTypeName = checkRealBaseType( typeName );
-
- if (!isNestedTypeByName(typeName) &&
- (BT_INVALID == isBaseType(realTypeName)) &&
- !realTypeName.equals("Bonobo/NullInterface") &&
- !realTypeName.equals("com/sun/star/uno/XInterface") &&
- !realTypeName.equals("com/sun/star/uno/TypeClass") &&
- !realTypeName.equals("com/sun/star/uno/Type") &&
- !realTypeName.equals("com/sun/star/uno/Exception") &&
- !realTypeName.equals("com/sun/star/uno/RuntimeException"))
- {
- TypeSet::const_iterator iter = allreadyDumped->find(realTypeName);
-
- if (iter == allreadyDumped->end())
- {
- allreadyDumped->insert(realTypeName);
-
- sal_uInt32 length = 3+ m_typeName.getLength() + strlen(prefix);
-
- if (bExtended)
- length += m_name.getLength() + 1;
-
- OStringBuffer tmpBuf(length);
-
- tmpBuf.append('_');
- tmpBuf.append(typeName);
- tmpBuf.append('_');
- if (bExtended)
- {
- tmpBuf.append(m_name);
- tmpBuf.append('_');
- }
- tmpBuf.append(prefix);
- tmpBuf.append('_');
-
- OString tmp(tmpBuf.makeStringAndClear().replace('/', '_').toAsciiUpperCase());
-
- length = 1 + typeName.getLength() + strlen(prefix);
- if (bExtended)
- length += m_name.getLength() + 1;
-
- tmpBuf.ensureCapacity(length);
- tmpBuf.append(typeName);
- if (bExtended)
- {
- tmpBuf.append('/');
- tmpBuf.append(m_name);
- }
- tmpBuf.append('.');
- tmpBuf.append(prefix);
-
- o << "#ifndef " << tmp << "\n#include <";
- if (bCaseSensitive)
- {
- o << tmpBuf.makeStringAndClear();
- } else
- {
- o << tmpBuf.makeStringAndClear();
- }
-
- o << ">\n";
- o << "#endif\n";
-
- o << "namespace bonobobridge {\n\n";
-
- std::list<OString> nestedTypes;
-
- do
- {
- if ((realTypeName.lastIndexOf(']') < 0) &&
- (BT_INVALID == isBaseType(realTypeName)) &&
- !realTypeName.equals("Bonobo/NullInterface") &&
- !realTypeName.equals("com/sun/star/uno/XInterface") &&
- !realTypeName.equals("com/sun/star/uno/TypeClass") &&
- !realTypeName.equals("com/sun/star/uno/Type") &&
- !realTypeName.equals("com/sun/star/uno/Exception") &&
- !realTypeName.equals("com/sun/star/uno/RuntimeException") &&
- !realTypeName.equals("com/sun/star/uno/TypeClass"))
- {
- o << "inline sal_Bool cpp_convert_b2u(";
- dumpUnoType(o, realTypeName, sal_False, sal_True);
- o << " u, ";
- dumpCorbaType(o, realTypeName, sal_True, sal_True);
- o << " b, const ::vos::ORef< ::bonobobridge::Bridge >& bridge);\n";
- o << "inline sal_Bool cpp_convert_u2b(";
- dumpCorbaType(o, realTypeName, sal_False, sal_True);
- o << " b, ";
- dumpUnoType(o, realTypeName, sal_True, sal_True);
- o << " u, const ::vos::ORef< ::bonobobridge::Bridge >& bridge);\n";
- }
-
- RegistryKey key = m_typeMgr.getTypeKey(realTypeName);
- RegistryKeyNames nestedTypeNames;
- key.getKeyNames(OUString(), nestedTypeNames);
- for (sal_uInt32 i = 0; i < nestedTypeNames.getLength(); i++)
- {
- OString nTypeName(OUStringToOString(nestedTypeNames.getElement(i), RTL_TEXTENCODING_UTF8));
-
- nTypeName = checkRealBaseType(nTypeName.copy(5));
-
- if (BT_INVALID == isBaseType(nTypeName))
- {
- allreadyDumped->insert(nTypeName);
- nestedTypes.push_back(nTypeName);
- }
- }
-
- if (nestedTypes.size() > 0)
- {
- realTypeName = nestedTypes.front();
- nestedTypes.pop_front();
- }
- else
- {
- realTypeName = "";
- }
- }
- while (realTypeName.getLength() > 0);
-
- o << "}; // namespace bonobobridge\n";
- }
- }
-}
-
-void CorbaType::dumpDepIncludes(FileStream& o, TypeSet* allreadyDumped, const OString& typeName, sal_Char* prefix)
-{
- TypeUsingSet usingSet(m_dependencies.getDependencies(typeName));
-
- TypeUsingSet::const_iterator iter = usingSet.begin();
-
- OString sPrefix(OString(prefix).toAsciiUpperCase());
- sal_Bool bSequenceDumped = sal_False;
- sal_Bool bInterfaceDumped = sal_False;
- sal_uInt32 index = 0;
- sal_uInt32 seqNum = 0;
- OString relType;
- while (iter != usingSet.end())
- {
- index = (*iter).m_type.lastIndexOf(']');
- seqNum = (index > 0 ? ((index+1) / 2) : 0);
-
- relType = (*iter).m_type;
- if (index > 0)
- relType = relType.copy(index+1);
-
- if (!isNestedTypeByName(relType))
- {
- OString defPrefix("HXX");
- if (sPrefix.equals("HDL"))
- defPrefix = "H";
-
- if (seqNum > 0 && !bSequenceDumped)
- {
- bSequenceDumped = sal_True;
- }
-
- if (getUnoBaseType(relType).getLength() == 0 &&
- m_typeName != relType)
- {
- if (m_typeMgr.getTypeClass(relType) == RT_TYPE_INTERFACE
- && sPrefix.equals("HDL"))
- {
- if (!bInterfaceDumped)
- {
- bInterfaceDumped = sal_True;
- }
-
- if (!((*iter).m_use & TYPEUSE_SUPER))
- {
- o << "\n";
- dumpNameSpace(o, sal_True, sal_False, relType);
- o << "\nclass " << scopedName(m_typeName, relType, sal_True) << ";\n";
- dumpNameSpace(o, sal_False, sal_False, relType);
- o << "\n\n";
- } else
- {
- dumpInclude(o, allreadyDumped, relType, prefix);
- }
- } else
- {
- dumpInclude(o, allreadyDumped, relType, prefix);
- }
- }
- }
- ++iter;
- }
-}
-
-void CorbaType::dumpNameSpace(FileStream& o, sal_Bool bOpen, sal_Bool bFull, const OString& type)
-{
- OString typeName(type);
- sal_Bool bOneLine = sal_True;
- if (typeName.getLength() == 0)
- {
- typeName = m_typeName;
- bOneLine = sal_False;
- }
-
- if (typeName == "/")
- return;
-
- if (typeName.indexOf( '/' ) == -1 && !bFull)
- return;
-
- if (!bFull)
- typeName = typeName.copy( 0, typeName.lastIndexOf( '/' ) );
-
- if (bOpen)
- {
- sal_Int32 nIndex = 0;
- do
- {
- o << "namespace " << typeName.getToken(0, '/', nIndex);
- if (bOneLine)
- o << " { ";
- else
- o << "\n{\n";
- } while( nIndex != -1 );
- } else
- {
- sal_Int32 nPos = 0;
- do
- {
- nPos = typeName.lastIndexOf( '/' );
- o << "}";
- if( bOneLine )
- o << " ";
- else
- o << " // " << typeName.copy( nPos+1 ) << "\n";
- if( nPos != -1 )
- typeName = typeName.copy( 0, nPos );
- } while( nPos != -1 );
- }
-}
-
-
-sal_uInt32 CorbaType::getMemberCount()
-{
- sal_uInt32 count = m_reader.getMethodCount();
-
- sal_uInt32 fieldCount = m_reader.getFieldCount();
- RTFieldAccess access = RT_ACCESS_INVALID;
- for (sal_uInt16 i=0; i < fieldCount; i++)
- {
- access = m_reader.getFieldAccess(i);
-
- if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
- count++;
- }
- return count;
-}
-
-sal_uInt32 CorbaType::checkInheritedMemberCount(const TypeReader* pReader)
-{
- sal_Bool bSelfCheck = sal_True;
- if (!pReader)
- {
- bSelfCheck = sal_False;
- pReader = &m_reader;
- }
-
- sal_uInt32 count = 0;
- OString superType(pReader->getSuperTypeName());
- if (superType.getLength() > 0)
- {
- TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
- if ( aSuperReader.isValid() )
- {
- count = checkInheritedMemberCount(&aSuperReader);
- }
- }
-
- if (bSelfCheck)
- {
- count += pReader->getMethodCount();
- sal_uInt32 fieldCount = pReader->getFieldCount();
- RTFieldAccess access = RT_ACCESS_INVALID;
- for (sal_uInt16 i=0; i < fieldCount; i++)
- {
- access = pReader->getFieldAccess(i);
-
- if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
- count++;
- }
- }
-
- return count;
-}
-
-sal_uInt32 CorbaType::getInheritedMemberCount()
-{
- if (m_inheritedMemberCount == 0)
- {
- m_inheritedMemberCount = checkInheritedMemberCount(0);
- }
-
- return m_inheritedMemberCount;
-}
-
-OString CorbaType::getTypeClass(const OString& type, sal_Bool bCStyle)
-{
- OString typeName = (type.getLength() > 0 ? type : m_typeName);
- RTTypeClass rtTypeClass = RT_TYPE_INVALID;
-
- if (type.getLength() > 0)
- {
- typeName = type;
- rtTypeClass = m_typeMgr.getTypeClass(typeName);
- } else
- {
- typeName = m_typeName;
- rtTypeClass = m_reader.getTypeClass();
- }
-
- if (typeName.lastIndexOf(']') > 0)
- return bCStyle ? "typelib_TypeClass_SEQUENCE" : "::com::sun::star::uno::TypeClass_SEQUENCE";
-
- switch (rtTypeClass)
- {
- case RT_TYPE_INTERFACE:
- return bCStyle ? "typelib_TypeClass_INTERFACE" : "::com::sun::star::uno::TypeClass_INTERFACE";
- break;
- case RT_TYPE_MODULE:
- return bCStyle ? "typelib_TypeClass_MODULE" : "::com::sun::star::uno::TypeClass_MODULE";
- break;
- case RT_TYPE_STRUCT:
- return bCStyle ? "typelib_TypeClass_STRUCT" : "::com::sun::star::uno::TypeClass_STRUCT";
- break;
- case RT_TYPE_ENUM:
- return bCStyle ? "typelib_TypeClass_ENUM" : "::com::sun::star::uno::TypeClass_ENUM";
- break;
- case RT_TYPE_EXCEPTION:
- return bCStyle ? "typelib_TypeClass_EXCEPTION" : "::com::sun::star::uno::TypeClass_EXCEPTION";
- break;
- case RT_TYPE_TYPEDEF:
- {
- OString realType = checkRealBaseType( typeName );
- return getTypeClass( realType, bCStyle );
- }
-// return bCStyle ? "typelib_TypeClass_TYPEDEF" : "::com::sun::star::uno::TypeClass_TYPEDEF";
- break;
- case RT_TYPE_SERVICE:
- return bCStyle ? "typelib_TypeClass_SERVICE" : "::com::sun::star::uno::TypeClass_SERVICE";
- break;
- case RT_TYPE_INVALID:
- {
- if (type.equals("long"))
- return bCStyle ? "typelib_TypeClass_LONG" : "::com::sun::star::uno::TypeClass_LONG";
- if (type.equals("short"))
- return bCStyle ? "typelib_TypeClass_SHORT" : "::com::sun::star::uno::TypeClass_SHORT";
- if (type.equals("hyper"))
- return bCStyle ? "typelib_TypeClass_HYPER" : "::com::sun::star::uno::TypeClass_HYPER";
- if (type.equals("string"))
- return bCStyle ? "typelib_TypeClass_STRING" : "::com::sun::star::uno::TypeClass_STRING";
- if (type.equals("boolean"))
- return bCStyle ? "typelib_TypeClass_BOOLEAN" : "::com::sun::star::uno::TypeClass_BOOLEAN";
- if (type.equals("char"))
- return bCStyle ? "typelib_TypeClass_CHAR" : "::com::sun::star::uno::TypeClass_CHAR";
- if (type.equals("byte"))
- return bCStyle ? "typelib_TypeClass_BYTE" : "::com::sun::star::uno::TypeClass_BYTE";
- if (type.equals("any"))
- return bCStyle ? "typelib_TypeClass_ANY" : "::com::sun::star::uno::TypeClass_ANY";
- if (type.equals("type"))
- return bCStyle ? "typelib_TypeClass_TYPE" : "::com::sun::star::uno::TypeClass_TYPE";
- if (type.equals("float"))
- return bCStyle ? "typelib_TypeClass_FLOAT" : "::com::sun::star::uno::TypeClass_FLOAT";
- if (type.equals("double"))
- return bCStyle ? "typelib_TypeClass_DOUBLE" : "::com::sun::star::uno::TypeClass_DOUBLE";
- if (type.equals("void"))
- return bCStyle ? "typelib_TypeClass_VOID" : "::com::sun::star::uno::TypeClass_VOID";
- if (type.equals("unsigned long"))
- return bCStyle ? "typelib_TypeClass_UNSIGNED_LONG" : "::com::sun::star::uno::TypeClass_UNSIGNED_LONG";
- if (type.equals("unsigned short"))
- return bCStyle ? "typelib_TypeClass_UNSIGNED_SHORT" : "::com::sun::star::uno::TypeClass_UNSIGNED_SHORT";
- if (type.equals("unsigned hyper"))
- return bCStyle ? "typelib_TypeClass_UNSIGNED_HYPER" : "::com::sun::star::uno::TypeClass_UNSIGNED_HYPER";
- }
- break;
- }
-
- return bCStyle ? "typelib_TypeClass_UNKNOWN" : "::com::sun::star::uno::TypeClass_UNKNOWN";
-}
-
-OString CorbaType::printUnoType(const OString& type, sal_Bool bConst, sal_Bool bRef, sal_Bool bNative)
- throw( CannotDumpException )
-{
- OStringBuffer ret(1024);
- OString sType(checkRealBaseType(type, sal_True));
- sal_uInt32 index = sType.lastIndexOf(']');
- sal_uInt32 seqNum = (index > 0 ? ((index+1) / 2) : 0);
-
- OString relType = (index > 0 ? (sType).copy(index+1) : type);
-
- RTTypeClass typeClass = m_typeMgr.getTypeClass(relType);
-
- if (bConst) ret.append("const ");
-
- sal_uInt32 i;
- for (i=0; i < seqNum; i++)
- {
- ret.append("::com::sun::star::uno::Sequence< ");
- }
-
- switch (typeClass)
- {
- case RT_TYPE_INTERFACE:
- if (bNative)
- ret.append(scopedName(m_typeName, relType));
- else
- ret.append("::com::sun::star::uno::Reference< ").append(scopedName(m_typeName, relType)).append(" >");
- break;
- case RT_TYPE_INVALID:
- {
- OString tmp(getUnoBaseType(relType));
- if (tmp.getLength() > 0)
- {
- ret.append(getUnoBaseType(relType));
- } else
- throw CannotDumpException("Unknown type '" + relType + "', incomplete type library. ("+type+")");
- }
- break;
- case RT_TYPE_STRUCT:
- case RT_TYPE_ENUM:
- case RT_TYPE_TYPEDEF:
- case RT_TYPE_EXCEPTION:
- ret.append(scopedName(m_typeName, relType));
- break;
- }
-
- for (i=0; i < seqNum; i++)
- {
- ret.append(" >");
- }
-
- if (bRef) ret.append("&");
- return ret.makeStringAndClear();
-}
-
-void CorbaType::dumpUnoType(FileStream& o, const OString& type,
- sal_Bool bConst, sal_Bool bRef, sal_Bool bNative)
- throw( CannotDumpException )
-{
- OString ret = printUnoType(type, bConst, bRef, bNative);
- o << ret;
-}
-
-OString CorbaType::printCorbaType(const OString& type, sal_Bool bConst, sal_Bool bRef)
- throw( CannotDumpException )
-{
- OStringBuffer ret(1024);
-
- OString sType(type);
-
- sal_uInt32 index = sType.lastIndexOf(']');
- sal_uInt32 seqNum = (index > 0 ? ((index+1) / 2) : 0);
-
- OString relType = (index > 0 ? (sType).copy(index+1) : type);
-
- RTTypeClass typeClass = m_typeMgr.getTypeClass(relType);
-
- if (relType.equals("com/sun/star/uno/XInterface"))
- relType = "Bonobo/Unknown";
-
- if (relType.equals("com/sun/star/uno/TypeClass"))
- relType = "CORBA_TypeCode";
-
- if (relType.equals("com/sun/star/uno/RuntimeException"))
- relType = "CORBA_SystemException";
-
- if (relType.equals("com/sun/star/uno/Exception"))
- relType = "CORBA_any";
-
- if (bConst) ret.append("const ");
-
-
- sal_uInt32 i;
- for (i=0; i < seqNum; i++)
- {
- ret.append("CORBA_sequence_");
- }
-
- switch (typeClass)
- {
- case RT_TYPE_INTERFACE:
- ret.append(relType.replace('/', '_'));
- break;
- case RT_TYPE_INVALID:
- {
- OString tmp(getUnoBaseType(relType));
- if (tmp.getLength() > 0)
- ret.append(getCorbaBaseType(relType));
- else
- throw CannotDumpException("Unknown type '" + relType + "', incomplete type library. ("+type+")");
- }
- break;
- case RT_TYPE_STRUCT:
- case RT_TYPE_ENUM:
- case RT_TYPE_TYPEDEF:
- case RT_TYPE_EXCEPTION:
- ret.append(relType.replace('/', '_'));
- break;
- }
-
- if (bRef) ret.append("&");
-
- return ret.makeStringAndClear();
-}
-
-sal_Bool CorbaType::isPassedAsPointer(const OString& type)
-{
- sal_Bool ret = sal_False;
-
- OString sType(checkSpecialCorbaType(type));
-
- sal_Int32 index = sType.lastIndexOf(']');
- sal_Int32 seqNum = (index > 0 ? ((index+1) / 2) : 0);
-
- OString relType = (index > 0 ? (sType).copy(index+1) : type);
-
- if (index > 0)
- {
- OString fakeTest;
-
- sal_Int32 j = type.lastIndexOf('/');
- if (j >= 0)
- fakeTest = type.copy(0, j+1)+"_faked_array_"+type.copy(j+1);
- else
- fakeTest = "_faked_array_"+sType;
-
- TypeReader fakeTestReader = m_typeMgr.getTypeReader(fakeTest);
-
- if (fakeTestReader.isValid())
- ret = sal_False;
- else
- ret = sal_True;
- }
- else
- {
- RTTypeClass typeClass = m_typeMgr.getTypeClass(sType);
-
- switch (typeClass)
- {
- case RT_TYPE_STRUCT:
- case RT_TYPE_EXCEPTION:
- ret = sal_True;
- break;
-
- case RT_TYPE_INTERFACE:
- case RT_TYPE_ENUM:
- case RT_TYPE_INVALID:
- if (sType.equals("any"))
- ret = sal_True;
- else
- ret = sal_False;
- break;
- }
- }
-
- return ret;
-}
-
-sal_Bool CorbaType::isDerivedFromUnknown(const ::rtl::OString& typeName)
-{
- sal_Bool ret = sal_True;
- if (typeName.getLength() == 0)
- ret = sal_False;
- else if (typeName.equals("Bonobo/NullInterface"))
- ret = sal_False;
- else if (typeName.equals("com/sun/star/uno/XInterface"))
- ret = sal_True;
- else
- {
- TypeReader reader(m_typeMgr.getTypeReader(typeName));
- if (reader.isValid())
- ret = isDerivedFromUnknown(reader.getSuperTypeName());
- else
- ret = sal_False;
- }
- return ret;
-}
-
-
-sal_Bool CorbaType::isArray(const OString& type)
-{
- sal_Bool ret = sal_False;
-
- OString sType(checkSpecialCorbaType(type));
-
- sal_Int32 index = sType.lastIndexOf(']');
- sal_Int32 seqNum = (index > 0 ? ((index+1) / 2) : 0);
-
- OString relType = (index > 0 ? (sType).copy(index+1) : type);
-
- if (index > 0)
- {
- OString fakeTest;
-
- sal_Int32 j = type.lastIndexOf('/');
- if (j >= 0)
- fakeTest = type.copy(0, j+1)+"_faked_array_"+type.copy(j+1);
- else
- fakeTest = "_faked_array_"+sType;
-
- TypeReader fakeTestReader = m_typeMgr.getTypeReader(fakeTest);
-
- if (fakeTestReader.isValid())
- ret = sal_True;
- }
-
- return ret;
-}
-
-OString CorbaType::printCorbaParameter(const OString& type, sal_Bool bOut)
- throw( CannotDumpException )
-{
- OStringBuffer ret(1024);
-
- OString sType(type);
- sal_Int32 index = sType.lastIndexOf(']');
- sal_Int32 seqNum = (index > 0 ? ((index+1) / 2) : 0);
-
- OString relType = (index > 0 ? (sType).copy(index+1) : type);
-
- RTTypeClass typeClass = m_typeMgr.getTypeClass(relType);
-
- if (relType.equals("Bonobo/NullInterface"))
- relType = "CORBA_Object";
-
- if (relType.equals("com/sun/star/uno/XInterface"))
- relType = "Bonobo/Unknown";
-
- if (relType.equals("com/sun/star/uno/TypeClass"))
- relType = "CORBA_TypeCode";
-
- if (relType.equals("com/sun/star/uno/RuntimeException"))
- relType = "CORBA_SystemException";
-
- if (relType.equals("com/sun/star/uno/Exception"))
- relType = "CORBA_any";
-
- int i;
- for (i=0; i < seqNum; i++)
- {
- ret.append("CORBA_sequence_");
- }
-
- switch (typeClass)
- {
- case RT_TYPE_INTERFACE:
- ret.append(relType.replace('/', '_'));
- break;
- case RT_TYPE_INVALID:
- {
- OString tmp(getUnoBaseType(relType));
- if (tmp.getLength() > 0)
- {
- ret.append(getCorbaBaseType(relType));
- } else
- throw CannotDumpException("Unknown type '" + relType + "', incomplete type library. ("+type+")");
- }
- break;
- case RT_TYPE_STRUCT:
- case RT_TYPE_EXCEPTION:
- case RT_TYPE_ENUM:
- case RT_TYPE_TYPEDEF:
- ret.append(relType.replace('/', '_'));
- break;
- }
-
- return ret.makeStringAndClear();
-}
-
-void CorbaType::dumpCorbaType(FileStream& o, const OString& type,
- sal_Bool bConst, sal_Bool bRef)
- throw( CannotDumpException )
-{
- OString ret = printCorbaType(type, bConst, bRef);
- o << ret;
-}
-
-OString CorbaType::getUnoBaseType(const OString& type)
-{
- if (type.equals("long"))
- return "sal_Int32";
- if (type.equals("short"))
- return "sal_Int16";
- if (type.equals("hyper"))
- return "sal_Int64";
- if (type.equals("string"))
- return "::rtl::OUString";
- if (type.equals("boolean"))
- return "sal_Bool";
- if (type.equals("char"))
- return "sal_Unicode";
- if (type.equals("byte"))
- return "sal_Int8";
- if (type.equals("any"))
- return "::com::sun::star::uno::Any";
- if (type.equals("type"))
- return "::com::sun::star::uno::Type";
- if (type.equals("float"))
- return "float";
- if (type.equals("double"))
- return "double";
- if (type.equals("octet"))
- return "sal_Int8";
- if (type.equals("void"))
- return type;
- if (type.equals("unsigned long"))
- return "sal_uInt32";
- if (type.equals("unsigned short"))
- return "sal_uInt16";
- if (type.equals("unsigned hyper"))
- return "sal_uInt64";
-
- return OString();
-}
-
-OString CorbaType::getCorbaBaseType(const OString& type)
-{
- if (type.equals("long"))
- return "CORBA_long";
- if (type.equals("short"))
- return "CORBA_short";
- if (type.equals("hyper"))
- return "CORBA_long_long";
- if (type.equals("string"))
- return "CORBA_char*";
- if (type.equals("boolean"))
- return "CORBA_boolean";
- if (type.equals("char"))
- return "CORBA_char";
- if (type.equals("byte"))
- return "CORBA_octet";
- if (type.equals("any"))
- return "CORBA_any";
- if (type.equals("type"))
- return "CORBA_TypeCode";
- if (type.equals("float"))
- return "CORBA_float";
- if (type.equals("double"))
- return "CORBA_double";
- if (type.equals("octet"))
- return "CORBA_octet";
- if (type.equals("void"))
- return type;
- if (type.equals("unsigned long"))
- return "CORBA_unsigned_long";
- if (type.equals("unsigned short"))
- return "CORBA_unsigned_short";
- if (type.equals("unsigned hyper"))
- return "CORBA_unsigned_long_long";
-
- return OString();
-}
-
-
-void CorbaType::dumpTypeInit(FileStream& o, const OString& typeName)
-{
- OString type(checkSpecialCorbaType(typeName));
-
- BASETYPE baseType = isBaseType(type);
-
- switch (baseType)
- {
- case BT_BOOLEAN:
- o << "(sal_False)";
- return;
- break;
- case BT_ANY:
- case BT_STRING:
- o << "()";
- return;
- break;
- case BT_INVALID:
- break;
- default:
- o << "((";
- dumpUnoType(o, type);
- o << ")" << "0)";
- return;
- }
-
- RTTypeClass typeClass = m_typeMgr.getTypeClass(type);
-
- if (typeClass == RT_TYPE_ENUM)
- {
- RegistryTypeReaderLoader aReaderLoader;
-
- if (aReaderLoader.isLoaded())
- {
- TypeReader reader(m_typeMgr.getTypeReader(type));
-
- if ( reader.isValid() )
- {
- sal_Int32 nPos = type.lastIndexOf( '/' );
- o << "(" << shortScopedName("", type, sal_False)
- << "::" << type.copy( nPos != -1 ? nPos+1 : 0 )
- << "_" << reader.getFieldName(0) << ")";
- return;
- }
- }
- }
-
- o << "()";
-}
-
-BASETYPE CorbaType::isBaseType(const OString& type)
-{
- if (type.equals("long"))
- return BT_LONG;
- if (type.equals("short"))
- return BT_SHORT;
- if (type.equals("hyper"))
- return BT_HYPER;
- if (type.equals("string"))
- return BT_STRING;
- if (type.equals("boolean"))
- return BT_BOOLEAN;
- if (type.equals("char"))
- return BT_CHAR;
- if (type.equals("byte"))
- return BT_BYTE;
- if (type.equals("any"))
- return BT_ANY;
- if (type.equals("float"))
- return BT_FLOAT;
- if (type.equals("double"))
- return BT_DOUBLE;
- if (type.equals("void"))
- return BT_VOID;
- if (type.equals("unsigned long"))
- return BT_UNSIGNED_LONG;
- if (type.equals("unsigned short"))
- return BT_UNSIGNED_SHORT;
- if (type.equals("unsigned hyper"))
- return BT_UNSIGNED_HYPER;
-
- return BT_INVALID;
-}
-
-OString CorbaType::typeToIdentifier(const OString& type)
-{
- sal_uInt32 index = type.lastIndexOf(']');
- sal_uInt32 seqNum = (index > 0 ? ((index+1) / 2) : 0);
-
- OString relType = (index > 0 ? ((OString)type).copy(index+1) : type);
- OString sIdentifier;
-
- while( seqNum > 0 )
- {
- sIdentifier += OString("seq");
-
- if ( --seqNum == 0 )
- {
- sIdentifier += OString("_");
- }
- }
-
- if ( isBaseType(relType) )
- {
- sIdentifier += relType.replace(' ', '_');
- } else
- {
- sIdentifier += relType.replace('/', '_');
- }
-
-
- return sIdentifier;
-}
-
-OString CorbaType::checkSpecialCorbaType(const OString& type)
-{
- OString baseType(type);
-
- RegistryTypeReaderLoader & rReaderLoader = getRegistryTypeReaderLoader();
-
- RegistryKey key;
- sal_uInt8* pBuffer=NULL;
- RTTypeClass typeClass;
- sal_Bool isTypeDef = (m_typeMgr.getTypeClass(baseType) == RT_TYPE_TYPEDEF);
- TypeReader reader;
-
- while (isTypeDef)
- {
- reader = m_typeMgr.getTypeReader(baseType);
-
- if (reader.isValid())
- {
- typeClass = reader.getTypeClass();
-
- if (typeClass == RT_TYPE_TYPEDEF)
- baseType = reader.getSuperTypeName();
- else
- isTypeDef = sal_False;
- } else
- break;
- }
-
- return baseType;
-}
-
-OString CorbaType::checkRealBaseType(const OString& type, sal_Bool bResolveTypeOnly)
-{
- sal_uInt32 index = type.lastIndexOf(']');
- OString baseType = (index > 0 ? ((OString)type).copy(index+1) : type);
- OString seqPrefix = (index > 0 ? ((OString)type).copy(0, index+1) : OString());
-
- RegistryTypeReaderLoader & rReaderLoader = getRegistryTypeReaderLoader();
-
- RegistryKey key;
- sal_uInt8* pBuffer=NULL;
- RTTypeClass typeClass;
- sal_Bool mustBeChecked = (m_typeMgr.getTypeClass(baseType) == RT_TYPE_TYPEDEF);
- TypeReader reader;
-
- while (mustBeChecked)
- {
- reader = m_typeMgr.getTypeReader(baseType);
-
- if (reader.isValid())
- {
- typeClass = reader.getTypeClass();
-
- if (typeClass == RT_TYPE_TYPEDEF)
- {
- baseType = reader.getSuperTypeName();
- index = baseType.lastIndexOf(']');
- if (index > 0)
- {
- seqPrefix += baseType.copy(0, index+1);
- baseType = baseType.copy(index+1);
- }
- } else
- mustBeChecked = sal_False;
- } else
- break;
- }
-
- if ( bResolveTypeOnly )
- baseType = seqPrefix + baseType;
-
- return baseType;
-}
-
-
-void CorbaType::inc(sal_uInt32 num)
-{
- m_indentLength += num;
-}
-
-void CorbaType::dec(sal_uInt32 num)
-{
- if (m_indentLength - num < 0)
- m_indentLength = 0;
- else
- m_indentLength -= num;
-}
-
-OString CorbaType::indent()
-{
- OStringBuffer tmp(m_indentLength);
-
- for (sal_uInt32 i=0; i < m_indentLength; i++)
- {
- tmp.append(' ');
- }
- return tmp.makeStringAndClear();
-}
-
-OString CorbaType::indent(sal_uInt32 num)
-{
- OStringBuffer tmp(m_indentLength + num);
-
- for (sal_uInt32 i=0; i < m_indentLength + num; i++)
- {
- tmp.append(' ');
- }
- return tmp.makeStringAndClear();
-}
-
-//*************************************************************************
-// InterfaceType
-//*************************************************************************
-InterfaceType::InterfaceType(TypeReader& typeReader,
- const OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions)
- : CorbaType(typeReader, typeName, typeMgr, typeDependencies, generatedConversions)
-{
- m_inheritedMemberCount = 0;
- m_hasAttributes = sal_False;
- m_hasMethods = sal_False;
-}
-
-InterfaceType::~InterfaceType()
-{
-
-}
-
-
-void InterfaceType::dumpUnoMethods(FileStream& o, sal_Bool bDeclOnly, sal_Bool bDelegateToSuper)
-{
- OString superName(m_reader.getSuperTypeName());
- if (bDeclOnly &&
- !superName.equals("Bonobo/NullInterface") &&
- !superName.equals("com/sun/star/uno/XInterface"))
- {
- TypeReader reader(m_typeMgr.getTypeReader(superName));
- InterfaceType iType(reader, superName, m_typeMgr, TypeDependency(), m_generatedConversions);
- iType.inc();
- iType.dumpUnoMethods(o, bDeclOnly, sal_True);
- }
-
- sal_uInt32 methodCount = m_reader.getMethodCount();
- sal_Bool first=sal_True;
-
- OString methodName, returnType, paramType, paramName;
- sal_uInt32 paramCount = 0;
- sal_uInt32 excCount = 0;
- RTMethodMode methodMode = RT_MODE_INVALID;
- RTParamMode paramMode = RT_PARAM_INVALID;
-
- sal_Bool bRef = sal_False;
- sal_Bool bConst = sal_False;
- sal_Bool bWithRunTimeExcp = sal_True;
-
- for (sal_uInt16 i=0; i < methodCount; i++)
- {
- methodName = m_reader.getMethodName(i);
- returnType = m_reader.getMethodReturnType(i);
- paramCount = m_reader.getMethodParamCount(i);
- excCount = m_reader.getMethodExcCount(i);
- methodMode = m_reader.getMethodMode(i);
-
- if ( methodName.equals("acquire") || methodName.equals("release") )
- bWithRunTimeExcp = sal_False;
-
- if (first)
- {
- first = sal_False;
- o << "\n" << indent() << "// Methods\n";
- }
-
- o << indent();
- if (bDeclOnly)
- o << "virtual ";
- dumpUnoType(o, returnType);
- o << " SAL_CALL ";
- if (!bDeclOnly)
- {
- o << "bonobobridge::BonoboWrapper_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "::";
- }
-
- o << methodName << "( ";
-
- sal_uInt16 j;
- for (j=0; j < paramCount; j++)
- {
- paramName = m_reader.getMethodParamName(i, j);
- paramType = m_reader.getMethodParamType(i, j);
- paramMode = m_reader.getMethodParamMode(i, j);
-
- switch (paramMode)
- {
- case RT_PARAM_IN:
- {
- OString relType = checkSpecialCorbaType(paramType);
- if (m_typeMgr.getTypeClass(relType) == RT_TYPE_ENUM ||
- (isBaseType(relType) && !relType.equals("string") && !relType.equals("any")))
- {
- bConst = sal_False;
- bRef = sal_False;
- } else
- {
- bConst = sal_True;
- bRef = sal_True;
- }
- break;
- }
- case RT_PARAM_OUT:
- case RT_PARAM_INOUT:
- bConst = sal_False;
- bRef = sal_True;
- break;
- }
-
- dumpUnoType(o, paramType, bConst, bRef);
- o << " " << paramName;
-
- if (j+1 < paramCount) o << ", ";
- }
- o << " )";
-
- o << " throw(";
- OString excpName;
- for (j=0; j < excCount; j++)
- {
- excpName = m_reader.getMethodExcType(i, j);
- if (excpName != "com/sun/star/uno/RuntimeException")
- o << scopedName(m_typeName, excpName);
- if (bWithRunTimeExcp)
- o << ", ";
- }
-
- if ( bWithRunTimeExcp )
- {
- o << " ::com::sun::star::uno::RuntimeException";
- }
-
- if (bDeclOnly && bDelegateToSuper)
- {
- o << " ) {\n";
- if (returnType.equals("void"))
- o << indent() << " ";
- else
- o << indent() << " return ";
- o << "BonoboWrapper_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "::" << methodName << "( ";
- for (j = 0; j < paramCount; j++)
- {
- paramName = m_reader.getMethodParamName(i, j);
- o << paramName;
- if (j < (paramCount-1))
- o << ", ";
- }
- o << " );\n"
- << indent() << "}\n";
- }
- else if (!bDeclOnly)
- {
- o << " ) {\n";
-
- OStringBuffer preBuffer(1024);
- OStringBuffer callBuffer(1024);
- OStringBuffer postBuffer(1024);
-
- callBuffer.append(" ");
-
- if (!returnType.equals("void"))
- {
- preBuffer.append(" ");
- preBuffer.append(printCorbaParameter(returnType));
- if (isPassedAsPointer(returnType))
- preBuffer.append("*");
- preBuffer.append(" _b_ret;\n");
- preBuffer.append(" ");
- preBuffer.append(printUnoType(returnType, sal_False, sal_False));
- preBuffer.append(" _u_ret;\n");
-
- callBuffer.append("_b_ret = ");
- }
-
- callBuffer.append(printCorbaType(m_typeName, sal_False, sal_False));
- callBuffer.append("_");
- if (methodName.indexOf("_reserved_identifier_") == 0)
- callBuffer.append(methodName.copy(OString("_reserved_identifier_").getLength()));
- else
- callBuffer.append(methodName);
-
- callBuffer.append("( m_corbaObject");
-
- for (j=0; j < paramCount; j++)
- {
- paramName = m_reader.getMethodParamName(i, j);
- paramType = m_reader.getMethodParamType(i, j);
- paramMode = m_reader.getMethodParamMode(i, j);
-
- preBuffer.append(" ");
- preBuffer.append(printCorbaParameter(paramType));
- if (isPassedAsPointer(paramType) && (paramMode == RT_PARAM_OUT))
- {
- preBuffer.append("* _b_");
- preBuffer.append(paramName);
- preBuffer.append(";\n");
- }
- else
- {
- preBuffer.append(" _b_");
- preBuffer.append(paramName);
- preBuffer.append(";\n");
- }
-
- switch (paramMode) {
- case RT_PARAM_IN:
-
- if (isArray(paramType))
- preBuffer.append(" // fix me: conversion of array types!\n");
- else
- {
- preBuffer.append(" cpp_convert_u2b(");
- preBuffer.append("_b_");
- preBuffer.append(paramName);
- preBuffer.append(", ");
- preBuffer.append(paramName);
- preBuffer.append(", m_bridge);\n");
- }
-
- if (isPassedAsPointer(paramType))
- callBuffer.append(", &_b_");
- else
- callBuffer.append(", _b_");
- break;
- case RT_PARAM_INOUT:
-
- if (isArray(paramType))
- preBuffer.append(" // fix me: conversion of array types!\n");
- else
- {
- preBuffer.append(" cpp_convert_u2b(");
- if (isPassedAsPointer(paramType))
- preBuffer.append("_b_");
- else
- preBuffer.append("_b_");
- preBuffer.append(paramName);
- preBuffer.append(", ");
- preBuffer.append(paramName);
- preBuffer.append(", m_bridge);\n");
- }
-
- callBuffer.append(", &_b_");
-
- if (isArray(paramType))
- postBuffer.append(" // fix me: conversion of array types!\n");
- else
- {
- postBuffer.append(" cpp_convert_b2u(");
- postBuffer.append(paramName);
- postBuffer.append(", _b_");
- postBuffer.append(paramName);
- postBuffer.append(", m_bridge);\n");
- }
-
- break;
- case RT_PARAM_OUT:
-
- callBuffer.append(", &_b_");
-
- if (isArray(paramType))
- postBuffer.append(" // fix me: conversion of array types!\n");
- else
- {
- postBuffer.append(" cpp_convert_b2u(");
- postBuffer.append(paramName);
- if (isPassedAsPointer(paramType))
- postBuffer.append(", *_b_");
- else
- postBuffer.append(", _b_");
- postBuffer.append(paramName);
- postBuffer.append(", m_bridge);\n");
- }
-
- break;
- }
-
-
- callBuffer.append(paramName);
- }
-
- callBuffer.append(", &_ev );\n");
-
- if (!returnType.equals("void"))
- {
- if (isArray(returnType))
- {
- postBuffer.append(" // fix me: conversion of array types!\n");
- }
- else
- {
- if (isPassedAsPointer(returnType))
- postBuffer.append(" cpp_convert_b2u(_u_ret, *_b_ret, m_bridge);\n");
- else
- postBuffer.append(" cpp_convert_b2u(_u_ret, _b_ret, m_bridge);\n");
- }
- postBuffer.append(" return _u_ret;\n");
- }
-
- o << " ::osl::MutexGuard guard(m_bridge->getORBLock());\n"
- << " CORBA_Environment _ev;\n"
- << " CORBA_exception_init (&_ev);\n";
-
- o << preBuffer;
- o << callBuffer;
-
- o << " if (_ev._major != CORBA_NO_EXCEPTION) {\n"
- << " ::com::sun::star::uno::RuntimeException _ex(::rtl::OUString::createFromAscii(\"exception raised in bonobobridge\"), NULL);\n"
- << " CORBA_exception_free (&_ev);\n"
- << " throw _ex;\n"
- << " }\n"
- << " CORBA_exception_free (&_ev);\n";
-
- o << postBuffer;
-
- o << indent() << "}\n";
- }
- else
- o << " );\n";
- }
-}
-
-void InterfaceType::dumpCorbaMethods(FileStream& o, sal_Bool bDeclOnly)
-{
- OString superName(m_reader.getSuperTypeName());
-
- sal_uInt32 methodCount = m_reader.getMethodCount();
-
- OString methodName, returnType, paramType, paramName;
- sal_uInt32 paramCount = 0;
- sal_uInt32 excCount = 0;
- RTMethodMode methodMode = RT_MODE_INVALID;
- RTParamMode paramMode = RT_PARAM_INVALID;
-
- sal_Bool bRef = sal_False;
- sal_Bool bConst = sal_False;
- sal_Bool bWithRunTimeExcp = sal_True;
-
- for (sal_uInt16 i=0; i < methodCount; i++)
- {
- methodName = m_reader.getMethodName(i);
- returnType = m_reader.getMethodReturnType(i);
- paramCount = m_reader.getMethodParamCount(i);
- excCount = m_reader.getMethodExcCount(i);
- methodMode = m_reader.getMethodMode(i);
-
- o << indent()
- << "extern \"C\" "
- << printCorbaParameter(returnType);
-
- if (isPassedAsPointer(returnType))
- o << "*";
-
- o << " bonobobridge_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "_" << methodName << "( PortableServer_Servant _servant, ";
-
- sal_uInt16 j;
- for (j=0; j < paramCount; j++)
- {
- paramName = m_reader.getMethodParamName(i, j);
- paramType = m_reader.getMethodParamType(i, j);
- paramMode = m_reader.getMethodParamMode(i, j);
-
- if ((isPassedAsPointer(paramType) || paramType.equals("string") || isArray(paramType)) &&
- (paramMode == RT_PARAM_IN))
- o << "const ";
-
- o << printCorbaParameter(paramType);
-
- if (isPassedAsPointer(paramType))
- {
- if (paramMode == RT_PARAM_OUT)
- o << "**";
- else
- o << "*";
- }
- else
- {
- if (paramMode != RT_PARAM_IN)
- o << "*";
- }
-
-
- o << " " << paramName << ", ";
- }
-
- o << "CORBA_Environment * _ev)";
-
- if (bDeclOnly)
- o << ";\n";
- else
- {
- o << " {\n";
- OStringBuffer preBuffer(1024);
- OStringBuffer callBuffer(1024);
- OStringBuffer postBuffer(1024);
-
- callBuffer.append(" ");
-
- preBuffer.append(" ");
- preBuffer.append(printUnoType(m_typeName, sal_False, sal_False));
- preBuffer.append(" rThis((");
- preBuffer.append(printUnoType(m_typeName, sal_False, sal_False, sal_True));
- preBuffer.append(" *)((bonobobridge::UNO_POA_com_sun_star_uno_XInterface*)_servant)->pThis->getUnoObject());\n");
-
- if (!returnType.equals("void"))
- {
- preBuffer.append(" ");
- preBuffer.append(printCorbaParameter(returnType));
- if (isPassedAsPointer(returnType))
- {
- preBuffer.append("* _b_ret = ");
- preBuffer.append(printCorbaType(returnType, sal_False, sal_False));
- preBuffer.append("__alloc();\n");
-
- }
- else
- {
- preBuffer.append(" _b_ret;\n");
- }
- preBuffer.append(" ");
- preBuffer.append(printUnoType(returnType, sal_False, sal_False));
- preBuffer.append(" _u_ret;\n");
-
- callBuffer.append("_u_ret = ");
- }
-
- callBuffer.append("rThis->");
- callBuffer.append(methodName);
- callBuffer.append("( ");
-
- for (j=0; j < paramCount; j++)
- {
- paramName = m_reader.getMethodParamName(i, j);
- paramType = m_reader.getMethodParamType(i, j);
- paramMode = m_reader.getMethodParamMode(i, j);
-
- preBuffer.append(" ");
- preBuffer.append(printUnoType(paramType, sal_False, sal_False));
- preBuffer.append(" _u_");
- preBuffer.append(paramName);
- preBuffer.append(";\n");
-
- callBuffer.append("_u_");
- callBuffer.append(paramName);
-
- if (j < (paramCount-1))
- callBuffer.append(", ");
-
- switch (paramMode) {
- case RT_PARAM_IN:
-
- if (isArray(paramType))
- preBuffer.append(" // fix me: conversion of array types!\n");
- else
- {
- preBuffer.append(" cpp_convert_b2u(");
- preBuffer.append("_u_");
- preBuffer.append(paramName);
- preBuffer.append(", ");
- if (isPassedAsPointer(paramType))
- preBuffer.append("*");
- preBuffer.append(paramName);
- preBuffer.append(", ((bonobobridge::UNO_POA_com_sun_star_uno_XInterface*)_servant)->pThis->getBridge());\n");
- }
- break;
- case RT_PARAM_INOUT:
-
- if (isArray(paramType))
- {
- preBuffer.append(" // fix me: conversion of array types!\n");
- postBuffer.append(" // fix me: conversion of array types!\n");
- }
- else
- {
- preBuffer.append(" cpp_convert_b2u(");
- preBuffer.append("_u_");
- preBuffer.append(paramName);
- preBuffer.append(", ");
- if (isPassedAsPointer(paramType))
- preBuffer.append("*");
- preBuffer.append(paramName);
- preBuffer.append(", ((bonobobridge::UNO_POA_com_sun_star_uno_XInterface*)_servant)->pThis->getBridge());\n");
-
- postBuffer.append(" cpp_convert_u2b(");
- if (isPassedAsPointer(paramType))
- postBuffer.append("*");
- postBuffer.append(paramName);
- postBuffer.append(", _u_");
- postBuffer.append(paramName);
- postBuffer.append(", ((bonobobridge::UNO_POA_com_sun_star_uno_XInterface*)_servant)->pThis->getBridge());\n");
- }
- break;
- case RT_PARAM_OUT:
-
- if (isArray(paramType))
- preBuffer.append(" // fix me: conversion of array types!\n");
- else
- {
- postBuffer.append(" cpp_convert_u2b(");
- if (isPassedAsPointer(paramType))
- postBuffer.append("**");
- else
- postBuffer.append("*");
- postBuffer.append(paramName);
- postBuffer.append(", _u_");
- postBuffer.append(paramName);
- postBuffer.append(", ((bonobobridge::UNO_POA_com_sun_star_uno_XInterface*)_servant)->pThis->getBridge());\n");
- }
- break;
- }
- }
-
- callBuffer.append(" );\n");
-
- if (!returnType.equals("void"))
- {
- if (isArray(returnType))
- postBuffer.append(" // fix me: conversion of array types!\n");
- else
- {
- if (isPassedAsPointer(returnType))
- postBuffer.append(" cpp_convert_u2b(*_b_ret, _u_ret, ((bonobobridge::UNO_POA_com_sun_star_uno_XInterface*)_servant)->pThis->getBridge());\n");
- else
- postBuffer.append(" cpp_convert_u2b(_b_ret, _u_ret, ((bonobobridge::UNO_POA_com_sun_star_uno_XInterface*)_servant)->pThis->getBridge());\n");
- }
-
- postBuffer.append(" return _b_ret;\n");
- }
-
- o << preBuffer;
- o << callBuffer;
- o << postBuffer;
-
- o << "}\n";
- }
- }
-}
-
-void InterfaceType::dumpFunctions(FileStream& o)
-{
- if (m_typeName.equals("com/sun/star/uno/XInterface") ||
- m_typeName.equals("Bonobo/NullInterface"))
- return;
-
- m_generatedConversions->insert(m_typeName);
-
- o << "namespace bonobobridge {\n\n";
-
- /* bonobo implementation class */
- o << "class BonoboWrapper_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
-
- OString superName(m_reader.getSuperTypeName());
- o << " : public BonoboWrapper< BonoboWrapper_";
- dumpCorbaType(o, superName, sal_False, sal_False);
- o << ", ";
- dumpUnoType(o, m_typeName, sal_False, sal_False, sal_True);
- o << " > {\n";
-
- o << "public: \n"
- << " BonoboWrapper_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "(";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << " corbaObject,"
- << "const vos::ORef<bonobobridge::Bridge>& bridge)\n";
-
- o << " : BonoboWrapper< "
- << "BonoboWrapper_";
- dumpCorbaType(o, superName, sal_False, sal_False);
- o << ", ";
- dumpUnoType(o, m_typeName, sal_False, sal_False, sal_True);
- o << " >(corbaObject, bridge) {\n";
-
- if (isDerivedFromUnknown(m_typeName))
- {
- o << " m_bridge->registerObjectWrapper(::getCppuType((";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*)NULL), m_corbaObject, (";
- dumpUnoType(o, m_typeName, sal_False, sal_False, sal_True);
- o << "*)this);\n";
- }
-
- o << " }\n";
-
- o << " virtual ~BonoboWrapper_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "() {\n";
- if (isDerivedFromUnknown(m_typeName))
- {
- o << " m_bridge->unregisterObjectWrapper(::getCppuType((";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*)NULL), m_corbaObject, (";
- dumpUnoType(o, m_typeName, sal_False, sal_False, sal_True);
- o << "*)this);\n";
- }
- o << " }\n";
- inc();
- dumpUnoMethods(o, sal_True, sal_False);
- dec();
-
- o << "};\n\n";
-
- o << "}; // namespace bonobobridge\n";
-
- dumpUnoMethods(o, sal_False, sal_False);
-
- /* convert function bonobo to uno */
- o << "static sal_Bool convert_b2u_" << m_typeName.replace('/', '_')
- << "(void* pOut, const void* pIn, const ::com::sun::star::uno::Type& type, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " sal_Bool ret = sal_True;\n ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "& _u = *(";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*) pOut;\n const ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "& _b = *(const ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*) pIn;\n\n"
- << " _u = new bonobobridge::BonoboWrapper_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "(_b, bridge);\n"
- << " return ret;\n";
-
- o << "}\n\n";
-
- /* POA implementation class */
- dumpCorbaMethods(o, sal_True);
- o << "static POA_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "__epv bonobobridge_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "_epv = {\n";
- sal_uInt32 methodCount = m_reader.getMethodCount();
- OString methodName;
-
- o << " NULL,\n";
-
- for (sal_uInt16 i=0; i < methodCount; i++)
- {
- methodName = m_reader.getMethodName(i);
- o << " bonobobridge_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "_" << methodName;
-
- if (i < (methodCount-1))
- o << ",\n";
- else
- o << "\n};\n";
- }
-
- OStringBuffer initBuffer(1024);
-
- initBuffer.insert(0, OString("&bonobobridge_") + printCorbaType(m_typeName, sal_False, sal_False) + OString("_epv"));
-
- while(superName.getLength() != 0)
- {
- if (superName.equals("Bonobo/NullInterface"))
- {
- superName = "";
- }
- else
- {
- if (superName.equals("com/sun/star/uno/XInterface"))
- {
- initBuffer.insert(0, OString("&bonobobridge_com_sun_star_uno_XInterface_epv, "));
- }
- else
- {
- initBuffer.insert(0, OString("&bonobobridge_") + printCorbaType(superName, sal_False, sal_False) + OString("_epv, "));
- }
- TypeReader reader(m_typeMgr.getTypeReader(superName));
- superName = reader.getSuperTypeName();
- }
- }
-
- initBuffer.insert(0, OString("NULL, "));
-
- o << "static POA_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "__vepv bonobobridge_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "__vepv = {";
- o << initBuffer.makeStringAndClear();
- o << " };\n";
-
- superName = m_reader.getSuperTypeName();
-
- o << "namespace bonobobridge {\n\n";
-
- o << "class UnoServant_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << " : public UnoServant_com_sun_star_uno_XInterface {\n";
-
- o << "public:\n"
- << " UnoServant_";
-
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "(";
- dumpUnoType(o, m_typeName, sal_False, sal_False, sal_True);
- o << "* unoObject,"
- << " const ::vos::ORef<bonobobridge::Bridge>& bridge,"
- << " CORBA_Environment *ev,"
- << " sal_Bool bInitPoa)\n"
- << " : UnoServant_com_sun_star_uno_XInterface(unoObject, bridge, ev, sal_False) {\n"
- << " if (bInitPoa) {\n"
- << " memset(&m_POAUnknown, 0, sizeof(m_POAUnknown));\n"
- << " POA_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "__init((PortableServer_Servant) &(m_POAUnknown.poa), ev);\n"
- << " m_POAUnknown.pThis = (UnoServant_com_sun_star_uno_XInterface*)this;\n"
- << " m_POAUnknown.poa.vepv = (POA_Bonobo_Unknown__vepv*)&bonobobridge_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "__vepv;\n"
- << " }\n"
- << " }\n"
- << "};\n"
- << "}; // namespace bonobobridge\n";
-
- dumpCorbaMethods(o, sal_False);
-
- /* convert function uno to bonobo */
- o << "static sal_Bool convert_u2b_" << m_typeName.replace('/', '_')
- << "(void* pOut, const void* pIn, const ::com::sun::star::uno::Type& type, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n";
- o << " sal_Bool ret = sal_True;\n const ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "& _u = *(const ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*) pIn;\n ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "& _b = *(";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*) pOut;\n\n"
- << " if (_u.is()) {\n"
- << " bonobobridge::UnoServant_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << " *uno_servant;\n"
- << " POA_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << " *poa;\n"
- << " CORBA_Environment ev;\n"
- << " CORBA_exception_init (&ev);\n"
- << " uno_servant = new bonobobridge::UnoServant_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "(_u.get(), bridge, &ev, sal_True);\n"
- << " poa = (POA_";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*)uno_servant->getPOA();\n"
- << " if (ev._major != CORBA_NO_EXCEPTION) {\n"
- << " delete uno_servant;\n"
- << " CORBA_exception_free (&ev);\n"
- << " _b = CORBA_OBJECT_NIL;\n"
- << " ret = sal_False;\n"
- << " }\n"
- << " else {\n"
- << " CORBA_free(PortableServer_POA_activate_object(bridge->getPOA(), poa, &ev));\n"
- << " _b = PortableServer_POA_servant_to_reference (bridge->getPOA(), poa, &ev);\n"
- << " uno_servant->corbaObjectRegistered(_b, getCppuType((";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*)NULL)";
-
- if (!isDerivedFromUnknown(m_typeName))
- o << ", sal_False";
-
- o << ");\n"
- << " }\n"
- << " CORBA_exception_free (&ev);\n"
- << " }\n"
- << " return ret;\n"
- << "}\n\n";
-
- o << "inline sal_Bool bonobobridge::cpp_convert_b2u(";
- dumpUnoType(o, m_typeName, sal_False, sal_True);
- o << " u, ";
- dumpCorbaType(o, m_typeName, sal_True, sal_True);
- o << " b, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " return bridge->convertB2U(&u, &b, ::getCppuType(&u));\n"
- << "};\n\n";
-
- o << "inline sal_Bool bonobobridge::cpp_convert_u2b(";
- dumpCorbaType(o, m_typeName, sal_False, sal_True);
- o << " b, ";
- dumpUnoType(o, m_typeName, sal_True, sal_True);
- o << " u, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " return bridge->convertU2B(&b, &u, ::getCppuType(&u));\n"
- << "};\n\n";
-
- return;
-}
-
-
-
-
-sal_uInt32 InterfaceType::getMemberCount()
-{
- sal_uInt32 count = m_reader.getMethodCount();
-
- if (count)
- m_hasMethods = sal_True;
-
- sal_uInt32 fieldCount = m_reader.getFieldCount();
- RTFieldAccess access = RT_ACCESS_INVALID;
- for (sal_uInt16 i=0; i < fieldCount; i++)
- {
- access = m_reader.getFieldAccess(i);
-
- if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
- {
- m_hasAttributes = sal_True;
- count++;
- }
- }
- return count;
-}
-
-sal_uInt32 InterfaceType::checkInheritedMemberCount(const TypeReader* pReader)
-{
- sal_uInt32 cout = 0;
- sal_Bool bSelfCheck = sal_True;
- if (!pReader)
- {
- bSelfCheck = sal_False;
- pReader = &m_reader;
- }
-
- sal_uInt32 count = 0;
- OString superType(pReader->getSuperTypeName());
- if (superType.getLength() > 0)
- {
- TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
- if (aSuperReader.isValid())
- {
- count = checkInheritedMemberCount(&aSuperReader);
- }
- }
-
- if (bSelfCheck)
- {
- count += pReader->getMethodCount();
- sal_uInt32 fieldCount = pReader->getFieldCount();
- RTFieldAccess access = RT_ACCESS_INVALID;
- for (sal_uInt16 i=0; i < fieldCount; i++)
- {
- access = pReader->getFieldAccess(i);
-
- if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
- count++;
- }
- }
-
- return count;
-}
-
-sal_uInt32 InterfaceType::getInheritedMemberCount()
-{
- if (m_inheritedMemberCount == 0)
- {
- m_inheritedMemberCount = checkInheritedMemberCount(0);
- }
-
- return m_inheritedMemberCount;
-}
-
-
-
-
-//*************************************************************************
-// ModuleType
-//*************************************************************************
-ModuleType::ModuleType(TypeReader& typeReader,
- const OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions)
- : CorbaType(typeReader, typeName, typeMgr, typeDependencies, generatedConversions)
-{
-}
-
-ModuleType::~ModuleType()
-{
-
-}
-
-
-sal_Bool ModuleType::hasConstants()
-{
- sal_uInt32 fieldCount = m_reader.getFieldCount();
- RTFieldAccess access = RT_ACCESS_INVALID;
-
- for (sal_uInt16 i=0; i < fieldCount; i++)
- {
- access = m_reader.getFieldAccess(i);
-
- if (access == RT_ACCESS_CONST)
- return sal_True;
- }
-
- return sal_False;
-}
-
-void ModuleType::dumpFunctions(FileStream& o)
-{
-};
-
-sal_Bool ModuleType::dumpConversionFunctions(FileStream& o, TypeSet* allreadyDumped)
- throw( CannotDumpException )
-{
- sal_Bool bSpecialDefine = sal_True;
-
- if (m_reader.getTypeClass() == RT_TYPE_CONSTANTS)
- {
- bSpecialDefine = sal_False;
- }
-
- dumpInclude(o, allreadyDumped, m_typeName, "hpp", bSpecialDefine);
-
- return sal_True;
-}
-
-//*************************************************************************
-// ConstantsType
-//*************************************************************************
-ConstantsType::ConstantsType(TypeReader& typeReader,
- const OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions)
- : ModuleType(typeReader, typeName, typeMgr, typeDependencies, generatedConversions)
-{
-}
-
-ConstantsType::~ConstantsType()
-{
-
-}
-
-void ConstantsType::dumpFunctions(FileStream& o)
-{
-};
-
-//*************************************************************************
-// StructureType
-//*************************************************************************
-StructureType::StructureType(TypeReader& typeReader,
- const OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions)
- : CorbaType(typeReader, typeName, typeMgr, typeDependencies, generatedConversions)
-{
-}
-
-StructureType::~StructureType()
-{
-
-}
-
-void StructureType::dumpFunctions(FileStream& o)
-{
- m_generatedConversions->insert(m_typeName);
-
- OString superType(m_reader.getSuperTypeName());
-
- o << "static sal_Bool convert_b2u_" << m_typeName.replace('/', '_')
- << "(void* pOut, const void* pIn, const ::com::sun::star::uno::Type& type, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " sal_Bool ret = sal_True;\n ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "& _u = *(";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*) pOut;\n const ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "& _b = *(const ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*) pIn;\n\n";
-
- sal_uInt32 fieldCount = m_reader.getFieldCount();
- OString fieldName;
- OString fieldType;
- sal_uInt16 i=0;
- sal_Int32 cIndex;
- OString corbaFieldName;
-
- sal_Bool bIsUnion = sal_False;
-
- for (i=0; !bIsUnion && (i < fieldCount); i++)
- bIsUnion = OString("_union_fake_tag").equals(m_reader.getFieldName(i));
-
- if (bIsUnion)
- {
- o << " // fix me: union !!!!\n ret = sal_False;\n";
- }
- else
- {
- if (superType.getLength() > 0)
- {
- o << " ret = bonobobridge::cpp_convert_b2u((";
- dumpUnoType(o, superType, sal_False, sal_False);
- o << "&) _u, (const ";
- dumpCorbaType(o, superType, sal_False, sal_False);
- o << "&) _b, bridge);\n";
- }
-
- for (i=0; i < fieldCount; i++)
- {
- fieldName = m_reader.getFieldName(i);
- fieldType = m_reader.getFieldType(i);
- cIndex = fieldName.indexOf("_reserved_identifier_");
-
- if (cIndex == 0)
- corbaFieldName = fieldName.copy(OString("_reserved_identifier_").getLength());
- else
- corbaFieldName = fieldName;
-
- if (isArray(fieldType))
- o << " // fix me: no conversion of array types!\n";
- else
- o << " if (ret)\n"
- << " ret = bonobobridge::cpp_convert_b2u("
- << "_u." << fieldName.getStr()
- << " , _b." << corbaFieldName.getStr()
- << ", bridge);\n";
- }
- }
- o << " return ret;\n"
- << "}\n\n"
- << "static sal_Bool convert_u2b_" << m_typeName.replace('/', '_')
- << "(void* pOut, const void* pIn, const ::com::sun::star::uno::Type& type, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " sal_Bool ret = sal_True;\n const ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "& _u = *(const ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*) pIn;\n ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "& _b = *(";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*) pOut;\n\n";
-
- if (bIsUnion)
- o << " // fix me: union !!!!\n ret = sal_False;\n";
- else
- {
- if (superType.getLength() > 0)
- {
- o << " ret = bonobobridge::cpp_convert_u2b((";
- dumpCorbaType(o, superType, sal_False, sal_False);
- o << "&) _u, (const ";
- dumpUnoType(o, superType, sal_False, sal_False);
- o << "&) _b, bridge);\n";
- }
-
- for (i=0; i < fieldCount; i++)
- {
- fieldName = m_reader.getFieldName(i);
- fieldType = m_reader.getFieldType(i);
-
- cIndex = fieldName.indexOf("_reserved_identifier_");
-
- if (cIndex == 0)
- corbaFieldName = fieldName.copy(OString("_reserved_identifier_").getLength());
- else
- corbaFieldName = fieldName;
-
- if (isArray(fieldType))
- o << " // fix me: no conversion of array types!\n";
- else
- o << " if (ret)\n"
- << " ret = bonobobridge::cpp_convert_u2b("
- << "_b." << corbaFieldName.getStr()
- << ", _u." << fieldName.getStr()
- << ", bridge);\n";
- }
- }
-
- o << " return ret;\n"
- << "}\n\n";
-
- o << "inline sal_Bool bonobobridge::cpp_convert_b2u(";
- dumpUnoType(o, m_typeName, sal_False, sal_True);
- o << " u , ";
- dumpCorbaType(o, m_typeName, sal_True, sal_True);
- o << " b, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " return convert_b2u_" << m_typeName.replace('/', '_')
- << "(&u, &b, ::getCppuType(&u), bridge);\n"
- << "};\n\n";
-
- o << "inline sal_Bool bonobobridge::cpp_convert_u2b(";
- dumpCorbaType(o, m_typeName, sal_False, sal_True);
- o << " b, ";
- dumpUnoType(o, m_typeName, sal_True, sal_True);
- o << " u, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " return convert_u2b_" << m_typeName.replace('/', '_')
- << "(&b, &u, ::getCppuType(&u), bridge);\n"
- << "};\n\n";
-}
-
-sal_Bool StructureType::dumpSuperMember(FileStream& o, const OString& superType, sal_Bool bWithType)
-{
- sal_Bool hasMember = sal_False;
-
- if (superType.getLength() > 0)
- {
- TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
-
- if (aSuperReader.isValid())
- {
- hasMember = dumpSuperMember(o, aSuperReader.getSuperTypeName(), bWithType);
-
- sal_uInt32 fieldCount = aSuperReader.getFieldCount();
- RTFieldAccess access = RT_ACCESS_INVALID;
- OString fieldName;
- OString fieldType;
- for (sal_uInt16 i=0; i < fieldCount; i++)
- {
- access = aSuperReader.getFieldAccess(i);
-
- if (access == RT_ACCESS_CONST || access == RT_ACCESS_INVALID)
- continue;
-
- fieldName = aSuperReader.getFieldName(i);
- fieldType = aSuperReader.getFieldType(i);
-
- if (hasMember)
- {
- o << ", ";
- } else
- {
- hasMember = (fieldCount > 0);
- }
-
- if (bWithType)
- {
- dumpUnoType(o, fieldType, sal_True, sal_True);
- o << " ";
- }
- o << "__" << fieldName;
- }
- }
- }
-
- return hasMember;
-}
-
-//*************************************************************************
-// ExceptionType
-//*************************************************************************
-ExceptionType::ExceptionType(TypeReader& typeReader,
- const OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions)
- : CorbaType(typeReader, typeName, typeMgr, typeDependencies, generatedConversions)
-{
-}
-
-ExceptionType::~ExceptionType()
-{
-
-}
-
-void ExceptionType::dumpFunctions(FileStream& o)
-{
- if (m_typeName.equals("com/sun/star/uno/Exception"))
- return;
-
- if (m_typeName.equals("com/sun/star/uno/RuntimeException"))
- return;
-
- m_generatedConversions->insert(m_typeName);
-
- OString superType(m_reader.getSuperTypeName());
-
- o << "static sal_Bool convert_b2u_" << m_typeName.replace('/', '_')
- << "(void* pOut, const void* pIn, const ::com::sun::star::uno::Type& type, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " sal_Bool ret = sal_True;\n";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "& _u = *(";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*) pOut;\n const ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "& _b = *(const ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*) pIn;\n\n";
-
- sal_uInt32 fieldCount = m_reader.getFieldCount();
- OString fieldName;
- OString fieldType;
- sal_uInt16 i=0;
- sal_Int32 cIndex;
- OString corbaFieldName;
-
- if (superType.getLength() > 0)
- {
- o << " ret = bonobobridge::cpp_convert_b2u((";
- dumpUnoType(o, superType, sal_False, sal_False);
- o << "&) _u, (const ";
- dumpCorbaType(o, superType, sal_False, sal_False);
- o << "&) _b, bridge);\n";
- }
-
- for (i=0; i < fieldCount; i++)
- {
- fieldName = m_reader.getFieldName(i);
- fieldType = m_reader.getFieldType(i);
- cIndex = fieldName.indexOf("_reserved_identifier_");
-
- if (cIndex == 0)
- corbaFieldName = fieldName.copy(OString("_reserved_identifier_").getLength());
- else
- corbaFieldName = fieldName;
-
- if (isArray(fieldType))
- o << " // fix me: no conversion of array types!\n";
- else
- o << " if (ret)\n"
- << " ret = bonobobridge::cpp_convert_b2u("
- << "_u." << fieldName.getStr()
- << ", _b." << corbaFieldName.getStr()
- << ", bridge);\n";
- }
- o << " return ret;\n"
- << "}\n\n";
-
-
- o << "static sal_Bool convert_u2b_" << m_typeName.replace('/', '_')
- << "(void* pOut, const void* pIn, const ::com::sun::star::uno::Type& type, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " sal_Bool ret = sal_True;\n const ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "& _u = *(const ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*) pIn;\n ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "& _b = *(";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*) pOut;\n\n";
-
- if (superType.getLength() > 0)
- {
- o << " ret = bonobobridge::cpp_convert_u2b((";
- dumpCorbaType(o, superType, sal_False, sal_False);
- o << "&) _u, (const ";
- dumpUnoType(o, superType, sal_False, sal_False);
- o << "&) _b, bridge);\n";
- }
-
- for (i=0; i < fieldCount; i++)
- {
- fieldName = m_reader.getFieldName(i);
- fieldType = m_reader.getFieldType(i);
-
- cIndex = fieldName.indexOf("_reserved_identifier_");
-
- if (cIndex == 0)
- corbaFieldName = fieldName.copy(OString("_reserved_identifier_").getLength());
- else
- corbaFieldName = fieldName;
-
- if (isArray(fieldType))
- o << " // fix me: no conversion of array types!\n";
- else
- o << " if (ret)\n"
- << " ret = bonobobridge::cpp_convert_u2b("
- << "_b." << corbaFieldName.getStr()
- << ", _u." << fieldName.getStr()
- << ", bridge);\n";
- }
-
- o << " return ret;\n"
- << "}\n\n";
-
- o << "inline sal_Bool bonobobridge::cpp_convert_b2u(";
- dumpUnoType(o, m_typeName, sal_False, sal_True);
- o << " u , ";
- dumpCorbaType(o, m_typeName, sal_True, sal_True);
- o << " b, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " return convert_b2u_" << m_typeName.replace('/', '_')
- << "(&u, &b, ::getCppuType(&u), bridge);\n"
- << "};\n\n";
-
- o << "inline sal_Bool bonobobridge::cpp_convert_u2b(";
- dumpCorbaType(o, m_typeName, sal_False, sal_True);
- o << " b, ";
- dumpUnoType(o, m_typeName, sal_True, sal_True);
- o << " u, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " return convert_u2b_" << m_typeName.replace('/', '_')
- << "(&b, &u, ::getCppuType(&u), bridge);\n"
- << "};\n\n";
-}
-
-
-
-sal_Bool ExceptionType::dumpSuperMember(FileStream& o, const OString& superType, sal_Bool bWithType)
-{
- sal_Bool hasMember = sal_False;
-
- if (superType.getLength() > 0)
- {
- TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
-
- if (aSuperReader.isValid())
- {
- hasMember = dumpSuperMember(o, aSuperReader.getSuperTypeName(), bWithType);
-
- sal_uInt32 fieldCount = aSuperReader.getFieldCount();
- RTFieldAccess access = RT_ACCESS_INVALID;
- OString fieldName;
- OString fieldType;
- for (sal_uInt16 i=0; i < fieldCount; i++)
- {
- access = aSuperReader.getFieldAccess(i);
-
- if (access == RT_ACCESS_CONST || access == RT_ACCESS_INVALID)
- continue;
-
- fieldName = aSuperReader.getFieldName(i);
- fieldType = aSuperReader.getFieldType(i);
-
- if (hasMember)
- {
- o << ", ";
- } else
- {
- hasMember = (fieldCount > 0);
- }
-
- if (bWithType)
- {
- dumpUnoType(o, fieldType, sal_True, sal_True);
- o << " ";
- }
- o << "__" << fieldName;
- }
- }
- }
-
- return hasMember;
-}
-
-//*************************************************************************
-// EnumType
-//*************************************************************************
-EnumType::EnumType(TypeReader& typeReader,
- const OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions)
- : CorbaType(typeReader, typeName, typeMgr, typeDependencies, generatedConversions)
-{
-}
-
-EnumType::~EnumType()
-{
-
-}
-
-void EnumType::dumpFunctions(FileStream& o)
-{
- if (m_typeName.equals("com/sun/star/uno/TypeClass"))
- return;
-
- m_generatedConversions->insert(m_typeName);
-
- o << "static sal_Bool convert_b2u_" << m_typeName.replace('/', '_')
- << "(void* pOut, const void* pIn, const ::com::sun::star::uno::Type& type, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " *(";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*) pOut = (";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << ") *(const ";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*) pIn;\n\n"
- << " return sal_True;\n"
- << "}\n\n";
-
- o << "static sal_Bool convert_u2b_" << m_typeName.replace('/', '_')
- << "(void* pOut, const void* pIn, const ::com::sun::star::uno::Type& type, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " *(";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << "*) pOut = (";
- dumpCorbaType(o, m_typeName, sal_False, sal_False);
- o << ") *(const ";
- dumpUnoType(o, m_typeName, sal_False, sal_False);
- o << "*) pIn;\n\n"
- << " return sal_True;\n"
- << "}\n\n";
-
- o << "inline sal_Bool bonobobridge::cpp_convert_b2u(";
- dumpUnoType(o, m_typeName, sal_False, sal_True);
- o << " u , ";
- dumpCorbaType(o, m_typeName, sal_True, sal_True);
- o << " b, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " return convert_b2u_" << m_typeName.replace('/', '_')
- << "(&u, &b, ::getCppuType(&u), bridge);\n"
- << "};\n\n";
-
- o << "inline sal_Bool bonobobridge::cpp_convert_u2b(";
- dumpCorbaType(o, m_typeName, sal_False, sal_True);
- o << " b, ";
- dumpUnoType(o, m_typeName, sal_True, sal_True);
- o << " u, const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
- << " return convert_u2b_" << m_typeName.replace('/', '_')
- << "(&b, &u, ::getCppuType(&u), bridge);\n"
- << "};\n\n";
-
- return;
-}
-
-
-//*************************************************************************
-// TypeDefType
-//*************************************************************************
-TypeDefType::TypeDefType(TypeReader& typeReader,
- const OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions)
- : CorbaType(typeReader, typeName, typeMgr, typeDependencies, generatedConversions)
-{
-}
-
-TypeDefType::~TypeDefType()
-{
-
-}
-
-void TypeDefType::dumpFunctions(FileStream& o)
-{
-}
-
-
-
-//*************************************************************************
-// produceType
-//*************************************************************************
-sal_Bool produceType(const OString& typeName,
- TypeManager& typeMgr,
- TypeDependency& typeDependencies,
- CorbaOptions* pOptions,
- FileStream& o, TypeSet* allreadyDumped,
- TypeSet* generatedConversions)
- throw( CannotDumpException )
-{
- sal_Bool bNewTypeSet = (allreadyDumped == NULL);
- sal_Bool ret = sal_True;
-
- if (bNewTypeSet)
- allreadyDumped = new TypeSet();
-
-
- if (!typeDependencies.isGenerated(typeName))
- {
- TypeReader reader(typeMgr.getTypeReader(typeName));
-
- if (!reader.isValid() && !typeName.equals("/"))
- ret = sal_False;
-
- if( ret && !checkTypeDependencies(typeMgr, typeDependencies, typeName))
- ret = sal_False;
-
- if (ret)
- {
- RTTypeClass typeClass = reader.getTypeClass();
-
- switch (typeClass)
- {
- case RT_TYPE_INTERFACE:
- {
- InterfaceType iType(reader, typeName, typeMgr, typeDependencies, generatedConversions);
- ret = iType.dump(pOptions, o, allreadyDumped);
- if (ret) typeDependencies.setGenerated(typeName);
- ret = iType.dumpDependedTypes(pOptions, o, allreadyDumped);
- }
- break;
- case RT_TYPE_MODULE:
- {
- ModuleType mType(reader, typeName, typeMgr, typeDependencies, generatedConversions);
- if (mType.hasConstants())
- {
- ret = mType.dump(pOptions, o, allreadyDumped);
- if (ret) typeDependencies.setGenerated(typeName);
- } else
- {
- typeDependencies.setGenerated(typeName);
- ret = sal_True;
- }
- }
- break;
- case RT_TYPE_STRUCT:
- {
- StructureType sType(reader, typeName, typeMgr, typeDependencies, generatedConversions);
- ret = sType.dump(pOptions, o, allreadyDumped);
- if (ret) typeDependencies.setGenerated(typeName);
- ret = sType.dumpDependedTypes(pOptions, o, allreadyDumped);
- }
- break;
- case RT_TYPE_ENUM:
- {
- EnumType enType(reader, typeName, typeMgr, typeDependencies, generatedConversions);
- ret = enType.dump(pOptions, o, allreadyDumped);
- if (ret) typeDependencies.setGenerated(typeName);
- ret = enType.dumpDependedTypes(pOptions, o, allreadyDumped);
- }
- break;
- case RT_TYPE_EXCEPTION:
- {
- ExceptionType eType(reader, typeName, typeMgr, typeDependencies, generatedConversions);
- ret = eType.dump(pOptions, o, allreadyDumped);
- if (ret) typeDependencies.setGenerated(typeName);
- ret = eType.dumpDependedTypes(pOptions, o, allreadyDumped);
- }
- break;
- case RT_TYPE_TYPEDEF:
- {
- TypeDefType tdType(reader, typeName, typeMgr, typeDependencies, generatedConversions);
- ret = tdType.dump(pOptions, o, allreadyDumped);
- if (ret) typeDependencies.setGenerated(typeName);
- ret = tdType.dumpDependedTypes(pOptions, o, allreadyDumped);
- }
- break;
- case RT_TYPE_CONSTANTS:
- {
- ConstantsType cType(reader, typeName, typeMgr, typeDependencies, generatedConversions);
- if (cType.hasConstants())
- {
- ret = cType.dump(pOptions, o, allreadyDumped);
- if (ret) typeDependencies.setGenerated(typeName);
- } else
- {
- typeDependencies.setGenerated(typeName);
- ret = sal_True;
- }
- }
- break;
- case RT_TYPE_SERVICE:
- case RT_TYPE_OBJECT:
- ret = sal_True;
- break;
- }
- }
- }
-
- if (bNewTypeSet)
- delete allreadyDumped;
-
- return ret;
-}
-
-//*************************************************************************
-// scopedName
-//*************************************************************************
-OString scopedName(const OString& scope, const OString& type,
- sal_Bool bNoNameSpace)
-{
- sal_Int32 nPos = type.lastIndexOf( '/' );
- if (nPos == -1)
- return type;
-
- if (bNoNameSpace)
- return type.copy(nPos+1);
-
- OStringBuffer tmpBuf(type.getLength()*2);
- nPos = 0;
- do
- {
- tmpBuf.append("::");
- tmpBuf.append(type.getToken(0, '/', nPos));
- } while( nPos != -1 );
-
- return tmpBuf.makeStringAndClear();
-}
-
-//*************************************************************************
-// shortScopedName
-//*************************************************************************
-OString shortScopedName(const OString& scope, const OString& type,
- sal_Bool bNoNameSpace)
-{
- sal_Int32 nPos = type.lastIndexOf( '/' );
- if( nPos == -1 )
- return OString();
-
- if (bNoNameSpace)
- return OString();
-
- // scoped name only if the namespace is not equal
- if (scope.lastIndexOf('/') > 0)
- {
- OString tmpScp(scope.copy(0, scope.lastIndexOf('/')));
- OString tmpScp2(type.copy(0, nPos));
-
- if (tmpScp == tmpScp2)
- return OString();
- }
-
- OString aScope( type.copy( 0, nPos ) );
- OStringBuffer tmpBuf(aScope.getLength()*2);
-
- nPos = 0;
- do
- {
- tmpBuf.append("::");
- tmpBuf.append(aScope.getToken(0, '/', nPos));
- } while( nPos != -1 );
-
- return tmpBuf.makeStringAndClear();
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/codemaker/source/bonobowrappermaker/corbatype.hxx b/codemaker/source/bonobowrappermaker/corbatype.hxx
deleted file mode 100644
index b3955f2c67fb..000000000000
--- a/codemaker/source/bonobowrappermaker/corbatype.hxx
+++ /dev/null
@@ -1,312 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _CORBAMAKER_CPPUTYPE_HXX_
-#define _CORBAMAKER_CPPUTYPE_HXX_
-
-#include <codemaker/typemanager.hxx>
-#include <codemaker/dependency.hxx>
-
-#include <hash_set>
-
-enum BASETYPE
-{
- BT_INVALID,
- BT_VOID,
- BT_ANY,
- BT_TYPE,
- BT_BOOLEAN,
- BT_CHAR,
- BT_STRING,
- BT_FLOAT,
- BT_DOUBLE,
- BT_OCTET,
- BT_BYTE,
- BT_SHORT,
- BT_LONG,
- BT_HYPER,
- BT_UNSIGNED_SHORT,
- BT_UNSIGNED_LONG,
- BT_UNSIGNED_HYPER
-};
-
-
-class CorbaOptions;
-class FileStream;
-
-struct OStringEqual
-{
- sal_Bool operator() (const ::rtl::OString& lhs, const ::rtl::OString& rhs) const
- { return lhs.equals( rhs );}
-};
-
-struct OStringHash : public std::unary_function< const ::rtl::OString &, size_t >
-{
- size_t operator()( const ::rtl::OString & rStr ) const
- { return rStr.hashCode(); }
-};
-
-typedef std::hash_set< ::rtl::OString, OStringHash, OStringEqual > TypeSet;
-
-class CorbaType
-{
-public:
- CorbaType(TypeReader& typeReader,
- const ::rtl::OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversion);
-
- virtual ~CorbaType();
-
- virtual sal_Bool dump(CorbaOptions* pOptions, FileStream& o, TypeSet* allreadyDumped) throw( CannotDumpException );
- virtual sal_Bool dumpDependedTypes(CorbaOptions* pOptions, FileStream& o, TypeSet* allreadyDumped) throw( CannotDumpException );
- virtual sal_Bool dumpConversionFunctions(FileStream& o, TypeSet* allreadyDumped) throw( CannotDumpException );
-
- static void dumpDefaultHxxIncludes(FileStream& o);
-
- virtual void dumpInclude(FileStream& o, TypeSet* allreadyDumped, const ::rtl::OString& typeName, sal_Char* prefix, sal_Bool bExtended=sal_False, sal_Bool bCaseSensitive=sal_False);
- virtual void dumpDepIncludes(FileStream& o, TypeSet* allreadyDumped, const ::rtl::OString& typeName, sal_Char* prefix);
-
- virtual void dumpNameSpace(FileStream& o, sal_Bool bOpen = sal_True, sal_Bool bFull = sal_False, const ::rtl::OString& type="");
- virtual void dumpFunctions(FileStream& o) = 0;
-
- virtual ::rtl::OString printUnoType( const ::rtl::OString& type,
- sal_Bool bConst=sal_False,
- sal_Bool bRef=sal_False,
- sal_Bool bNative=sal_False)
- throw( CannotDumpException );
-
- virtual void dumpUnoType(FileStream& o,
- const ::rtl::OString& type,
- sal_Bool bConst=sal_False,
- sal_Bool bRef=sal_False,
- sal_Bool bNative=sal_False)
- throw( CannotDumpException );
-
- virtual ::rtl::OString printCorbaType(const ::rtl::OString& type,
- sal_Bool bConst,
- sal_Bool bRef)
- throw( CannotDumpException );
-
- virtual void dumpCorbaType(FileStream& o,
- const ::rtl::OString& type,
- sal_Bool bConst=sal_False,
- sal_Bool bRef=sal_False)
- throw( CannotDumpException );
-
- sal_Bool isPassedAsPointer(const ::rtl::OString& type);
- sal_Bool isArray(const ::rtl::OString& type);
-
- sal_Bool isDerivedFromUnknown(const ::rtl::OString& typeName);
-
-
- ::rtl::OString printCorbaParameter(const ::rtl::OString& type,
- sal_Bool bOut = sal_False)
- throw( CannotDumpException );
-
- ::rtl::OString getTypeClass(const ::rtl::OString& type="",
- sal_Bool bCStyle=sal_False);
- ::rtl::OString getUnoBaseType(const ::rtl::OString& type);
- ::rtl::OString getCorbaBaseType(const ::rtl::OString& type);
-
- void dumpTypeInit(FileStream& o, const ::rtl::OString& type);
- BASETYPE isBaseType(const ::rtl::OString& type);
-
- ::rtl::OString typeToIdentifier(const ::rtl::OString& type);
-
- virtual sal_uInt32 getMemberCount();
- virtual sal_uInt32 getInheritedMemberCount();
-
- sal_Bool isNestedTypeByName(const ::rtl::OString& type);
-
- void inc(sal_uInt32 num=4);
- void dec(sal_uInt32 num=4);
- ::rtl::OString indent();
- ::rtl::OString indent(sal_uInt32 num);
-protected:
- virtual sal_uInt32 checkInheritedMemberCount(const TypeReader* pReader);
-
- ::rtl::OString checkSpecialCorbaType(const ::rtl::OString& type);
- ::rtl::OString checkRealBaseType(const ::rtl::OString& type, sal_Bool bResolveTypeOnly = sal_False);
-
-protected:
- sal_uInt32 m_inheritedMemberCount;
- sal_uInt32 m_indentLength;
- ::rtl::OString m_typeName;
- ::rtl::OString m_name;
- TypeReader m_reader;
- TypeManager& m_typeMgr;
- TypeDependency m_dependencies;
- TypeSet* m_generatedConversions;
-};
-
-class InterfaceType : public CorbaType
-{
-public:
- InterfaceType(TypeReader& typeReader,
- const ::rtl::OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversion);
-
- virtual ~InterfaceType();
-
- void dumpFunctions(FileStream& o);
-
- void dumpUnoMethods(FileStream& o, sal_Bool bDeclOnly, sal_Bool bDelegateToSuper);
- void dumpCorbaMethods(FileStream& o, sal_Bool bDeclOnly);
-
- sal_uInt32 getMemberCount();
- sal_uInt32 getInheritedMemberCount();
-
-protected:
- sal_uInt32 checkInheritedMemberCount(const TypeReader* pReader);
-
-protected:
- sal_uInt32 m_inheritedMemberCount;
- sal_Bool m_hasAttributes;
- sal_Bool m_hasMethods;
-};
-
-class ModuleType : public CorbaType
-{
-public:
- ModuleType(TypeReader& typeReader,
- const ::rtl::OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversion);
-
- virtual ~ModuleType();
-
- sal_Bool dumpConversionFunctions(FileStream& o, TypeSet* allreadyDumped) throw( CannotDumpException );
- void dumpFunctions(FileStream& o);
- sal_Bool hasConstants();
-};
-
-class ConstantsType : public ModuleType
-{
-public:
- ConstantsType(TypeReader& typeReader,
- const ::rtl::OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversion);
-
- virtual ~ConstantsType();
-
- void dumpFunctions(FileStream& o);
-};
-
-class StructureType : public CorbaType
-{
-public:
- StructureType(TypeReader& typeReader,
- const ::rtl::OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversion);
-
- virtual ~StructureType();
-
- void dumpFunctions(FileStream& o);
-
- sal_Bool dumpSuperMember(FileStream& o, const ::rtl::OString& super, sal_Bool bWithType);
-};
-
-class ExceptionType : public CorbaType
-{
-public:
- ExceptionType(TypeReader& typeReader,
- const ::rtl::OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversions);
-
- virtual ~ExceptionType();
-
- void dumpFunctions(FileStream& o);
-
- sal_Bool dumpSuperMember(FileStream& o, const ::rtl::OString& super, sal_Bool bWithType);
-};
-
-class EnumType : public CorbaType
-{
-public:
- EnumType(TypeReader& typeReader,
- const ::rtl::OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversion);
-
- virtual ~EnumType();
-
- void dumpFunctions(FileStream& o);
-};
-
-class TypeDefType : public CorbaType
-{
-public:
- TypeDefType(TypeReader& typeReader,
- const ::rtl::OString& typeName,
- const TypeManager& typeMgr,
- const TypeDependency& typeDependencies,
- TypeSet* generatedConversion);
-
- virtual ~TypeDefType();
-
- void dumpFunctions(FileStream& o);
-};
-
-
-sal_Bool produceType(const ::rtl::OString& typeName,
- TypeManager& typeMgr,
- TypeDependency& typeDependencies,
- CorbaOptions* pOptions,
- FileStream& o, TypeSet* allreadyDumped,
- TypeSet* generatedConversions)
- throw( CannotDumpException );
-
-/**
- * This function returns a C++ scoped name, represents the namespace
- * scoping of this type, e.g. com:.sun::star::uno::XInterface. If the scope of
- * the type is equal scope, the relativ name will be used.
- */
-::rtl::OString scopedName(const ::rtl::OString& scope,
- const ::rtl::OString& type,
- sal_Bool bNoNameSpace=sal_False);
-
-::rtl::OString shortScopedName(const ::rtl::OString& scope,
- const ::rtl::OString& type,
- sal_Bool bNoNameSpace=sal_False);
-
-
-#endif // _CORBAMAKER_CPPUTYPE_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/codemaker/source/bonobowrappermaker/makefile.mk b/codemaker/source/bonobowrappermaker/makefile.mk
deleted file mode 100644
index 36889e96400f..000000000000
--- a/codemaker/source/bonobowrappermaker/makefile.mk
+++ /dev/null
@@ -1,62 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=codemaker
-TARGET=bonobowrappermaker
-TARGETTYPE=CUI
-LIBTARGET=NO
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-
-CXXFILES= corbamaker.cxx \
- corbaoptions.cxx \
- corbatype.cxx
-
-
-APP1TARGET= $(TARGET)
-
-APP1OBJS= $(OBJ)$/corbamaker.obj \
- $(OBJ)$/corbaoptions.obj \
- $(OBJ)$/corbatype.obj
-
-APP1STDLIBS= \
- $(SALLIB) \
- $(SALHELPERLIB) \
- $(REGLIB)
-
-APP1LIBS= \
- $(LB)$/codemaker.lib
-
-.INCLUDE : target.mk