1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir #ifndef INCLUDED_UNODEVTOOLS_SOURCE_SKELETONMAKER_SKELETONCPP_HXX
28*cdf0e10cSrcweir #define INCLUDED_UNODEVTOOLS_SOURCE_SKELETONMAKER_SKELETONCPP_HXX
29*cdf0e10cSrcweir 
30*cdf0e10cSrcweir #include <fstream>
31*cdf0e10cSrcweir 
32*cdf0e10cSrcweir #include "codemaker/generatedtypeset.hxx"
33*cdf0e10cSrcweir #include "skeletoncommon.hxx"
34*cdf0e10cSrcweir 
35*cdf0e10cSrcweir namespace skeletonmaker { namespace cpp {
36*cdf0e10cSrcweir 
37*cdf0e10cSrcweir // referenceType
38*cdf0e10cSrcweir // 0 = no reference
39*cdf0e10cSrcweir // 1 = use of css::uno::Reference for interfaces
40*cdf0e10cSrcweir // 2 = reference (includes css::uno::Reference for interfaces)
41*cdf0e10cSrcweir // 4 = const reference  (includes css::uno::Reference for interfaces)
42*cdf0e10cSrcweir // 8 = default construction for example for return types, means "return <type>();"
43*cdf0e10cSrcweir // 16 = default member initialization in a constructor
44*cdf0e10cSrcweir void printType(std::ostream & o,
45*cdf0e10cSrcweir                ProgramOptions const & options, TypeManager const & manager,
46*cdf0e10cSrcweir                codemaker::UnoType::Sort sort, RTTypeClass typeClass,
47*cdf0e10cSrcweir                rtl::OString const & name, sal_Int32 rank,
48*cdf0e10cSrcweir                std::vector< rtl::OString > const & arguments,
49*cdf0e10cSrcweir                short referenceType, bool defaultvalue=false);
50*cdf0e10cSrcweir 
51*cdf0e10cSrcweir void printType(std::ostream & o,
52*cdf0e10cSrcweir                ProgramOptions const & options, TypeManager const & manager,
53*cdf0e10cSrcweir                rtl::OString const & type, short referenceType,
54*cdf0e10cSrcweir                bool defaultvalue=false);
55*cdf0e10cSrcweir 
56*cdf0e10cSrcweir 
57*cdf0e10cSrcweir bool printConstructorParameters(std::ostream & o,
58*cdf0e10cSrcweir                                 ProgramOptions const & options,
59*cdf0e10cSrcweir                                 TypeManager const & manager,
60*cdf0e10cSrcweir                                 typereg::Reader const & reader,
61*cdf0e10cSrcweir                                 typereg::Reader const & outerReader,
62*cdf0e10cSrcweir                                 std::vector< rtl::OString > const & arguments);
63*cdf0e10cSrcweir 
64*cdf0e10cSrcweir 
65*cdf0e10cSrcweir void printConstructor(std::ostream & o,
66*cdf0e10cSrcweir                       ProgramOptions const & options,
67*cdf0e10cSrcweir                       TypeManager const & manager,
68*cdf0e10cSrcweir                       typereg::Reader const & reader,
69*cdf0e10cSrcweir                       std::vector< rtl::OString > const & arguments);
70*cdf0e10cSrcweir 
71*cdf0e10cSrcweir 
72*cdf0e10cSrcweir void printMethodParameters(std::ostream & o,
73*cdf0e10cSrcweir                            ProgramOptions const & options,
74*cdf0e10cSrcweir                            TypeManager const & manager,
75*cdf0e10cSrcweir                            typereg::Reader const & reader,
76*cdf0e10cSrcweir                            sal_uInt16 method, bool previous,
77*cdf0e10cSrcweir                            bool withtype);
78*cdf0e10cSrcweir 
79*cdf0e10cSrcweir 
80*cdf0e10cSrcweir void printExceptionSpecification(std::ostream & o,
81*cdf0e10cSrcweir                                  ProgramOptions const & options,
82*cdf0e10cSrcweir                                  TypeManager const & manager,
83*cdf0e10cSrcweir                                  typereg::Reader const & reader,
84*cdf0e10cSrcweir                                  sal_uInt16 method);
85*cdf0e10cSrcweir 
86*cdf0e10cSrcweir 
87*cdf0e10cSrcweir void printMethods(std::ostream & o,
88*cdf0e10cSrcweir                   ProgramOptions const & options, TypeManager const & manager,
89*cdf0e10cSrcweir                   typereg::Reader const & reader,
90*cdf0e10cSrcweir                   codemaker::GeneratedTypeSet & generated,
91*cdf0e10cSrcweir                   rtl::OString const & delegate,
92*cdf0e10cSrcweir                   rtl::OString const & classname=rtl::OString(),
93*cdf0e10cSrcweir                   rtl::OString const & indentation=rtl::OString(),
94*cdf0e10cSrcweir                   bool defaultvalue=false,
95*cdf0e10cSrcweir                   rtl::OString const & propertyhelper=rtl::OString());
96*cdf0e10cSrcweir 
97*cdf0e10cSrcweir 
98*cdf0e10cSrcweir void printConstructionMethods(std::ostream & o,
99*cdf0e10cSrcweir                               ProgramOptions const & options,
100*cdf0e10cSrcweir                               TypeManager const & manager,
101*cdf0e10cSrcweir                               typereg::Reader const & reader);
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir 
104*cdf0e10cSrcweir void printServiceMembers(std::ostream & o,
105*cdf0e10cSrcweir                          ProgramOptions const & options,
106*cdf0e10cSrcweir                          TypeManager const & manager,
107*cdf0e10cSrcweir                          typereg::Reader const & reader,
108*cdf0e10cSrcweir                          rtl::OString const & type,
109*cdf0e10cSrcweir                          rtl::OString const & delegate);
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir 
112*cdf0e10cSrcweir void printMapsToCppType(std::ostream & o,
113*cdf0e10cSrcweir                         ProgramOptions const & options,
114*cdf0e10cSrcweir                         TypeManager const & manager,
115*cdf0e10cSrcweir                         codemaker::UnoType::Sort sort,
116*cdf0e10cSrcweir                         RTTypeClass typeClass,
117*cdf0e10cSrcweir                         rtl::OString const & name,
118*cdf0e10cSrcweir                         sal_Int32 rank,
119*cdf0e10cSrcweir                         std::vector< rtl::OString > const & arguments,
120*cdf0e10cSrcweir                         const char * cppTypeSort);
121*cdf0e10cSrcweir 
122*cdf0e10cSrcweir 
123*cdf0e10cSrcweir void generateDocumentation(std::ostream & o,
124*cdf0e10cSrcweir                            ProgramOptions const & options,
125*cdf0e10cSrcweir                            TypeManager const & manager,
126*cdf0e10cSrcweir                            rtl::OString const & type,
127*cdf0e10cSrcweir                            rtl::OString const & delegate);
128*cdf0e10cSrcweir 
129*cdf0e10cSrcweir 
130*cdf0e10cSrcweir void generateSkeleton(ProgramOptions const & options,
131*cdf0e10cSrcweir                       TypeManager const & manager,
132*cdf0e10cSrcweir                       std::vector< rtl::OString > const & types,
133*cdf0e10cSrcweir                       rtl::OString const & delegate);
134*cdf0e10cSrcweir 
135*cdf0e10cSrcweir void generateCalcAddin(ProgramOptions const & options,
136*cdf0e10cSrcweir                        TypeManager const & manager,
137*cdf0e10cSrcweir                        std::vector< rtl::OString > const & types);
138*cdf0e10cSrcweir 
139*cdf0e10cSrcweir } }
140*cdf0e10cSrcweir 
141*cdf0e10cSrcweir #endif // INCLUDED_UNODEVTOOLS_SOURCE_SKELETONMAKER_SKELETONCPP_HXX
142*cdf0e10cSrcweir 
143