summaryrefslogtreecommitdiff
path: root/autodoc/inc
diff options
context:
space:
mode:
Diffstat (limited to 'autodoc/inc')
-rw-r--r--autodoc/inc/ary/actions.hxx105
-rw-r--r--autodoc/inc/ary/ary.hxx93
-rw-r--r--autodoc/inc/ary/ary_disp.hxx114
-rw-r--r--autodoc/inc/ary/arygroup.hxx110
-rw-r--r--autodoc/inc/ary/ceslot.hxx106
-rw-r--r--autodoc/inc/ary/cessentl.hxx91
-rw-r--r--autodoc/inc/ary/cpp/c_builtintype.hxx100
-rw-r--r--autodoc/inc/ary/cpp/c_ce.hxx106
-rw-r--r--autodoc/inc/ary/cpp/c_class.hxx248
-rw-r--r--autodoc/inc/ary/cpp/c_cppentity.hxx94
-rw-r--r--autodoc/inc/ary/cpp/c_de.hxx107
-rw-r--r--autodoc/inc/ary/cpp/c_define.hxx85
-rw-r--r--autodoc/inc/ary/cpp/c_enum.hxx119
-rw-r--r--autodoc/inc/ary/cpp/c_enuval.hxx99
-rw-r--r--autodoc/inc/ary/cpp/c_funct.hxx152
-rw-r--r--autodoc/inc/ary/cpp/c_gate.hxx124
-rw-r--r--autodoc/inc/ary/cpp/c_macro.hxx87
-rw-r--r--autodoc/inc/ary/cpp/c_namesp.hxx197
-rw-r--r--autodoc/inc/ary/cpp/c_osigna.hxx125
-rw-r--r--autodoc/inc/ary/cpp/c_slntry.hxx113
-rw-r--r--autodoc/inc/ary/cpp/c_traits.hxx219
-rw-r--r--autodoc/inc/ary/cpp/c_tydef.hxx103
-rw-r--r--autodoc/inc/ary/cpp/c_type.hxx136
-rw-r--r--autodoc/inc/ary/cpp/c_types4cpp.hxx137
-rw-r--r--autodoc/inc/ary/cpp/c_vari.hxx117
-rw-r--r--autodoc/inc/ary/cpp/c_vfflag.hxx154
-rw-r--r--autodoc/inc/ary/cpp/cp_ce.hxx176
-rw-r--r--autodoc/inc/ary/cpp/cp_def.hxx102
-rw-r--r--autodoc/inc/ary/cpp/cp_type.hxx99
-rw-r--r--autodoc/inc/ary/cpp/inpcontx.hxx219
-rw-r--r--autodoc/inc/ary/cpp/namechain.hxx143
-rw-r--r--autodoc/inc/ary/cpp/usedtype.hxx215
-rw-r--r--autodoc/inc/ary/doc/d_boolean.hxx99
-rw-r--r--autodoc/inc/ary/doc/d_docu.hxx109
-rw-r--r--autodoc/inc/ary/doc/d_node.hxx112
-rw-r--r--autodoc/inc/ary/doc/d_oldcppdocu.hxx133
-rw-r--r--autodoc/inc/ary/doc/d_oldidldocu.hxx114
-rw-r--r--autodoc/inc/ary/doc/d_parametrized.hxx124
-rw-r--r--autodoc/inc/ary/doc/d_types4doc.hxx73
-rw-r--r--autodoc/inc/ary/doc/ht/dht_interpreter.hxx79
-rw-r--r--autodoc/inc/ary/entity.hxx84
-rw-r--r--autodoc/inc/ary/getncast.hxx91
-rw-r--r--autodoc/inc/ary/idl/i_attribute.hxx138
-rw-r--r--autodoc/inc/ary/idl/i_ce.hxx138
-rw-r--r--autodoc/inc/ary/idl/i_ce2s.hxx98
-rw-r--r--autodoc/inc/ary/idl/i_comrela.hxx83
-rw-r--r--autodoc/inc/ary/idl/i_constant.hxx115
-rw-r--r--autodoc/inc/ary/idl/i_constgroup.hxx104
-rw-r--r--autodoc/inc/ary/idl/i_enum.hxx103
-rw-r--r--autodoc/inc/ary/idl/i_enumvalue.hxx106
-rw-r--r--autodoc/inc/ary/idl/i_exception.hxx110
-rw-r--r--autodoc/inc/ary/idl/i_function.hxx163
-rw-r--r--autodoc/inc/ary/idl/i_gate.hxx86
-rw-r--r--autodoc/inc/ary/idl/i_interface.hxx130
-rw-r--r--autodoc/inc/ary/idl/i_module.hxx117
-rw-r--r--autodoc/inc/ary/idl/i_namelookup.hxx98
-rw-r--r--autodoc/inc/ary/idl/i_param.hxx78
-rw-r--r--autodoc/inc/ary/idl/i_property.hxx146
-rw-r--r--autodoc/inc/ary/idl/i_service.hxx142
-rw-r--r--autodoc/inc/ary/idl/i_singleton.hxx108
-rw-r--r--autodoc/inc/ary/idl/i_siservice.hxx110
-rw-r--r--autodoc/inc/ary/idl/i_sisingleton.hxx103
-rw-r--r--autodoc/inc/ary/idl/i_struct.hxx133
-rw-r--r--autodoc/inc/ary/idl/i_structelem.hxx106
-rw-r--r--autodoc/inc/ary/idl/i_traits.hxx81
-rw-r--r--autodoc/inc/ary/idl/i_type.hxx145
-rw-r--r--autodoc/inc/ary/idl/i_typedef.hxx93
-rw-r--r--autodoc/inc/ary/idl/i_types4idl.hxx145
-rw-r--r--autodoc/inc/ary/idl/ik_attribute.hxx88
-rw-r--r--autodoc/inc/ary/idl/ik_ce.hxx148
-rw-r--r--autodoc/inc/ary/idl/ik_constant.hxx78
-rw-r--r--autodoc/inc/ary/idl/ik_constgroup.hxx75
-rw-r--r--autodoc/inc/ary/idl/ik_enum.hxx87
-rw-r--r--autodoc/inc/ary/idl/ik_enumvalue.hxx76
-rw-r--r--autodoc/inc/ary/idl/ik_exception.hxx84
-rw-r--r--autodoc/inc/ary/idl/ik_function.hxx98
-rw-r--r--autodoc/inc/ary/idl/ik_interface.hxx103
-rw-r--r--autodoc/inc/ary/idl/ik_module.hxx117
-rw-r--r--autodoc/inc/ary/idl/ik_property.hxx92
-rw-r--r--autodoc/inc/ary/idl/ik_service.hxx91
-rw-r--r--autodoc/inc/ary/idl/ik_singleton.hxx76
-rw-r--r--autodoc/inc/ary/idl/ik_siservice.hxx78
-rw-r--r--autodoc/inc/ary/idl/ik_sisingleton.hxx76
-rw-r--r--autodoc/inc/ary/idl/ik_struct.hxx93
-rw-r--r--autodoc/inc/ary/idl/ik_structelem.hxx75
-rw-r--r--autodoc/inc/ary/idl/ik_typedef.hxx86
-rw-r--r--autodoc/inc/ary/idl/ip_ce.hxx213
-rw-r--r--autodoc/inc/ary/idl/ip_type.hxx86
-rw-r--r--autodoc/inc/ary/info/all_dts.hxx162
-rw-r--r--autodoc/inc/ary/info/all_tags.hxx291
-rw-r--r--autodoc/inc/ary/info/ci_attag.hxx103
-rw-r--r--autodoc/inc/ary/info/ci_text.hxx87
-rw-r--r--autodoc/inc/ary/info/docstore.hxx119
-rw-r--r--autodoc/inc/ary/info/infodisp.hxx117
-rw-r--r--autodoc/inc/ary/info/inftypes.hxx124
-rw-r--r--autodoc/inc/ary/itrange.hxx83
-rw-r--r--autodoc/inc/ary/loc/loc_dir.hxx148
-rw-r--r--autodoc/inc/ary/loc/loc_file.hxx71
-rw-r--r--autodoc/inc/ary/loc/loc_filebase.hxx75
-rw-r--r--autodoc/inc/ary/loc/loc_le.hxx97
-rw-r--r--autodoc/inc/ary/loc/loc_root.hxx113
-rw-r--r--autodoc/inc/ary/loc/loc_traits.hxx118
-rw-r--r--autodoc/inc/ary/loc/loc_types4loc.hxx57
-rw-r--r--autodoc/inc/ary/loc/locp_le.hxx91
-rw-r--r--autodoc/inc/ary/namesort.hxx78
-rw-r--r--autodoc/inc/ary/object.hxx73
-rw-r--r--autodoc/inc/ary/qualiname.hxx106
-rw-r--r--autodoc/inc/ary/sequentialids.hxx156
-rw-r--r--autodoc/inc/ary/stdconstiter.hxx101
-rw-r--r--autodoc/inc/ary/symtreenode.hxx347
-rw-r--r--autodoc/inc/ary/types.hxx133
-rw-r--r--autodoc/inc/ary/udmhost.hxx65
-rw-r--r--autodoc/inc/ary_i/ci_atag2.hxx81
-rw-r--r--autodoc/inc/ary_i/ci_text2.hxx94
-rw-r--r--autodoc/inc/ary_i/d_token.hxx284
-rw-r--r--autodoc/inc/ary_i/disdocum.hxx148
-rw-r--r--autodoc/inc/autodoc/displaying.hxx78
-rw-r--r--autodoc/inc/autodoc/dsp_html_std.hxx216
-rw-r--r--autodoc/inc/autodoc/dsp_txt_flist.hxx67
-rw-r--r--autodoc/inc/autodoc/filecoli.hxx74
-rw-r--r--autodoc/inc/autodoc/parsing.hxx80
-rw-r--r--autodoc/inc/autodoc/prs_code.hxx79
-rw-r--r--autodoc/inc/autodoc/prs_docu.hxx61
-rw-r--r--autodoc/inc/autodoc/x_parsing.hxx76
-rw-r--r--autodoc/inc/display/corframe.hxx84
-rw-r--r--autodoc/inc/parser/parser.hxx59
-rw-r--r--autodoc/inc/parser/parserinfo.hxx67
-rw-r--r--autodoc/inc/parser/unoidl.hxx81
128 files changed, 14656 insertions, 0 deletions
diff --git a/autodoc/inc/ary/actions.hxx b/autodoc/inc/ary/actions.hxx
new file mode 100644
index 000000000000..5e2536ccd063
--- /dev/null
+++ b/autodoc/inc/ary/actions.hxx
@@ -0,0 +1,105 @@
+/* -*- 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 ARY_ACTIONS_HXX
+#define ARY_ACTIONS_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+ class RepositoryCenter;
+
+
+/*
+enum E_Action
+{
+ action_Parse,
+ action_SecondaryProductions,
+ action_Save,
+ action_Load,
+ action_ReadyForRead
+};
+*/
+
+
+/** @resp
+ Performs such commands on the repository, which refer to
+ large parts of it.
+
+ @collab ::ary::Repository
+ and its components and derivates.
+ @descr
+ This class works in kind of double dispatch way:
+
+ // Client code:
+ Command_Xy aMyCommand;
+ ary::Repository::The_().PerformCommand( aMyCommand );
+
+ // Repository_Implementation::PerformCommand() code:
+ aMyCommand.Run(*this);
+
+ // Command_Xy::Run(Repository_Implementation & rRepository) code:
+ rRepository.Run_Command_Xy(*this);
+*/
+class Command
+{
+ public:
+ virtual ~Command() {}
+
+ void Run(
+ n22::RepositoryCenter &
+ io_rReposy );
+ private:
+ virtual void do_Run(
+ n22::RepositoryCenter &
+ io_rReposy ) = 0;
+};
+
+
+// IMPLEMENTATION
+
+inline void
+Command::Run(n22::RepositoryCenter & io_rReposy)
+ { do_Run(io_rReposy); }
+
+
+} // namespace ary
+
+
+#endif
+
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/ary.hxx b/autodoc/inc/ary/ary.hxx
new file mode 100644
index 000000000000..d15ed4d83f66
--- /dev/null
+++ b/autodoc/inc/ary/ary.hxx
@@ -0,0 +1,93 @@
+/* -*- 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 ARY_ARY_HXX
+#define ARY_ARY_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+
+namespace ary
+{
+namespace idl
+{
+ class Gate;
+}
+
+namespace cpp
+{
+ class Gate;
+}
+}
+
+
+
+namespace ary
+{
+
+/** Starting point for all work with the
+ Autodoc Sourcecode Repository.
+
+ Create and destroy the repository and
+ give access to the "Gates" for different tasks.
+
+ @collab ::ary::cpp::Gate
+ @collab ::ary::idl::Gate
+*/
+
+class Repository
+{
+ public:
+ // LIFECYCLE
+ virtual ~Repository() {}
+ static DYN Repository &
+ Create_();
+ // INQUIRY
+ virtual const String &
+ Title() const = 0;
+ virtual const ::ary::cpp::Gate &
+ Gate_Cpp() const = 0;
+ virtual const ::ary::idl::Gate &
+ Gate_Idl() const = 0;
+ // ACCESS
+ virtual ::ary::cpp::Gate &
+ Gate_Cpp() = 0;
+ virtual ::ary::idl::Gate &
+ Gate_Idl() = 0;
+ virtual void Set_Title(
+ const String & i_sName ) = 0;
+};
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/ary_disp.hxx b/autodoc/inc/ary/ary_disp.hxx
new file mode 100644
index 000000000000..566f3209be20
--- /dev/null
+++ b/autodoc/inc/ary/ary_disp.hxx
@@ -0,0 +1,114 @@
+/* -*- 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 ARY_ARY_DISP_HXX
+#define ARY_ARY_DISP_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/types.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+}
+
+class Display : public csv::ProcessorIfc
+{
+ public:
+ virtual ~Display() {}
+
+ // OPERATIONS
+ void StartSlot();
+ void FinishSlot();
+
+ /** This method depends on the result of Get_ReFinder().
+ If Get_ReFinder() != 0, then DisplayGate::Find_Re() is called
+ and if valid, cpp::CppEntity::Accept( *this ) is called.
+ If Get_ReFinder() == 0, simply do_DisplaySlot_Rid() is called
+ with just the id as parameter.
+ */
+ void DisplaySlot_Rid(
+ ary::Rid i_nId );
+// void DisplaySlot_Lid(
+// ary::Lid i_nId );
+ /** This method depends on the result of Get_ReFinder().
+ If Get_ReFinder() != 0, then DisplayGate::Find_Re() is called
+ and if valid, cpp::CppEntity::Accept( *this ) is called.
+ If Get_ReFinder() == 0, simply do_DisplaySlot_LocalCe() is called
+ with just the id as parameter.
+ */
+ void DisplaySlot_LocalCe(
+ ary::cpp::Ce_id i_nId,
+ const String & i_sName );
+ // INQUIRY
+ const cpp::Gate * Get_ReFinder() const;
+
+ private:
+ virtual void do_StartSlot();
+ virtual void do_FinishSlot();
+
+
+ virtual void do_DisplaySlot_Rid(
+ ary::Rid i_nId );
+ virtual void do_DisplaySlot_LocalCe(
+ ary::cpp::Ce_id i_nId,
+ const String & i_sName );
+ virtual const cpp::Gate *
+ inq_Get_ReFinder() const = 0;
+};
+
+
+// IMPLEMENTATION
+
+
+inline void
+Display::StartSlot()
+ { do_StartSlot(); }
+inline void
+Display::FinishSlot()
+ { do_FinishSlot(); }
+inline const cpp::Gate *
+Display::Get_ReFinder() const
+ { return inq_Get_ReFinder(); }
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/arygroup.hxx b/autodoc/inc/ary/arygroup.hxx
new file mode 100644
index 000000000000..1acb07e076dc
--- /dev/null
+++ b/autodoc/inc/ary/arygroup.hxx
@@ -0,0 +1,110 @@
+/* -*- 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 ARY_ARYGROUP_HXX
+#define ARY_ARYGROUP_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/types.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+ class CppEntity;
+}
+
+class Slot;
+
+namespace group
+{
+ typedef std::vector< SlotAccessId > SlotList;
+}
+}
+
+
+
+
+namespace ary
+{
+
+
+
+class AryGroup
+{
+ public:
+ // LIFECYCLE
+ virtual ~AryGroup() {}
+
+ // INQUIRY
+ Gid Id_Group() const;
+ const cpp::CppEntity &
+ RE_Group() const;
+ const group::SlotList &
+ Slots() const;
+ DYN Slot * Create_Slot(
+ SlotAccessId i_nSlot ) const;
+
+
+ private:
+ virtual Gid inq_Id_Group() const = 0;
+ virtual const cpp::CppEntity &
+ inq_RE_Group() const = 0;
+ virtual const group::SlotList &
+ inq_Slots() const = 0;
+ virtual DYN Slot * inq_Create_Slot(
+ SlotAccessId i_nSlot ) const = 0;
+};
+
+
+
+// IMPLEMENTATION
+inline Gid
+AryGroup::Id_Group() const
+ { return inq_Id_Group(); }
+inline const cpp::CppEntity &
+AryGroup::RE_Group() const
+ { return inq_RE_Group(); }
+inline const group::SlotList &
+AryGroup::Slots() const
+ { return inq_Slots(); }
+inline DYN Slot *
+AryGroup::Create_Slot( SlotAccessId i_nSlot ) const
+ { return inq_Create_Slot(i_nSlot); }
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/ceslot.hxx b/autodoc/inc/ary/ceslot.hxx
new file mode 100644
index 000000000000..ae0beb2d3f14
--- /dev/null
+++ b/autodoc/inc/ary/ceslot.hxx
@@ -0,0 +1,106 @@
+/* -*- 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 ARY_CESLOT_HXX
+#define ARY_CESLOT_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+
+class Display;
+
+/** Unterscheidungen von Slots
+
+ Slots:
+ - ReadWrite or ReadOnly
+ - ContentType
+ - Groups
+ - MemberLink 'EnumValue from Enum' or 'Class from Namespace'
+ - MemberData 'Parameter from Operation'
+ - SimpleLink
+ - CommentedLink 'Baseclass from Class'
+ - DefaultCommentedLink 'Class from GlobaIndex'
+*/
+
+class Slot
+{
+ public:
+ virtual ~Slot() {}
+
+ virtual void StoreAt(
+ Display & o_rDestination ) const;
+ virtual uintt Size() const = 0;
+
+ private:
+ virtual void StoreEntries(
+ Display & o_rDestination ) const = 0;
+};
+
+class Slot_AutoPtr
+{
+ public:
+ Slot_AutoPtr(
+ Slot * i_pSlot = 0 )
+ : pSlot(i_pSlot) {}
+ ~Slot_AutoPtr() { if (pSlot != 0) delete pSlot; }
+
+ Slot_AutoPtr & operator=(
+ Slot * i_pSlot )
+ { if (pSlot != 0) delete pSlot;
+ pSlot = i_pSlot;
+ return *this; }
+ operator bool() const { return pSlot != 0; }
+
+ const Slot & operator*() { csv_assert(pSlot != 0);
+ return *pSlot; }
+ const Slot * operator->() { csv_assert(pSlot != 0);
+ return pSlot; }
+
+ private:
+ // Forbidden functions
+ Slot_AutoPtr(const Slot_AutoPtr &);
+ Slot_AutoPtr & operator=(const Slot_AutoPtr &);
+
+ // DATA
+ Slot * pSlot;
+};
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cessentl.hxx b/autodoc/inc/ary/cessentl.hxx
new file mode 100644
index 000000000000..cc402ae25eac
--- /dev/null
+++ b/autodoc/inc/ary/cessentl.hxx
@@ -0,0 +1,91 @@
+/* -*- 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 ARY_CESSENTL_HXX
+#define ARY_CESSENTL_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/loc/loc_types4loc.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+class CeEssentials
+{ // Non inline functions are implemented in ceworker.cxx .
+ public:
+ // LIFECYCLE
+ CeEssentials();
+ CeEssentials(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ loc::Le_id i_nLocation );
+ ~CeEssentials();
+ // INQUIRY
+ const String & LocalName() const;
+ Ce_id Owner() const;
+ loc::Le_id Location() const;
+
+ // ACCESS
+ private:
+ String sLocalName;
+ Ce_id nOwner;
+ loc::Le_id nLocation;
+};
+
+
+
+// IMPLEMENTATION
+inline const String &
+CeEssentials::LocalName() const
+ { return sLocalName; }
+inline Ce_id
+CeEssentials::Owner() const
+ { return nOwner; }
+inline loc::Le_id
+CeEssentials::Location() const
+ { return nLocation; }
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_builtintype.hxx b/autodoc/inc/ary/cpp/c_builtintype.hxx
new file mode 100644
index 000000000000..0fff94d1e5fc
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_builtintype.hxx
@@ -0,0 +1,100 @@
+/* -*- 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 ARY_CPP_C_BUILTINTYPE_HXX
+#define ARY_CPP_C_BUILTINTYPE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_type.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Represents types like void, int, double.
+*/
+class BuiltInType : public Type
+{
+ public:
+ enum E_ClassId { class_id = 1200 };
+
+ BuiltInType(
+ const String & i_sName,
+ E_TypeSpecialisation
+ i_Specialisation );
+
+ String SpecializedName() const;
+
+ static String SpecializedName_(
+ const char * i_sName,
+ E_TypeSpecialisation
+ i_eTypeSpecialisation );
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface Type:
+ virtual bool inq_IsConst() const;
+ virtual void inq_Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const;
+ // DATA
+ String sName;
+ E_TypeSpecialisation
+ eSpecialisation;
+};
+
+
+
+inline String
+BuiltInType::SpecializedName() const
+{
+ return SpecializedName_(sName, eSpecialisation);
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_ce.hxx b/autodoc/inc/ary/cpp/c_ce.hxx
new file mode 100644
index 000000000000..5f7e6353e90a
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_ce.hxx
@@ -0,0 +1,106 @@
+/* -*- 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 ARY_CPP_C_CE_HXX
+#define ARY_CPP_C_CE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_cppentity.hxx>
+ // COMPONENTS
+#include <ary/doc/d_docu.hxx>
+ // PARAMETERS
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_traits.hxx>
+#include <ary/loc/loc_types4loc.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+
+typedef loc::Le_id Lid;
+
+
+
+/** Represents a C++ code entity.
+*/
+class CodeEntity : public ary::cpp::CppEntity
+{
+ public:
+ typedef Ce_Traits traits_t;
+
+ // LIFECYCLE
+ virtual ~CodeEntity() {}
+
+ // INQUIRY
+ Ce_id CeId() const { return Ce_id(Id()); }
+ const String & LocalName() const;
+ Cid Owner() const;
+ Lid Location() const;
+ bool IsVisible() const;
+
+ // ACCESS
+ void Set_InVisible() { bIsVisible = false; }
+
+ protected:
+ CodeEntity() : bIsVisible(true) {}
+
+ private:
+ // Locals
+ virtual const String &
+ inq_LocalName() const = 0;
+ virtual Cid inq_Owner() const = 0;
+ virtual Lid inq_Location() const = 0;
+
+ // DATA
+ mutable bool bIsVisible;
+};
+
+
+// IMPLEMENTATION
+inline const String &
+CodeEntity::LocalName() const
+ { return inq_LocalName(); }
+inline Cid
+CodeEntity::Owner() const
+ { return inq_Owner(); }
+inline Lid
+CodeEntity::Location() const
+ { return inq_Location(); }
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_class.hxx b/autodoc/inc/ary/cpp/c_class.hxx
new file mode 100644
index 000000000000..49b75b72902f
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_class.hxx
@@ -0,0 +1,248 @@
+/* -*- 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 ARY_CPP_C_CLASS_HXX
+#define ARY_CPP_C_CLASS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+#include <ary/arygroup.hxx>
+ // OTHER
+#include <ary/symtreenode.hxx>
+#include <ary/cessentl.hxx>
+#include <ary/sequentialids.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Enum;
+ class Typedef;
+ class Function;
+ class Variable;
+}
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ class.
+*/
+class Class : public CodeEntity,
+ public AryGroup
+{
+ public:
+ enum E_ClassId { class_id = 1001 };
+
+ enum E_Slots
+ {
+ SLOT_Bases = 1,
+ SLOT_NestedClasses,
+ SLOT_Enums,
+ SLOT_Typedefs,
+ SLOT_Operations,
+ SLOT_StaticOperations,
+ SLOT_Data,
+ SLOT_StaticData,
+ SLOT_FriendClasses,
+ SLOT_FriendOperations
+ };
+
+ typedef ::ary::symtree::Node<CeNode_Traits> node_t;
+
+
+ // LIFECYCLE
+ Class(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ loc::Le_id i_nFile,
+ E_ClassKey i_eClassKey );
+ ~Class();
+
+ // OPERATIONS
+ void Add_BaseClass(
+ const S_Classes_Base &
+ i_rBaseClass );
+ void Add_TemplateParameterType(
+ const String & i_sLocalName,
+ Type_id i_nIdAsType );
+ void Add_KnownDerivative(
+ Ce_id i_nId )
+ { aKnownDerivatives.Add(i_nId); }
+
+ void Add_LocalClass(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalEnum(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalTypedef(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalOperation(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalStaticOperation(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalData(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalStaticData(
+ const String & i_sLocalName,
+ Cid i_nId );
+
+ void UpdateVirtuality(
+ E_Virtuality i_eVirtuality )
+ { if ( int(i_eVirtuality) > int(eVirtuality) )
+ eVirtuality = i_eVirtuality; }
+ const List_TplParam &
+ TemplateParameters() const
+ { return aTemplateParameterTypes; }
+ const List_Bases & BaseClasses() const { return aBaseClasses; }
+ const SequentialIds<Ce_id> &
+ KnownDerivatives() const
+ { return aKnownDerivatives; }
+
+ // INQUIRY
+ E_ClassKey ClassKey() const;
+ E_Protection Protection() const;
+ E_Virtuality Virtuality() const { return eVirtuality; }
+
+ Ce_id Search_Child(
+ const String & i_key ) const;
+ Rid Search_LocalClass(
+ const String & i_sName ) const;
+ const node_t & AsNode() const;
+
+ // ACCESS
+ node_t & AsNode();
+
+ private:
+ NON_COPYABLE(Class);
+
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual loc::Le_id inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // Interface ary::AryGroup
+ virtual Gid inq_Id_Group() const;
+ virtual const cpp::CppEntity &
+ inq_RE_Group() const;
+ virtual const group::SlotList &
+ inq_Slots() const;
+ virtual DYN Slot * inq_Create_Slot(
+ SlotAccessId i_nSlot ) const;
+ // Local
+ typedef List_LocalCe::const_iterator CIterator_Locals;
+ typedef List_LocalCe::iterator Iterator_Locals;
+ typedef SequentialIds<Ce_id> IdSequence;
+
+ CIterator_Locals PosOfName(
+ const List_LocalCe& i_rList,
+ const String & i_sName ) const;
+ // DATA
+ CeEssentials aEssentials;
+ node_t aAssignedNode;
+
+ List_Bases aBaseClasses;
+ List_TplParam aTemplateParameterTypes;
+
+ List_LocalCe aClasses;
+ List_LocalCe aEnums;
+ List_LocalCe aTypedefs;
+ List_LocalCe aOperations;
+ List_LocalCe aStaticOperations;
+ List_LocalCe aData;
+ List_LocalCe aStaticData;
+
+ IdSequence aFriendClasses;
+ IdSequence aFriendOperations;
+ IdSequence aKnownDerivatives;
+
+ E_ClassKey eClassKey;
+ E_Protection eProtection;
+ E_Virtuality eVirtuality;
+};
+
+
+
+
+// IMPLEMENTATION
+inline E_ClassKey
+Class::ClassKey() const
+{
+ return eClassKey;
+}
+
+inline E_Protection
+Class::Protection() const
+{
+ return eProtection;
+}
+
+inline const Class::node_t &
+Class::AsNode() const
+{
+ return aAssignedNode;
+}
+
+inline Class::node_t &
+Class::AsNode()
+{
+ return aAssignedNode;
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_cppentity.hxx b/autodoc/inc/ary/cpp/c_cppentity.hxx
new file mode 100644
index 000000000000..fab3d2f728fe
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_cppentity.hxx
@@ -0,0 +1,94 @@
+/* -*- 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 ARY_CPP_C_CPPENTITY_HXX
+#define ARY_CPP_C_CPPENTITY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/entity.hxx>
+ // OTHER
+#include <ary/doc/d_docu.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ code entity as parsed by Autodoc.
+*/
+class CppEntity : public Entity
+{
+ public:
+ // LIFECYCLE
+ virtual ~CppEntity() {}
+
+ // OPERATIONS
+
+ // INQUIRY
+ const ary::doc::Documentation &
+ Docu() const;
+ // ACCESS
+ void Set_Docu(
+ DYN ary::doc::Node &
+ pass_docudata );
+ private:
+ // DATA
+ ary::doc::Documentation
+ aDocu;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const doc::Documentation &
+CppEntity::Docu() const
+{
+ return aDocu;
+}
+
+inline void
+CppEntity::Set_Docu(ary::doc::Node & pass_docudata)
+{
+ aDocu.Set_Data(pass_docudata);
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_de.hxx b/autodoc/inc/ary/cpp/c_de.hxx
new file mode 100644
index 000000000000..8426222ab3b4
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_de.hxx
@@ -0,0 +1,107 @@
+/* -*- 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 ARY_CPP_C_DE_HXX
+#define ARY_CPP_C_DE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_cppentity.hxx>
+ // OTHER
+#include <ary/loc/loc_types4loc.hxx>
+#include <ary/cpp/c_traits.hxx>
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Describes a C/C++ #define statement. May be a define or a macro, for which
+ two cases the two different constructors are to be used.
+
+ This class is used by cpp::PreProcessor.
+*/
+class DefineEntity : public ary::cpp::CppEntity
+{
+ public:
+ typedef Def_Traits traits_t;
+
+ virtual ~DefineEntity() {}
+
+ // INQUIRY
+ De_id DefId() const { return De_id(Id()); }
+ const String & LocalName() const;
+ loc::Le_id Location() const;
+ const StringVector &
+ DefinitionText() const;
+ // ACCESS
+ protected:
+ DefineEntity(
+ const String & i_name,
+ loc::Le_id i_declaringFile );
+ private:
+ // Locals
+ virtual const StringVector &
+ inq_DefinitionText() const = 0;
+
+ // DATA
+ String sName;
+ loc::Le_id nLocation;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const String &
+DefineEntity::LocalName() const
+ { return sName; }
+
+inline loc::Le_id
+DefineEntity::Location() const
+ { return nLocation; }
+
+inline const StringVector &
+DefineEntity::DefinitionText() const
+ { return inq_DefinitionText(); }
+
+
+
+
+
+} // end namespace cpp
+} // end namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_define.hxx b/autodoc/inc/ary/cpp/c_define.hxx
new file mode 100644
index 000000000000..460ddb79ac1b
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_define.hxx
@@ -0,0 +1,85 @@
+/* -*- 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 ARY_CPP_C_DEFINE_HXX
+#define ARY_CPP_C_DEFINE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_de.hxx>
+ // OTHER
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C/C++ #define ("#define DEF") statement, but no macro.
+
+ @see Macro
+*/
+class Define : public DefineEntity
+{
+ public:
+ enum E_ClassId { class_id = 1601 };
+
+ Define( /// Used for: #define DEFINE xyz
+ const String & i_name,
+ const StringVector &
+ i_definition,
+ loc::Le_id i_declaringFile );
+ virtual ~Define();
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface DefineEntity:
+ virtual const StringVector &
+ inq_DefinitionText() const;
+ // DATA
+ StringVector aDefinition;
+};
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_enum.hxx b/autodoc/inc/ary/cpp/c_enum.hxx
new file mode 100644
index 000000000000..4704c700773f
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_enum.hxx
@@ -0,0 +1,119 @@
+/* -*- 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 ARY_CPP_C_ENUM_HXX
+#define ARY_CPP_C_ENUM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+#include <ary/arygroup.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/sequentialids.hxx>
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ enum declaration.
+*/
+class Enum : public CodeEntity,
+ public AryGroup
+{
+ public:
+ enum E_ClassId { class_id = 1002 };
+
+ enum E_Slots
+ {
+ SLOT_Values = 1
+ };
+
+ // LIFECYCLE
+ Enum(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ Lid i_nFile );
+ ~Enum();
+
+ // OPERATIONS
+ void Add_Value(
+ Ce_id i_nId );
+
+ // INQUIRY
+ E_Protection Protection() const { return eProtection; }
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // Interface ary::AryGroup
+ virtual Gid inq_Id_Group() const;
+ virtual const cpp::CppEntity &
+ inq_RE_Group() const;
+ virtual const group::SlotList &
+ inq_Slots() const;
+ virtual DYN Slot * inq_Create_Slot(
+ SlotAccessId i_nSlot ) const;
+
+ // DATA
+ CeEssentials aEssentials;
+ SequentialIds<Ce_id>
+ aValues;
+ E_Protection eProtection;
+};
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_enuval.hxx b/autodoc/inc/ary/cpp/c_enuval.hxx
new file mode 100644
index 000000000000..3ed523baa3f3
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_enuval.hxx
@@ -0,0 +1,99 @@
+/* -*- 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 ARY_CPP_C_ENUVAL_HXX
+#define ARY_CPP_C_ENUVAL_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** A C++ enum value declaration and definition.
+*/
+class EnumValue : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 1006 };
+
+ // LIFECYCLE
+ EnumValue(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ String i_sInitialisation );
+ ~EnumValue();
+ // INQUIRY
+ const String & Initialisation() const;
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // DATA
+ CeEssentials aEssentials;
+ String sInitialisation;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const String &
+EnumValue::Initialisation() const
+ { return sInitialisation; }
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_funct.hxx b/autodoc/inc/ary/cpp/c_funct.hxx
new file mode 100644
index 000000000000..917ff823f151
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_funct.hxx
@@ -0,0 +1,152 @@
+/* -*- 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 ARY_CPP_C_FUNCT_HXX
+#define ARY_CPP_C_FUNCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+#include <ary/cpp/c_osigna.hxx>
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** A C++ function declaration.
+*/
+class Function : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 1004 };
+
+ Function(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ loc::Le_id i_nFile,
+ Type_id i_nReturnType,
+ const std::vector<S_Parameter> &
+ i_parameters,
+ E_ConVol i_conVol,
+ E_Virtuality i_eVirtuality,
+ FunctionFlags i_aFlags,
+ bool i_bThrowExists,
+ const std::vector<Type_id> &
+ i_rExceptions );
+ ~Function();
+
+
+ // OPERATIONS
+ void Add_TemplateParameterType(
+ const String & i_sLocalName,
+ Type_id i_nIdAsType );
+
+ // INQUIRY
+ const OperationSignature &
+ Signature() const;
+ Type_id ReturnType() const;
+ E_Protection Protection() const { return eProtection; }
+ E_Virtuality Virtuality() const { return eVirtuality; }
+ const FunctionFlags &
+ Flags() const { return aFlags; }
+ const StringVector &
+ ParamInfos() const { return aParameterInfos; }
+ const std::vector<Type_id> *
+ Exceptions() const { return pExceptions.Ptr(); }
+
+ const List_TplParam &
+ TemplateParameters() const
+ { return aTemplateParameterTypes; }
+ bool IsIdentical(
+ const Function & i_f ) const;
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // Local Types
+ typedef StringVector ParameterInfoList;
+ typedef std::vector<Type_id> ExceptionTypeList;
+
+ // DATA
+ CeEssentials aEssentials;
+ List_TplParam aTemplateParameterTypes;
+ OperationSignature aSignature;
+ Type_id nReturnType;
+ E_Protection eProtection;
+ E_Virtuality eVirtuality;
+ FunctionFlags aFlags;
+ ParameterInfoList aParameterInfos;
+ Dyn<ExceptionTypeList>
+ pExceptions; // if (NOT pExceptions) there is no throw,
+ // else, there is one, but the list still may be empty.
+};
+
+
+
+
+// IMPLEMENTATION
+inline const OperationSignature &
+Function::Signature() const
+ { return aSignature; }
+inline Type_id
+Function::ReturnType() const
+ { return nReturnType; }
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_gate.hxx b/autodoc/inc/ary/cpp/c_gate.hxx
new file mode 100644
index 000000000000..df0af5afbd19
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_gate.hxx
@@ -0,0 +1,124 @@
+/* -*- 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 ARY_CPP_C_GATE_HXX
+#define ARY_CPP_C_GATE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace autodoc
+{
+ class Options;
+}
+namespace ary
+{
+ class Entity;
+
+namespace cpp
+{
+ class CodeEntity;
+ class CppEntity;
+ class CePilot;
+ class DefPilot;
+ class TypePilot;
+}
+namespace loc
+{
+ class LocationPilot;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Acess to all stored objcts in the repository, which are
+ relevant to C++.
+*/
+class Gate
+{
+ public:
+ // LIFECYCLE
+ virtual ~Gate() {}
+
+
+ // OPERATIONS
+ virtual void Calculate_AllSecondaryInformation() = 0;
+// const ::autodoc::Options &
+// i_options ) = 0;
+
+ // INQUIRY
+ virtual const String &
+ RepositoryTitle() const = 0;
+ virtual const CodeEntity *
+ Search_RelatedCe(
+ Type_id i_type ) const = 0;
+ virtual const ::ary::cpp::CppEntity *
+ Search_Entity(
+ GlobalId i_id ) const = 0;
+ virtual uintt Get_AlphabeticalList(
+ List_GlobalIds & o_result,
+ const char * i_begin,
+ const char * i_end ) const = 0;
+ virtual const CePilot &
+ Ces() const = 0;
+ virtual const DefPilot &
+ Defs() const = 0;
+ virtual const TypePilot &
+ Types() const = 0;
+ virtual const loc::LocationPilot &
+ Locations() const = 0;
+
+ // ACCESS
+ virtual CePilot & Ces() = 0;
+ virtual DefPilot & Defs() = 0;
+ virtual TypePilot & Types() = 0;
+ virtual loc::LocationPilot &
+ Locations() = 0;
+};
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_macro.hxx b/autodoc/inc/ary/cpp/c_macro.hxx
new file mode 100644
index 000000000000..8740c2e94015
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_macro.hxx
@@ -0,0 +1,87 @@
+/* -*- 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 ARY_CPP_C_MACRO_HXX
+#define ARY_CPP_C_MACRO_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_de.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C/C++ macro ("#define ABC(a,b)") statement, but no simple define.
+
+ @see Define
+*/
+class Macro : public DefineEntity
+{
+ public:
+ enum E_ClassId { class_id = 1602 };
+
+ Macro();
+ Macro( /// Used for: #define DEFINE xyz
+ const String & i_name,
+ const StringVector &
+ i_params,
+ const StringVector &
+ i_definition,
+ loc::Le_id i_declaringFile );
+ ~Macro();
+ const StringVector & Params() const { return aParams; }
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface DefineEntity:
+ virtual const StringVector &
+ inq_DefinitionText() const;
+ // DATA
+ StringVector aParams;
+ StringVector aDefinition;
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_namesp.hxx b/autodoc/inc/ary/cpp/c_namesp.hxx
new file mode 100644
index 000000000000..d15c526394f3
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_namesp.hxx
@@ -0,0 +1,197 @@
+/* -*- 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 ARY_CPP_C_NAMESP_HXX
+#define ARY_CPP_C_NAMESP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+#include <ary/arygroup.hxx>
+ // OTHER
+#include <ary/symtreenode.hxx>
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+ class OperationSignature;
+}
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** A C++ namespace.
+*/
+class Namespace : public CodeEntity,
+ public AryGroup
+{
+ public:
+ enum E_ClassId { class_id = 1000 };
+
+ enum E_Slots
+ {
+ SLOT_SubNamespaces = 1,
+ SLOT_Classes,
+ SLOT_Enums,
+ SLOT_Typedefs,
+ SLOT_Operations,
+ SLOT_Variables,
+ SLOT_Constants
+ };
+
+ typedef ::ary::symtree::Node<CeNode_Traits> node_t;
+
+ Namespace();
+ Namespace(
+ const String & i_sName,
+ Namespace & i_rParent );
+ ~Namespace();
+ // OPERATIONS
+ void Add_LocalNamespace(
+ Namespace & io_rLocalNamespace );
+ void Add_LocalClass(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalEnum(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalTypedef(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalOperation(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalVariable(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalConstant(
+ const String & i_sLocalName,
+ Cid i_nId );
+
+ // INQUIRY
+ virtual uintt Depth() const;
+ Namespace * Parent() const;
+
+ Ce_id Search_Child(
+ const String & i_key ) const;
+ Namespace * Search_LocalNamespace(
+ const String & i_sLocalName ) const;
+ uintt Get_SubNamespaces(
+ std::vector< const Namespace* > &
+ o_rResultList ) const;
+ Ce_id Search_LocalClass(
+ const String & i_sName ) const;
+ void Search_LocalOperations(
+ std::vector<Ce_id> &
+ o_result,
+ const String & i_sName ) const;
+ const node_t & AsNode() const;
+
+ // ACCESS
+ node_t & AsNode();
+
+ private:
+ NON_COPYABLE(Namespace);
+
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // Interface AryGroup
+ virtual Gid inq_Id_Group() const;
+ virtual const cpp::CppEntity &
+ inq_RE_Group() const;
+ virtual const ary::group::SlotList &
+ inq_Slots() const;
+ virtual DYN Slot * inq_Create_Slot(
+ SlotAccessId i_nSlot ) const;
+ // Local
+ typedef std::multimap<String, Ce_id> Map_Operations;
+
+ // DATA
+ CeEssentials aEssentials;
+ node_t aAssignedNode;
+
+ Map_NamespacePtr aLocalNamespaces;
+ Map_LocalCe aLocalClasses;
+ Map_LocalCe aLocalEnums;
+ Map_LocalCe aLocalTypedefs;
+ Map_Operations aLocalOperations;
+ Map_LocalCe aLocalVariables;
+ Map_LocalCe aLocalConstants;
+
+ Namespace * pParent;
+ uintt nDepth;
+};
+
+
+
+// IMPLEMENTATION
+inline const Namespace::node_t &
+Namespace::AsNode() const
+{
+ return aAssignedNode;
+}
+
+inline Namespace::node_t &
+Namespace::AsNode()
+{
+ return aAssignedNode;
+}
+
+
+
+
+} // namespace cpp
+} // ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_osigna.hxx b/autodoc/inc/ary/cpp/c_osigna.hxx
new file mode 100644
index 000000000000..4434f65b877e
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_osigna.hxx
@@ -0,0 +1,125 @@
+/* -*- 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 ARY_CPP_C_OSIGNA_HXX
+#define ARY_CPP_C_OSIGNA_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+}
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** The signature of a C++ function. That is: parameter types and
+ const/volatile modifiers.
+*/
+class OperationSignature
+{
+ public:
+ typedef std::vector<Type_id> ParameterTypeList;
+
+ OperationSignature(
+ ParameterTypeList i_parameterTypes, // Non const, because it will be swapped with aParameterTypes.
+ E_ConVol i_conVol );
+
+ bool operator==(
+ const OperationSignature &
+ i_rSig ) const;
+ bool operator<(
+ const OperationSignature &
+ i_rSig ) const;
+
+ // INQUIRY
+ const ParameterTypeList &
+ Parameters() const;
+ E_ConVol ConVol() const;
+
+ /** Compares the signatures by length an then by ids of
+ parameter types. So the result is not always human
+ reconstructable.
+ @return like in strcmp().
+ */
+ int Compare(
+ const OperationSignature &
+ i_rSig ) const;
+ private:
+ // DATA
+ ParameterTypeList aParameterTypes;
+ E_ConVol eConVol;
+};
+
+
+
+
+// IMPLEMENTATION
+inline bool
+OperationSignature::operator==( const OperationSignature & i_rSign ) const
+{
+ return Compare(i_rSign) == 0;
+}
+
+inline bool
+OperationSignature::operator<( const OperationSignature & i_rSign ) const
+{
+ return Compare(i_rSign) < 0;
+}
+
+inline const OperationSignature::ParameterTypeList &
+OperationSignature::Parameters() const
+{
+ return aParameterTypes;
+}
+
+inline E_ConVol
+OperationSignature::ConVol() const
+{
+ return eConVol;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_slntry.hxx b/autodoc/inc/ary/cpp/c_slntry.hxx
new file mode 100644
index 000000000000..3ce842494304
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_slntry.hxx
@@ -0,0 +1,113 @@
+/* -*- 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 ARY_CPP_C_SLNTRY_HXX
+#define ARY_CPP_C_SLNTRY_HXX
+// KORR_DEPRECATED_3.0
+
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/namesort.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Namespace;
+
+
+
+typedef Namespace * NamespacePtr;
+struct Less_NamespacePtr
+{
+ bool operator()( /// @return true if (i_p1->Name() < i_p2->Name()) .
+ const NamespacePtr& i_p1,
+ const NamespacePtr& i_p2 );
+};
+
+
+
+
+struct S_Classes_Base
+{
+ Type_id nId;
+ E_Protection eProtection;
+ E_Virtuality eVirtuality;
+ String sComment;
+
+ S_Classes_Base()
+ : nId(0),
+ eProtection(PROTECT_global),
+ eVirtuality(VIRTUAL_none)
+ // sComment
+ { }
+};
+
+struct S_TplParam
+{
+ String sName;
+ Type_id nId;
+
+ S_TplParam(
+ String i_sName,
+ Type_id i_nId )
+ : sName(i_sName), nId(i_nId) {}
+ const String & Name() const { return sName; }
+};
+
+
+struct S_LocalCe
+{
+ String sLocalName;
+ Ce_id nId;
+
+ S_LocalCe() : nId(0) {}
+ S_LocalCe(
+ const String & i_sLocalName,
+ Cid i_nId )
+ : sLocalName(i_sLocalName), nId(i_nId) {}
+ bool operator<(
+ const S_LocalCe & i_rCe ) const
+ { return LesserName()(sLocalName,i_rCe.sLocalName); }
+};
+
+typedef std::vector< S_LocalCe > List_LocalCe;
+
+
+typedef std::map<String, NamespacePtr> Map_NamespacePtr;
+typedef std::vector< S_Classes_Base > List_Bases;
+typedef std::vector< S_TplParam > List_TplParam;
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_traits.hxx b/autodoc/inc/ary/cpp/c_traits.hxx
new file mode 100644
index 000000000000..060b0d2ea0ce
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_traits.hxx
@@ -0,0 +1,219 @@
+/* -*- 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 ARY_CPP_C_TRAITS_HXX
+#define ARY_CPP_C_TRAITS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace ary
+{
+namespace symtree
+{
+ template <class X> class Node;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Basic traits for derived ones of ->CodeEntity.
+*/
+struct Ce_Traits
+{
+ typedef CodeEntity entity_base_type;
+ typedef Ce_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+
+/** An instance of SYMBOL_TRAITS for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct CeNode_Traits : public Ce_Traits
+{
+ static const symtree::Node<CeNode_Traits> *
+ NodeOf_(
+ const entity_base_type &
+ i_entity );
+ static symtree::Node<CeNode_Traits> *
+ NodeOf_(
+ entity_base_type & i_entity );
+ static entity_base_type *
+ ParentOf_(
+ const entity_base_type &
+ i_entity );
+ template <class KEY>
+ static id_type Search_(
+ const entity_base_type &
+ i_entity,
+ const KEY & i_localKey );
+};
+
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Ce_Compare : public Ce_Traits
+{
+ typedef String key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Ce_GlobalCompare : public Ce_Traits
+{
+ typedef entity_base_type key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity )
+ { return i_entity; }
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+
+/** Basic traits for derivd ones of ->DefineEntity.
+*/
+struct Def_Traits
+{
+ typedef DefineEntity entity_base_type;
+ typedef De_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Def_Compare : public Def_Traits
+{
+ typedef String key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+/** Basic traits for derivd ones of ->Type.
+*/
+struct Type_Traits
+{
+ typedef Type entity_base_type;
+ typedef Type_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct UsedType_Compare : public Type_Traits
+{
+ typedef UsedType key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+
+
+
+
+
+// IMPLEMENTATION
+
+/// Implementation helper for ->CeNode_Traits::Search_ .
+Ce_id CeNode_Search(
+ const CodeEntity & i_entity,
+ const String & i_localKey );
+
+
+template <class KEY>
+Ce_Traits::id_type
+CeNode_Traits::Search_( const entity_base_type & i_entity,
+ const KEY & i_localKey )
+{
+ return CeNode_Search(i_entity, i_localKey);
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_tydef.hxx b/autodoc/inc/ary/cpp/c_tydef.hxx
new file mode 100644
index 000000000000..eefbda569484
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_tydef.hxx
@@ -0,0 +1,103 @@
+/* -*- 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 ARY_CPP_C_TYDEF_HXX
+#define ARY_CPP_C_TYDEF_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ typedef declaration.
+*/
+class Typedef : public CodeEntity
+{
+ public:
+ // LIFECYCLE
+ enum E_ClassId { class_id = 1003 };
+
+ Typedef(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ Lid i_nFile,
+ Type_id i_nDescribingType );
+ ~Typedef();
+ // INQUIRY
+ Type_id DescribingType() const;
+ E_Protection Protection() const { return eProtection; }
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // DATA
+ CeEssentials aEssentials;
+ Type_id nDescribingType;
+ E_Protection eProtection;
+};
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Typedef::DescribingType() const
+{
+ return nDescribingType;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_type.hxx b/autodoc/inc/ary/cpp/c_type.hxx
new file mode 100644
index 000000000000..513ec0cefb5f
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_type.hxx
@@ -0,0 +1,136 @@
+/* -*- 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 ARY_CPP_C_TYPE_HXX
+#define ARY_CPP_C_TYPE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/entity.hxx>
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_traits.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Base of all C++ types
+*/
+class Type : public ::ary::Entity
+{
+ public:
+ typedef Type_Traits traits_t;
+
+ virtual ~Type() {}
+
+ Type_id TypeId() const { return Type_id(Id()); }
+ Ce_id RelatedCe() const;
+ bool IsConst() const;
+ void Get_Text(
+ StreamStr & o_rOut,
+ const Gate & i_rGate ) const;
+
+ /** It is guaranteed, that the output is correct, also,
+ if all three output-streams are the same instance.
+ */
+ void Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const;
+
+ private:
+ virtual Rid inq_RelatedCe() const; // Defaulted to 0. Implemented in c_builtintype.cxx.
+ virtual bool inq_IsConst() const = 0;
+ virtual void inq_Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Ce_id
+Type::RelatedCe() const
+{
+ return Ce_id(inq_RelatedCe());
+}
+
+inline bool
+Type::IsConst() const
+{
+ return inq_IsConst();
+}
+
+inline void
+Type::Get_Text( StreamStr & o_rOut,
+ const Gate & i_rGate ) const
+{
+ inq_Get_Text( o_rOut, o_rOut, o_rOut, i_rGate );
+}
+
+inline void
+Type::Get_Text( StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const
+{
+ inq_Get_Text( o_rPreName,o_rName,o_rPostName, i_rGate );
+}
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_types4cpp.hxx b/autodoc/inc/ary/cpp/c_types4cpp.hxx
new file mode 100644
index 000000000000..2d39819ae458
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_types4cpp.hxx
@@ -0,0 +1,137 @@
+/* -*- 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 ARY_CPP_C_TYPES4CPP_HXX
+#define ARY_CPP_C_TYPES4CPP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <cosv/tpl/range.hxx>
+#include <ary/types.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+class Namespace;
+class CodeEntity;
+class Type;
+class DefineEntity;
+class Gate;
+class CePilot;
+class TypePilot;
+class SecondariesPilot;
+class Ce_Storage;
+class Def_Storage;
+class Type_Storage;
+class UsedType;
+
+
+typedef TypedId< ::ary::cpp::CodeEntity > Ce_id;
+typedef TypedId< ::ary::cpp::Type > Type_id;
+typedef TypedId< ::ary::cpp::DefineEntity > De_id;
+
+
+typedef std::vector<Ce_id> CesList;
+typedef std::vector<De_id> DefsList;
+typedef std::vector<Type_id> TypesList;
+
+typedef std::vector<Ce_id>::const_iterator CesConstIterator;
+typedef std::vector<De_id>::const_iterator DefsConstIterator;
+typedef std::vector<Type_id>::const_iterator TypesConstIterator;
+
+typedef csv::range< CesConstIterator > CesResultList;
+typedef csv::range< DefsConstIterator > DefsResultList;
+typedef csv::range< TypesConstIterator > TypesResultList;
+
+
+typedef std::map<String, Ce_id> Map_LocalCe;
+
+
+
+enum E_Protection
+{
+ PROTECT_global = 0,
+ PROTECT_local, /// within Functions
+ PROTECT_public,
+ PROTECT_protected,
+ PROTECT_private
+};
+
+/** The sequence of E_Virtuality's values must not be changed,
+ because they are used in int-comparisons.
+*/
+enum E_Virtuality
+{
+ VIRTUAL_none = 0,
+ VIRTUAL_virtual,
+ VIRTUAL_abstract
+};
+
+enum E_ClassKey
+{
+ CK_class,
+ CK_struct,
+ CK_union
+};
+
+enum E_TypeSpecialisation
+{
+ TYSP_none = 0,
+ TYSP_unsigned,
+ TYSP_signed
+};
+
+enum E_ConVol
+{
+ CONVOL_none = 0,
+ CONVOL_const = 0x0001,
+ CONVOL_volatile = 0x0002,
+ CONVOL_both = 0x0003
+};
+
+
+
+// Backwards compatibility:
+typedef Ce_id Cid;
+typedef Type_id Tid;
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_vari.hxx b/autodoc/inc/ary/cpp/c_vari.hxx
new file mode 100644
index 000000000000..e8b2e442486e
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_vari.hxx
@@ -0,0 +1,117 @@
+/* -*- 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 ARY_CPP_C_VARI_HXX
+#define ARY_CPP_C_VARI_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ variable or constant declaration.
+*/
+class Variable : public CodeEntity
+{
+ public:
+ // LIFECYCLE
+ enum E_ClassId { class_id = 1005 };
+
+ Variable(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ loc::Le_id i_nFile,
+ Type_id i_nType,
+ VariableFlags i_aFlags,
+ const String & i_sArraySize,
+ const String & i_sInitValue );
+ ~Variable();
+
+
+ // INQUIRY
+ Type_id Type() const;
+ const String & ArraySize() const;
+ const String & Initialisation() const;
+ E_Protection Protection() const { return eProtection; }
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // DATA
+ CeEssentials aEssentials;
+ Type_id nType;
+ E_Protection eProtection;
+ VariableFlags aFlags;
+ String sArraySize;
+ String sInitialisation;
+};
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Variable::Type() const
+ { return nType; }
+inline const String &
+Variable::ArraySize() const
+ { return sArraySize; }
+inline const String &
+Variable::Initialisation() const
+ { return sInitialisation; }
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/c_vfflag.hxx b/autodoc/inc/ary/cpp/c_vfflag.hxx
new file mode 100644
index 000000000000..c198dac67267
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_vfflag.hxx
@@ -0,0 +1,154 @@
+/* -*- 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 ARY_CPP_C_VFFLAG_HXX
+#define ARY_CPP_C_VFFLAG_HXX
+
+// USED SERVICES
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Properties of C++ variables.
+*/
+struct VariableFlags
+{
+ public:
+ enum E_Flags
+ {
+ f_static_local = 0x0001,
+ f_static_member = 0x0002,
+ f_extern = 0x0004,
+ f_mutable = 0x0008
+ };
+
+ VariableFlags(
+ UINT16 i_nFlags = 0 )
+ : nFlags(i_nFlags) {}
+
+ void Reset() { nFlags = 0; }
+
+ void SetStaticLocal() { nFlags |= f_static_local; }
+ void SetStaticMember() { nFlags |= f_static_member; }
+ void SetExtern() { nFlags |= f_extern; }
+ void SetMutable() { nFlags |= f_mutable; }
+
+ bool IsStaticLocal() const { return (nFlags & f_static_local) != 0; }
+ bool IsStaticMember() const { return (nFlags & f_static_member) != 0; }
+ bool IsExtern() const { return (nFlags & f_extern) != 0; }
+ bool IsMutable() const { return (nFlags & f_mutable) != 0; }
+
+ private:
+ UINT16 nFlags;
+};
+
+
+/** Properties of C++ functions.
+*/
+struct FunctionFlags
+{
+ public:
+ enum E_Flags
+ {
+ f_static_local = 0x0001,
+ f_static_member = 0x0002,
+ f_extern = 0x0004,
+ f_externC = 0x0008,
+ f_mutable = 0x0010,
+ f_inline = 0x0100,
+ f_register = 0x0200,
+ f_explicit = 0x0400
+ };
+
+ FunctionFlags(
+ UINT16 i_nFlags = 0 )
+ : nFlags(i_nFlags) {}
+
+ bool operator==(
+ const FunctionFlags &
+ i_ff ) const
+ { return nFlags == i_ff.nFlags; }
+ bool operator!=(
+ const FunctionFlags &
+ i_ff ) const
+ { return NOT operator==(i_ff); }
+
+ void Reset() { nFlags = 0; }
+
+ void SetStaticLocal() { nFlags |= f_static_local; }
+ void SetStaticMember() { nFlags |= f_static_member; }
+ void SetExtern() { nFlags |= f_extern; }
+ void SetExternC() { nFlags |= f_externC; }
+ void SetMutable() { nFlags |= f_mutable; }
+ void SetInline() { nFlags |= f_inline; }
+ void SetRegister() { nFlags |= f_register; }
+ void SetExplicit() { nFlags |= f_explicit; }
+
+ bool IsStaticLocal() const { return (nFlags & f_static_local) != 0; }
+ bool IsStaticMember() const { return (nFlags & f_static_member) != 0; }
+ bool IsExtern() const { return (nFlags & f_extern) != 0; }
+ bool IsExternC() const { return (nFlags & f_externC) != 0; }
+ bool IsMutable() const { return (nFlags & f_mutable) != 0; }
+ bool IsInline() const { return (nFlags & f_inline) != 0; }
+ bool IsRegister() const { return (nFlags & f_register) != 0; }
+ bool IsExplicit() const { return (nFlags & f_explicit) != 0; }
+
+ private:
+ UINT16 nFlags;
+};
+
+
+/** A C++ function parameter.
+*/
+struct S_Parameter
+{
+ String sName;
+ String sSizeExpression;
+ String sInitExpression;
+ Type_id nType;
+
+ S_Parameter() : nType(0) {}
+ ~S_Parameter() {}
+ void Empty() { nType = Type_id(0);
+ sName.clear();
+ sSizeExpression.clear();
+ sInitExpression.clear(); }
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/cp_ce.hxx b/autodoc/inc/ary/cpp/cp_ce.hxx
new file mode 100644
index 000000000000..cb86e44b17d4
--- /dev/null
+++ b/autodoc/inc/ary/cpp/cp_ce.hxx
@@ -0,0 +1,176 @@
+/* -*- 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 ARY_CPP_CP_CE_HXX
+#define ARY_CPP_CP_CE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+ class QualifiedName;
+
+namespace cpp
+{
+ class Class;
+ class CodeEntity;
+ class Enum;
+ class EnumValue;
+ class Function;
+ class InputContext;
+ class Namespace;
+ class OperationSignature;
+ class Typedef;
+ class Variable;
+
+ struct FunctionFlags;
+ struct S_Parameter;
+ struct VariableFlags;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Acess to all declared C++ code entites (types, variables, operations)
+ in the repository.
+*/
+class CePilot
+{
+ public:
+ // LIFECYCLE
+ virtual ~CePilot() {}
+
+ // OPERATIONS
+ virtual Namespace &
+ CheckIn_Namespace(
+ const InputContext &
+ i_context,
+ const String & i_localName ) = 0;
+ virtual Class & Store_Class(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ E_ClassKey i_classKey ) = 0;
+ virtual Enum & Store_Enum(
+ const InputContext &
+ i_context,
+ const String & i_localName ) = 0;
+ virtual Typedef & Store_Typedef(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_referredType ) = 0;
+
+ /// @return 0, if the function is duplicate.
+ virtual Function * Store_Operation(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_returnType,
+ const std::vector<S_Parameter> &
+ i_parameters,
+ E_Virtuality i_virtuality,
+ E_ConVol i_conVol,
+ FunctionFlags i_flags,
+ bool i_throwExists,
+ const std::vector<Tid> &
+ i_exceptions ) = 0;
+ virtual Variable & Store_Variable(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_type,
+ VariableFlags i_flags,
+ const String & i_arraySize,
+ const String & i_initValue ) = 0;
+ virtual EnumValue & Store_EnumValue(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ const String & i_initValue ) = 0;
+ // INQUIRY
+ virtual const Namespace &
+ GlobalNamespace() const = 0;
+ virtual const CodeEntity &
+ Find_Ce(
+ Ce_id i_id ) const = 0;
+ virtual const CodeEntity *
+ Search_Ce(
+ Ce_id i_id ) const = 0;
+
+ /// It's assumed that i_rSearchedName is an absolute name.
+ virtual const CodeEntity *
+ Search_CeAbsolute(
+ const CodeEntity & i_curScope,
+ const QualifiedName &
+ i_absoluteName ) const = 0;
+ virtual const CodeEntity *
+ Search_CeLocal(
+ const String & i_relativeName,
+ bool i_isFunction,
+ const Namespace & i_curNamespace,
+ const Class * i_curClass ) const = 0;
+ virtual void Get_QualifiedName(
+ StreamStr & o_result,
+ const String & i_localName,
+ Ce_id i_owner,
+ const char * i_delimiter = "::" ) const = 0;
+ virtual void Get_SignatureText(
+ StreamStr & o_rOut,
+ const OperationSignature &
+ i_signature,
+ const StringVector *
+ i_sParameterNames = 0 ) const = 0;
+ virtual CesResultList
+ Search_TypeName(
+ const String & i_sName ) const = 0;
+ // ACCESS
+ virtual Namespace & GlobalNamespace() = 0;
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/cp_def.hxx b/autodoc/inc/ary/cpp/cp_def.hxx
new file mode 100644
index 000000000000..8fd44074523b
--- /dev/null
+++ b/autodoc/inc/ary/cpp/cp_def.hxx
@@ -0,0 +1,102 @@
+/* -*- 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 ARY_CPP_CP_DEF_HXX
+#define ARY_CPP_CP_DEF_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Define;
+ class InputContext;
+ class Macro;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Acess to C++ defines and macros in the repository.
+*/
+class DefPilot
+{
+ public:
+ typedef DefsList::const_iterator DefsIterator;
+
+
+
+ // LIFECYCLE
+ virtual ~DefPilot() {}
+
+
+ // OPERATIONS
+ virtual Define & Store_Define(
+ const InputContext& i_rContext,
+ const String & i_sName,
+ const StringVector &
+ i_rDefinition ) = 0;
+ virtual Macro & Store_Macro(
+ const InputContext& i_rContext,
+ const String & i_sName,
+ const StringVector &
+ i_rParams,
+ const StringVector &
+ i_rDefinition ) = 0;
+ // INQUIRY
+ virtual const DefineEntity &
+ Find_Def(
+ De_id i_id ) const = 0;
+ virtual DefsResultList
+ AllDefines() const = 0;
+ virtual DefsResultList
+ AllMacros() const = 0;
+};
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/cp_type.hxx b/autodoc/inc/ary/cpp/cp_type.hxx
new file mode 100644
index 000000000000..edc536fcea71
--- /dev/null
+++ b/autodoc/inc/ary/cpp/cp_type.hxx
@@ -0,0 +1,99 @@
+/* -*- 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 ARY_CPP_CP_TYPE_HXX
+#define ARY_CPP_CP_TYPE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class InputContext;
+ class Type;
+ class UsedType;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+
+/** Acess to all found C++ types (as they are used in declarations)
+ in the repository.
+*/
+class TypePilot
+{
+ public:
+
+ // LIFECYCLE
+ virtual ~TypePilot() {}
+
+
+ // OPERATIONS
+ virtual const Type &
+ CheckIn_UsedType(
+ const InputContext &
+ i_context,
+ DYN UsedType & pass_type ) = 0;
+ // INQUIRY
+ virtual const Type &
+ Find_Type(
+ Type_id i_type ) const = 0;
+ virtual bool Get_TypeText(
+ StreamStr & o_result,
+ Type_id i_type ) const = 0;
+ virtual bool Get_TypeText(
+ StreamStr & o_preName, /// ::ary::cpp::
+ StreamStr & o_name, /// MyClass
+ StreamStr & o_postName, /// <TplArgument> * const &
+ Type_id i_type ) const = 0;
+ virtual Type_id Tid_Ellipse() const = 0;
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/inpcontx.hxx b/autodoc/inc/ary/cpp/inpcontx.hxx
new file mode 100644
index 000000000000..9fea2e2053b7
--- /dev/null
+++ b/autodoc/inc/ary/cpp/inpcontx.hxx
@@ -0,0 +1,219 @@
+/* -*- 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 ARY_CPP_INPCONTX_HXX
+#define ARY_CPP_INPCONTX_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace ary
+{
+namespace loc
+{
+ class File;
+}
+namespace cpp
+{
+ class Gate;
+ class Namespace;
+ class Class;
+ class Enum;
+
+ class OperationSignature;
+}
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** The context of a CodeEntity, which is going to be stored in the
+ repository. The information is used mainly by ->ary::cpp::CeAdmin.
+*/
+class InputContext
+{
+ public:
+ class Owner
+ {
+ public:
+ // LIFECYCLE
+ virtual ~Owner() {}
+
+ // OPERATIONS
+ /// Adds Class data to current inner scope (Namespace or Class).
+ void Add_Class(
+ const String & i_sLocalName,
+ Cid i_nId );
+ /// Adds Enum data to current inner scope (Namespace or Class).
+ void Add_Enum(
+ const String & i_sLocalName,
+ Cid i_nId );
+ /// Adds Typedef data to current inner scope (Namespace or Class).
+ void Add_Typedef(
+ const String & i_sLocalName,
+ Cid i_nId );
+ /// Adds Operation data to current inner scope (Namespace or Class).
+ void Add_Operation(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsStaticMember ); /// True only for static class members.
+ /// Adds Variable data to current inner scope (Namespace or Class).
+ void Add_Variable(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool i_bIsStaticMember ); /// True only for static class members.
+ // INQUIRY
+ Ce_id CeId() const;
+
+ /** @attention Must only be used by ary::cpp::GatePilot!
+ Will work nowhere else!
+ */
+ virtual bool HasClass(
+ const String & i_sLocalName ) = 0;
+ private:
+ virtual void do_Add_Class(
+ const String & i_sLocalName,
+ Cid i_nId ) = 0;
+ virtual void do_Add_Enum(
+ const String & i_sLocalName,
+ Cid i_nId ) = 0;
+ virtual void do_Add_Typedef(
+ const String & i_sLocalName,
+ Cid i_nId ) = 0;
+ virtual void do_Add_Operation(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsStatic ) = 0;
+ virtual void do_Add_Variable(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool i_bIsStatic ) = 0;
+ virtual Ce_id inq_CeId() const = 0;
+ };
+
+ // LIFECYCLE
+ virtual ~InputContext() {}
+
+ // OPERATIONS
+
+ // INQUIRY
+ loc::File & CurFile() const;
+
+ Namespace & CurNamespace() const;
+ Class * CurClass() const;
+ Enum * CurEnum() const;
+
+ Owner & CurOwner() const;
+ E_Protection CurProtection() const;
+
+ private:
+ virtual loc::File & inq_CurFile() const = 0;
+
+ virtual Namespace & inq_CurNamespace() const = 0;
+ virtual Class * inq_CurClass() const = 0;
+ virtual Enum * inq_CurEnum() const = 0;
+
+ virtual Owner & inq_CurOwner() const = 0;
+ virtual E_Protection
+ inq_CurProtection() const = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline loc::File &
+InputContext::CurFile() const
+ { return inq_CurFile(); }
+
+inline Namespace &
+InputContext::CurNamespace() const
+ { return inq_CurNamespace(); }
+inline Class *
+InputContext::CurClass() const
+ { return inq_CurClass(); }
+inline Enum *
+InputContext::CurEnum() const
+ { return inq_CurEnum(); }
+inline InputContext::Owner &
+InputContext::CurOwner() const
+ { return inq_CurOwner(); }
+inline E_Protection
+InputContext::CurProtection() const
+ { return inq_CurProtection(); }
+
+
+inline void
+InputContext::Owner::Add_Class( const String & i_sLocalName,
+ Cid i_nId )
+ { do_Add_Class(i_sLocalName, i_nId); }
+inline void
+InputContext::Owner::Add_Enum( const String & i_sLocalName,
+ Cid i_nId )
+ { do_Add_Enum(i_sLocalName, i_nId); }
+inline void
+InputContext::Owner::Add_Typedef( const String & i_sLocalName,
+ Cid i_nId )
+ { do_Add_Typedef(i_sLocalName, i_nId); }
+inline void
+InputContext::Owner::Add_Operation( const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsStatic )
+ { do_Add_Operation( i_sLocalName, i_nId, i_bIsStatic ); }
+inline void
+InputContext::Owner::Add_Variable( const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool i_bIsStatic )
+ { do_Add_Variable( i_sLocalName, i_nId, i_bIsConst, i_bIsStatic ); }
+inline Ce_id
+InputContext::Owner::CeId() const
+ { return inq_CeId(); }
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/namechain.hxx b/autodoc/inc/ary/cpp/namechain.hxx
new file mode 100644
index 000000000000..9e85b4ee4b0d
--- /dev/null
+++ b/autodoc/inc/ary/cpp/namechain.hxx
@@ -0,0 +1,143 @@
+/* -*- 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 ARY_CPP_NAMECHAI_HXX
+#define ARY_CPP_NAMECHAI_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+
+namespace ut
+{
+ class List_TplParameter;
+
+class NameSegment
+{
+ public:
+ NameSegment(
+ const char * i_sName );
+ /** @precond MPT pTemplate.
+ This cannot be used, except of inserting a new element
+ in the segment list of ary::cpp::ut::NameChain. In that
+ case, the template parameter list doe snot yet exist.
+ */
+ NameSegment(
+ const NameSegment & i_rSeg );
+ ~NameSegment();
+
+ // OPERATIONS
+ List_TplParameter & AddTemplate();
+
+ // INQUIRY
+ const String & Name() const;
+
+ /// @return as strcmp().
+ intt Compare(
+ const NameSegment & i_rOther ) const;
+ void Get_Text_AsScope(
+ StreamStr & o_rOut,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ void Get_Text_AsMainType(
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+
+ NameSegment& operator=(const NameSegment&);
+ private:
+ String sName;
+ Dyn<List_TplParameter>
+ pTemplate;
+};
+
+class NameChain
+{
+ public:
+ typedef std::vector<NameSegment>::const_iterator
+ const_iterator;
+
+ NameChain();
+ ~NameChain();
+
+ // OPERATIONS
+ void Add_Segment(
+ const char * i_sSeg );
+ /** @precond aSegments.size() > 0.
+ Which means: Add_Segment() has to be called at least once before.
+ */
+ List_TplParameter & Templatize_LastSegment();
+
+ // INQUIRY
+ const_iterator begin() const { return aSegments.begin(); }
+ const_iterator end() const { return aSegments.end(); }
+
+ /// @return like strcmp.
+ intt Compare(
+ const NameChain & i_rChain ) const;
+ /// @ATTENTION Return value is volatile. Not reentrance enabled.
+ const String & LastSegment() const;
+
+ void Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ private:
+ std::vector< NameSegment >
+ aSegments;
+};
+
+
+
+// IMPLEMENTATION
+inline const String &
+NameSegment::Name() const
+ { return sName; }
+
+
+
+
+
+
+} // namespace ut
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/cpp/usedtype.hxx b/autodoc/inc/ary/cpp/usedtype.hxx
new file mode 100644
index 000000000000..b7f6d68ac4cc
--- /dev/null
+++ b/autodoc/inc/ary/cpp/usedtype.hxx
@@ -0,0 +1,215 @@
+/* -*- 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 ARY_CPP_USEDTYPE_HXX
+#define ARY_CPP_USEDTYPE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_type.hxx>
+ // OTHER
+#include <ary/cpp/namechain.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class CePilot;
+
+namespace ut
+{
+ class List_TplParameter;
+}
+}
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** This class represents a type in textual form, like it is parsed out of
+ source code as a variable type or function return type.
+*/
+class UsedType : public Type
+{
+ public:
+ enum E_ClassId { class_id = 1203 };
+
+ explicit UsedType(
+ Ce_id i_scope );
+ ~UsedType();
+ // OPERATORS
+ bool operator<(
+ const UsedType & i_rType ) const;
+ // OPERATIONS
+
+ // Operations to build up the used type from parsing:
+ void Set_Absolute(); /// "::" is in front.
+ void Add_NameSegment(
+ const char * i_sSeg );
+ ut::List_TplParameter &
+ Enter_Template();
+ void Set_Unsigned();
+ void Set_Signed();
+ void Set_BuiltIn(
+ const char * i_sType );
+ void Set_Const(); /// Sets CV to the type or the present pointer level, whatever is highest.
+ void Set_Volatile(); /// Sets CV to the type or the present pointer level, whatever is highest.
+ void Add_PtrLevel(); /// For an '*'.
+ void Set_Reference(); /// For an '&'.
+
+ // Operations to find the relating CodeEntity:
+ /** This needs to be called only one time. After that
+ RelatedCe() will return the value.
+
+ When connectiing all parsed types, there are three steps:
+ 1. Find related types in the same scope and namespaces above.
+ 2. Then all classes can be connected to their base classes.
+ 3. Lastly types can be connected to Ces only known via their base
+ classes. This is not possible at step 1.
+
+ @see Connect2CeOnlyKnownViaBaseClass()
+ */
+ void Connect2Ce(
+ const CePilot & i_ces );
+
+ /** @see Connect2Ce()
+ */
+ void Connect2CeOnlyKnownViaBaseClass(
+ const Gate & i_gate );
+
+ // INQUIRY
+ /** @return True, if type consists of one built-in typename and
+ nothing else.
+ */
+ bool IsBuiltInType() const;
+ /** @return the full local name, including template instantiation, but without
+ '*','&' or modifiers.
+ */
+ const String & LocalName() const;
+ E_TypeSpecialisation
+ TypeSpecialisation() const;
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface ary::cpp::Type:
+ virtual Rid inq_RelatedCe() const;
+ virtual bool inq_IsConst() const;
+ virtual void inq_Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ // Local
+ typedef std::vector< ary::cpp::E_ConVol > PtrLevelVector;
+
+ uintt PtrLevel() const { return uintt(aPtrLevels.size()); }
+ Ce_id RecursiveSearchCe_InBaseClassesOf(
+ const CodeEntity & i_mayBeClass,
+ const StringVector &
+ i_myQualification,
+ const String & i_myName,
+ const Gate & i_gate ) const;
+ void Get_NameParts(
+ StringVector & o_qualification,
+ String & o_name );
+
+ // Forbidden functions
+ UsedType(
+ const UsedType & i_rType );
+ bool operator=(
+ const UsedType & i_rType );
+
+ // DATA
+ ut::NameChain aPath;
+ PtrLevelVector aPtrLevels;
+ ary::cpp::E_ConVol eConVol_Type;
+ bool bIsReference;
+ bool bIsAbsolute;
+ bool bRefers2BuiltInType;
+ E_TypeSpecialisation
+ eTypeSpecialisation;
+ Ce_id nRelatedCe;
+
+ /// Namespace or class scope where the type occurred.
+ Ce_id nScope;
+};
+
+
+namespace ut
+{
+ class TemplateParameter;
+
+class List_TplParameter
+{
+ public:
+ typedef std::vector< DYN TemplateParameter * >::const_iterator const_iterator;
+
+ List_TplParameter();
+ ~List_TplParameter();
+
+ void AddParam_Type(
+ Type_id i_nType );
+ /// puts "< " TemplateArgumentList " >" to o_rOut.
+ void Get_Text(
+ StreamStr & o_rOut,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ /// @return as strcmp().
+ intt Compare(
+ const List_TplParameter &
+ i_rOther ) const;
+
+ private:
+ typedef std::vector< DYN TemplateParameter * > Vector_TplArgument;
+
+ Vector_TplArgument aTplParameters;
+};
+
+} // namespace ut
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/doc/d_boolean.hxx b/autodoc/inc/ary/doc/d_boolean.hxx
new file mode 100644
index 000000000000..1bf7bc3e307e
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_boolean.hxx
@@ -0,0 +1,99 @@
+/* -*- 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 ARY_DOC_D_BOOLEAN_HXX
+#define ARY_DOC_D_BOOLEAN_HXX
+
+// BASE CLASSES
+#include <ary/doc/d_node.hxx>
+
+// USED SERVICES
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** Repesents a boolean documentation item like "optional" or "not optional".
+*/
+class Boolean : public Node
+{
+ public:
+ // LIFECYCLE
+ explicit Boolean(
+ nodetype::id i_type );
+ virtual ~Boolean();
+
+ // OPERATIONS
+ void Set(
+ bool i_b );
+ // INQUIRY
+ bool IsTrue() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ bool b;
+};
+
+
+
+
+// IMPLEMENTATION
+inline
+Boolean::Boolean(nodetype::id i_type)
+ : Node(i_type),
+ b(false)
+{
+}
+
+inline bool
+Boolean::IsTrue() const
+{
+ return b;
+}
+
+inline void
+Boolean::Set( bool i_b )
+{
+ b = i_b;
+}
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/doc/d_docu.hxx b/autodoc/inc/ary/doc/d_docu.hxx
new file mode 100644
index 000000000000..8469d9646220
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_docu.hxx
@@ -0,0 +1,109 @@
+/* -*- 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 ARY_DOC_D_DOCU_HXX
+#define ARY_DOC_D_DOCU_HXX
+
+// BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+
+// USED SERVICES
+#include <ary/doc/d_node.hxx>
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** Represents a documentation which is assigned to an Autodoc
+ repository entity.
+*/
+class Documentation : public csv::ConstProcessorClient
+{
+ public:
+ Documentation();
+ ~Documentation();
+ // OPERATIONS
+ void Clear();
+
+ // INQUIRY
+ const Node * Data() const;
+
+ // ACCESS
+ Node * Data();
+ void Set_Data(
+ ary::doc::Node & i_data );
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ Dyn<Node> pData;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Documentation::Clear()
+{
+ pData = 0;
+}
+
+inline const Node *
+Documentation::Data() const
+{
+ return pData.Ptr();
+}
+
+inline Node *
+Documentation::Data()
+{
+ return pData.Ptr();
+}
+
+inline void
+Documentation::Set_Data(ary::doc::Node & i_data)
+{
+ pData = &i_data;
+}
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/doc/d_node.hxx b/autodoc/inc/ary/doc/d_node.hxx
new file mode 100644
index 000000000000..8dd96b8f657b
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_node.hxx
@@ -0,0 +1,112 @@
+/* -*- 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 ARY_DOC_D_NODE_HXX
+#define ARY_DOC_D_NODE_HXX
+
+// BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+// USED SERVICES
+#include <cosv/tpl/vvector.hxx>
+#include <ary/doc/d_types4doc.hxx>
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** The abstract base class for any type of documentation content.
+
+ A ->Documentation has as content a hierarchy of Nodes, each can be a
+ different kind of content, like descriptions of single items or structs
+ or lists of Nodes.
+*/
+class Node : public csv::ConstProcessorClient
+{
+ public:
+ // LIFECYCLE
+ virtual ~Node();
+
+ // OPERATIONS
+ void Add_toChain(
+ DYN Node & pass_nextNode );
+ // INQUIRY
+ nodetype::id Type() const;
+ const Node * Next() const;
+ bool IsSingle() const;
+ uintt ListSize() const;
+
+ protected:
+ explicit Node(
+ nodetype::id i_type);
+ private:
+ // Forbid copies:
+ Node(const Node&);
+ Node & operator=(const Node&);
+
+ // DATA
+ nodetype::id nType;
+ Dyn<Node> pNext; /// Next ->Node in same list.
+};
+
+typedef csv::VirtualVector<Node> NodeList;
+
+
+
+
+// IMPLEMENTATION
+inline nodetype::id
+Node::Type() const
+{
+ return nType;
+}
+
+inline const Node *
+Node::Next() const
+{
+ return pNext.Ptr();
+}
+
+inline bool
+Node::IsSingle() const
+{
+ return pNext.operator bool();
+}
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/doc/d_oldcppdocu.hxx b/autodoc/inc/ary/doc/d_oldcppdocu.hxx
new file mode 100644
index 000000000000..0429ab312d66
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_oldcppdocu.hxx
@@ -0,0 +1,133 @@
+/* -*- 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 ARY_DOC_D_OLDCPPDOCU_HXX
+#define ARY_DOC_D_OLDCPPDOCU_HXX
+// KORR_DEPRECATED_3.0
+
+// BASE CLASSES
+#include <ary/doc/d_node.hxx>
+// USED SERVICES
+#include <ary/info/inftypes.hxx>
+#include <ary/ary_disp.hxx>
+
+namespace ary
+{
+namespace info
+{
+ class AtTag;
+ class DocuStore;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+ using ::ary::info::AtTag;
+ using ::ary::info::E_AtTagId;
+
+
+/** Wrapper class for old C++ documentation format.
+
+ To be replaced by using the standard format.
+*/
+class OldCppDocu : public Node
+{
+ public:
+ typedef std::vector< DYN AtTag * > TagList;
+
+ // LIFECYCLE
+ OldCppDocu();
+ virtual ~OldCppDocu();
+
+ void Store2(
+ info::DocuStore & o_rDocuStore );
+
+ virtual AtTag * Create_StdTag(
+ E_AtTagId i_eId );
+ virtual AtTag * CheckIn_BaseTag();
+ virtual AtTag * CheckIn_ExceptionTag();
+ virtual AtTag * Create_ImplementsTag();
+ virtual AtTag * Create_KeywordTag();
+ virtual AtTag * CheckIn_ParameterTag();
+ virtual AtTag * CheckIn_SeeTag();
+ virtual AtTag * CheckIn_TemplateTag();
+ virtual AtTag * Create_LabelTag();
+ virtual AtTag * Create_DefaultTag();
+ virtual AtTag * Create_SinceTag(); /// @return always the first one created.
+
+ virtual void Replace_AtShort_By_AtDescr();
+
+ virtual void Set_Obsolete();
+ virtual void Set_Internal();
+ virtual void Set_Interface() { bIsInterface = true; }
+
+ // INQUIRY
+ const TagList & Tags() const { return aTags; }
+ const AtTag & Short() const;
+ bool IsObsolete() const { return bIsObsolete; }
+ virtual bool IsInternal() const;
+ virtual bool IsInterface() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ unsigned char nTags[ary::info::C_eAtTag_NrOfClasses];
+
+ /** Creates a new AtTag at the end of aTags.
+ The index of this new AtTag is inserted in nTags at position
+ i_nIndex.
+ */
+ AtTag * & NewTag(
+ UINT8 i_nIndex );
+ /** Returns the Tag with the position nTags[i_nIndex]
+ in aTags.
+ */
+ AtTag & GetTag(
+ UINT8 i_nIndex );
+
+ TagList aTags;
+ bool bIsObsolete;
+ bool bIsInternal;
+ bool bIsInterface;
+};
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/doc/d_oldidldocu.hxx b/autodoc/inc/ary/doc/d_oldidldocu.hxx
new file mode 100644
index 000000000000..542711784973
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_oldidldocu.hxx
@@ -0,0 +1,114 @@
+/* -*- 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 ARY_DOC_D_OLDIDLDOCU_HXX
+#define ARY_DOC_D_OLDIDLDOCU_HXX
+
+// BASE CLASSES
+#include <ary/doc/d_node.hxx>
+// USED SERVICES
+#include <ary_i/ci_text2.hxx>
+
+
+
+
+namespace ary
+{
+namespace inf
+{
+ class AtTag2;
+ class DocuToken;
+ class DocuTex2;
+}
+namespace doc
+{
+ using ::ary::inf::AtTag2;
+ using ::ary::inf::DocuToken;
+ using ::ary::inf::DocuTex2;
+
+
+
+/** Wrapper for the old idl documentation format.
+*/
+class OldIdlDocu : public Node
+{
+ public:
+ OldIdlDocu();
+ ~OldIdlDocu();
+
+ void AddToken2Short(
+ DYN DocuToken & let_drToken )
+ { aShort.AddToken(let_drToken); }
+ void AddToken2Description(
+ DYN DocuToken & let_drToken )
+ { aDescription.AddToken(let_drToken); }
+ void AddToken2DeprecatedText(
+ DYN DocuToken & let_drToken );
+ void AddAtTag(
+ DYN AtTag2 & let_drAtTag )
+ { aTags.push_back(&let_drAtTag); }
+ void SetPublished() { bIsPublished = true; }
+ void SetDeprecated() { bIsDeprecated = true; }
+ void SetOptional() { bIsOptional = true; }
+ void SetExternShort(
+ const DocuTex2 & i_pExternShort )
+ { pExternShort = &i_pExternShort; }
+
+ const DocuTex2 & Short() const { return pExternShort != 0 ? *pExternShort : aShort; }
+ const DocuTex2 & Description() const { return aDescription; }
+ const DocuTex2 & DeprecatedText() const { return aDeprecatedText; }
+ const std::vector< AtTag2* > &
+ Tags() const { return aTags; }
+ bool IsPublished() const { return bIsPublished; }
+ bool IsDeprecated() const { return bIsDeprecated; }
+ bool IsOptional() const { return bIsOptional; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ DocuTex2 aShort;
+ DocuTex2 aDescription;
+ DocuTex2 aDeprecatedText;
+ std::vector< AtTag2* >
+ aTags;
+ const DocuTex2 * pExternShort;
+ bool bIsPublished;
+ bool bIsDeprecated;
+ bool bIsOptional;
+};
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/doc/d_parametrized.hxx b/autodoc/inc/ary/doc/d_parametrized.hxx
new file mode 100644
index 000000000000..78659e701441
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_parametrized.hxx
@@ -0,0 +1,124 @@
+/* -*- 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 ARY_DOC_D_PARAMETER_HXX
+#define ARY_DOC_D_PARAMETER_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/doc/d_node.hxx>
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** Documentation unit with Parameter.
+*/
+template <class T>
+class Parametrized : public Node
+{
+ public:
+ // LIFECYCLE
+ explicit Parametrized(
+ nodetype::id i_id,
+ T i_Parameter );
+ virtual ~Parametrized();
+
+ // INQUIRY
+ const HyperText & Doc() const;
+ const T & Parameter() const;
+
+ // ACESS
+ HyperText & Doc();
+ void Set_Parameter(
+ const T & i_param );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ HyperText aDoc;
+ T aParameter;
+};
+
+
+
+
+// IMPLEMENTATION
+template <class T>
+Parametrized<T>::Parametrized( nodetype::id i_id,
+ T i_Parameter )
+ : Node(i_id),
+ aDoc(),
+ aParameter(i_Parameter)
+{
+}
+
+template <class T>
+Parametrized<T>::~Parametrized()
+{
+}
+
+template <class T>
+const HyperText &
+Parametrized<T>::Doc() const
+{
+ return aDoc;
+}
+
+template <class T>
+const T &
+Parametrized<T>::Parameter() const
+{
+ return aParameter;
+}
+
+template <class T>
+HyperText &
+Parametrized<T>::Doc()
+{
+ return aDoc;
+}
+
+template <class T>
+inline void
+Parametrized<T>::Set_Parameter(const T & i_param)
+{
+ aParameter = i_param;
+}
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/doc/d_types4doc.hxx b/autodoc/inc/ary/doc/d_types4doc.hxx
new file mode 100644
index 000000000000..dbf614af6c56
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_types4doc.hxx
@@ -0,0 +1,73 @@
+/* -*- 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 ARY_DOC_D_TYPES4DOC_HXX
+#define ARY_DOC_D_TYPES4DOC_HXX
+
+// USED SERVICES
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** Type of a documentation: multiple lines or single line.
+*/
+enum E_BlockType
+{
+ dbt_none = 0,
+ dbt_multiline,
+ dbt_singleline
+};
+
+/** Type of documentation text: with html or without.
+*/
+enum E_TextType
+{
+ dtt_none = 0,
+ dtt_plain,
+ dtt_html
+};
+
+namespace nodetype
+{
+
+typedef int id;
+
+} // namespace nodetype
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/doc/ht/dht_interpreter.hxx b/autodoc/inc/ary/doc/ht/dht_interpreter.hxx
new file mode 100644
index 000000000000..874f3425bf48
--- /dev/null
+++ b/autodoc/inc/ary/doc/ht/dht_interpreter.hxx
@@ -0,0 +1,79 @@
+/* -*- 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 ARY_DHT_INTERPRETER_HXX
+#define ARY_DHT_INTERPRETER_HXX
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+namespace ht
+{
+ class Processor;
+
+
+/** Interface for all interpreters of a ->Component.
+*/
+class Interpreter
+{
+ public:
+ virtual ~Interpreter() {}
+
+ void Accept(
+ Processor & io_processor,
+ const String & i_data ) const;
+ private:
+ virtual void do_Accept(
+ Processor & io_processor,
+ const String & i_data ) const = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Interpreter::Accept( Processor & io_processor,
+ const String & i_data ) const
+{
+ do_Accept(io_processor, i_data);
+}
+
+
+
+
+} // namespace ht
+} // namespace doc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/entity.hxx b/autodoc/inc/ary/entity.hxx
new file mode 100644
index 000000000000..85ecc26a49a0
--- /dev/null
+++ b/autodoc/inc/ary/entity.hxx
@@ -0,0 +1,84 @@
+/* -*- 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 ARY_ENTITY_HXX
+#define ARY_ENTITY_HXX
+
+// BASE CLASSES
+#include <ary/object.hxx>
+
+
+
+
+namespace ary
+{
+
+
+/** Interface for every class, whose objects are searchable within the
+ Autodoc Repository by an id.
+
+ @todo
+ Possibly make ->Set_Id() less public accessible.
+*/
+class Entity : public Object
+{
+ public:
+ virtual ~Entity() {}
+
+ Rid Id() const;
+
+ /// @attention Must be used only by ->ary::stg::Storage<>
+ void Set_Id(
+ Rid i_nId );
+ protected:
+ Entity() : nId(0) {}
+ private:
+ // DATA
+ Rid nId;
+};
+
+
+inline Rid
+Entity::Id() const
+{
+ return nId;
+}
+
+inline void
+Entity::Set_Id(Rid i_nId)
+{
+ nId = i_nId;
+}
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/getncast.hxx b/autodoc/inc/ary/getncast.hxx
new file mode 100644
index 000000000000..cc5a0afbfd65
--- /dev/null
+++ b/autodoc/inc/ary/getncast.hxx
@@ -0,0 +1,91 @@
+/* -*- 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 ARY_GETNCAST_HXX
+#define ARY_GETNCAST_HXX
+
+
+// USED SERVICES
+#include <ary/object.hxx>
+
+
+
+
+namespace ary
+{
+
+
+template <class DEST>
+inline bool
+is_type(const ary::Object & i_obj)
+{
+ return i_obj.AryClass() == DEST::class_id;
+}
+
+
+template <class DEST>
+inline const DEST &
+ary_cast( const Object & ce)
+{
+ csv_assert( is_type<DEST>(ce) );
+ return static_cast< const DEST& >(ce);
+}
+
+template <class DEST>
+inline DEST &
+ary_cast( Object & ce)
+{
+ csv_assert( is_type<DEST>(ce) );
+ return static_cast< DEST& >(ce);
+}
+
+template <class DEST>
+inline const DEST *
+ary_cast( const Object * ce)
+{
+ if ( ce ? is_type<DEST>(*ce) : false )
+ return static_cast< const DEST* >(ce);
+ return 0;
+}
+
+template <class DEST>
+inline DEST *
+ary_cast( Object * ce)
+{
+ if ( ce ? is_type<DEST>(*ce) : false )
+ return static_cast< DEST* >(ce);
+ return 0;
+}
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_attribute.hxx b/autodoc/inc/ary/idl/i_attribute.hxx
new file mode 100644
index 000000000000..42686e22e330
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_attribute.hxx
@@ -0,0 +1,138 @@
+/* -*- 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 ARY_IDL_I_ATTRIBUTE_HXX
+#define ARY_IDL_I_ATTRIBUTE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_attribute
+{
+ struct attr;
+}
+
+
+
+
+/** @resp
+ Represents an IDL property.
+*/
+class Attribute : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2014 };
+
+ // LIFECYCLE
+ Attribute(
+ const String & i_sName,
+ Ce_id i_nInterface,
+ Ce_id i_nModule,
+ Type_id i_nType,
+ bool i_bReadonly,
+ bool i_bBound );
+ ~Attribute();
+ // OPERATIONS
+ void Add_GetException(
+ Type_id i_nException );
+ void Add_SetException(
+ Type_id i_nException );
+
+ // INQUIRY
+ Type_id Type() const;
+ bool IsReadonly() const;
+ bool IsBound() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Local
+ typedef std::vector< Type_id > ExceptionList;
+ friend struct ifc_attribute::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ Type_id nType;
+ ExceptionList aGetExceptions;
+ ExceptionList aSetExceptions;
+ bool bReadonly;
+ bool bBound;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Attribute::Add_GetException( Type_id i_nException )
+ { aGetExceptions.push_back(i_nException); }
+
+inline void
+Attribute::Add_SetException( Type_id i_nException )
+ { aSetExceptions.push_back(i_nException); }
+
+inline Type_id
+Attribute::Type() const
+ { return nType; }
+
+inline bool
+Attribute::IsReadonly() const
+ { return bReadonly; }
+
+inline bool
+Attribute::IsBound() const
+ { return bBound; }
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_ce.hxx b/autodoc/inc/ary/idl/i_ce.hxx
new file mode 100644
index 000000000000..e2d0dce21007
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_ce.hxx
@@ -0,0 +1,138 @@
+/* -*- 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 ARY_IDL_I_CE_HXX
+#define ARY_IDL_I_CE_HXX
+
+// BASE CLASSES
+#include <ary/entity.hxx>
+// USED SERVICES
+#include <ary/doc/d_docu.hxx>
+#include <ary/idl/i_ce2s.hxx>
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** @resp Base class for all IDL code entities.
+
+ A @->CodeEntity is a namespace, type, data or function, which occures in
+ the parsed UNO IDL code and is described and/or commented within the
+ Autodoc repository.
+
+ This is a storage base class, where more special classes are
+ derived from.
+*/
+class CodeEntity : public ary::Entity
+{
+ public:
+ // LIFECYCLE
+ virtual ~CodeEntity();
+
+ // OPERATION
+
+ // INQUIRY
+ Ce_id CeId() const { return Ce_id(Id()); }
+ const String & LocalName() const;
+ Ce_id NameRoom() const;
+ Ce_id Owner() const;
+ E_SightLevel SightLevel() const;
+
+ const ary::doc::Documentation &
+ Docu() const;
+ const Ce_2s & Secondaries() const;
+
+ static const CodeEntity &
+ Null_();
+ // ACCESS
+ void Set_Docu(
+ DYN ary::doc::Node &
+ pass_data );
+ Ce_2s & Secondaries();
+
+ protected:
+ CodeEntity();
+ private:
+ // Locals
+ virtual const String & inq_LocalName() const = 0;
+ virtual Ce_id inq_NameRoom() const = 0;
+ virtual Ce_id inq_Owner() const = 0;
+ virtual E_SightLevel inq_SightLevel() const = 0;
+
+ // DATA
+ ary::doc::Documentation
+ aDocu;
+ Dyn<Ce_2s> p2s;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const String &
+CodeEntity::LocalName() const
+ { return inq_LocalName(); }
+
+inline Ce_id
+CodeEntity::NameRoom() const
+ { return inq_NameRoom(); }
+
+inline Ce_id
+CodeEntity::Owner() const
+ { return inq_Owner(); }
+
+inline E_SightLevel
+CodeEntity::SightLevel() const
+ { return inq_SightLevel(); }
+
+inline const ary::doc::Documentation &
+CodeEntity::Docu() const
+ { return aDocu; }
+
+inline void
+CodeEntity::Set_Docu(DYN ary::doc::Node & pass_data)
+{
+ aDocu.Set_Data(pass_data);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_ce2s.hxx b/autodoc/inc/ary/idl/i_ce2s.hxx
new file mode 100644
index 000000000000..fa662a48c223
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_ce2s.hxx
@@ -0,0 +1,98 @@
+/* -*- 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 ARY_IDL_I_CE2S_HXX
+#define ARY_IDL_I_CE2S_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_types4idl.hxx>
+
+
+namespace ary
+{
+
+namespace idl
+{
+
+
+
+/** Abstract base for all secondary productions of code entities
+*/
+class Ce_2s
+{
+ public:
+ // LIFECYCLE
+ virtual ~Ce_2s();
+
+ static DYN Ce_2s * Create_(
+ ClassId i_nCeClass );
+ // OPERATIONS
+ void Add_Link2DescriptionInManual(
+ const String & i_link,
+ const String & i_linkUI )
+ { aDescriptionsInManual.push_back(i_link); aDescriptionsInManual.push_back(i_linkUI); }
+ void Add_Link2RefInManual(
+ const String & i_link,
+ const String & i_linkUI )
+ { aRefsInManual.push_back(i_link); aRefsInManual.push_back(i_linkUI); }
+ std::vector<Ce_id> &
+ Access_List(
+ int i_indexOfList );
+ // INQUIRY
+ const StringVector &
+ Links2DescriptionInManual() const
+ { return aDescriptionsInManual; }
+ const StringVector &
+ Links2RefsInManual() const
+ { return aRefsInManual; }
+ int CountXrefLists() const { return aXrefLists.size(); }
+ const std::vector<Ce_id> &
+ List(
+ int i_indexOfList ) const;
+ private:
+ typedef DYN std::vector<Ce_id> * ListPtr;
+
+ // DATA
+ StringVector aDescriptionsInManual;
+ StringVector aRefsInManual;
+ std::vector<ListPtr>
+ aXrefLists;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_comrela.hxx b/autodoc/inc/ary/idl/i_comrela.hxx
new file mode 100644
index 000000000000..424431fed783
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_comrela.hxx
@@ -0,0 +1,83 @@
+/* -*- 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 ARY_IDL_I_COMRELA_HXX
+#define ARY_IDL_I_COMRELA_HXX
+
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+
+namespace ary
+{
+namespace doc
+{
+ class OldIdlDocu;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Contains data for an IDL code entity related to another one like a base of
+ an interface or of a service or the supported interface of a service.
+*/
+class CommentedRelation
+{
+ public:
+ // LIFECYCLE
+
+ CommentedRelation(
+ Type_id i_nType,
+ doc::OldIdlDocu * i_pInfo )
+ : nType(i_nType),
+ pInfo(i_pInfo)
+ {}
+ // INQUIRY
+ Type_id Type() const { return nType; }
+ doc::OldIdlDocu * Info() const { return pInfo; }
+
+ private:
+ // DATA
+ Type_id nType;
+ doc::OldIdlDocu * pInfo;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_constant.hxx b/autodoc/inc/ary/idl/i_constant.hxx
new file mode 100644
index 000000000000..3e850680427a
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_constant.hxx
@@ -0,0 +1,115 @@
+/* -*- 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 ARY_IDL_I_CONSTANT_HXX
+#define ARY_IDL_I_CONSTANT_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_constant
+{
+ struct attr;
+}
+
+
+/** Represents an IDL constant.
+*/
+class Constant : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2012 };
+
+ // LIFECYCLE
+ Constant(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nType,
+ const String & i_sInitValue );
+ ~Constant();
+ // INQUIRY
+ Type_id Type() const;
+ const String & Value() const;
+
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_constant::attr;
+
+ // DATA
+ String sName;
+ Ce_id nNameRoom;
+ Ce_id nOwner;
+
+ Type_id nType;
+ String sInitValue;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Constant::Type() const
+{
+ return nType;
+}
+
+inline const String &
+Constant::Value() const
+{
+ return sInitValue;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_constgroup.hxx b/autodoc/inc/ary/idl/i_constgroup.hxx
new file mode 100644
index 000000000000..7b9d90b35116
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_constgroup.hxx
@@ -0,0 +1,104 @@
+/* -*- 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 ARY_IDL_I_CONSTGROUP_HXX
+#define ARY_IDL_I_CONSTGROUP_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_constgroup
+{
+ struct attr;
+}
+
+
+/** Represents an IDL constants group.
+*/
+class ConstantsGroup : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2011 };
+
+ // LIFECYCLE
+ ConstantsGroup(
+ const String & i_sName,
+ Ce_id i_nModule );
+ ~ConstantsGroup();
+ // ACCESS
+ void Add_Constant(
+ Ce_id i_nConstant );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector<Ce_id> ConstantList;
+ friend struct ifc_constgroup::attr;
+
+ // DATA
+ String sName;
+ Ce_id nModule;
+
+ ConstantList aConstants;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+ConstantsGroup::Add_Constant( Ce_id i_nConstant )
+{
+ aConstants.push_back(i_nConstant);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_enum.hxx b/autodoc/inc/ary/idl/i_enum.hxx
new file mode 100644
index 000000000000..b53147e459ae
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_enum.hxx
@@ -0,0 +1,103 @@
+/* -*- 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 ARY_IDL_I_ENUM_HXX
+#define ARY_IDL_I_ENUM_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_enum
+{
+ struct attr;
+}
+
+
+/** Represents an IDL enum.
+*/
+class Enum : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2005 };
+ // LIFECYCLE
+ Enum(
+ const String & i_sName,
+ Ce_id i_nOwner );
+ ~Enum();
+ // ACCESS
+ void Add_Value(
+ Ce_id i_nValue );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector<Ce_id> ValueList;
+ friend struct ifc_enum::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ ValueList aValues;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Enum::Add_Value( Ce_id i_nValue )
+{
+ aValues.push_back(i_nValue);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_enumvalue.hxx b/autodoc/inc/ary/idl/i_enumvalue.hxx
new file mode 100644
index 000000000000..56dc39b86ebd
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_enumvalue.hxx
@@ -0,0 +1,106 @@
+/* -*- 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 ARY_IDL_I_ENUMVALUE_HXX
+#define ARY_IDL_I_ENUMVALUE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_enumvalue
+{
+ struct attr;
+}
+
+
+/** @resp
+ Represents an IDL enum value.
+*/
+class EnumValue : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2006 };
+
+ // LIFECYCLE
+ EnumValue(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ const String & i_sInitValue );
+ ~EnumValue();
+ // INQUIRY
+ const String & Value() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_enumvalue::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ String sValue;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const String &
+EnumValue::Value() const
+{
+ return sValue;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_exception.hxx b/autodoc/inc/ary/idl/i_exception.hxx
new file mode 100644
index 000000000000..0c2658dbbc33
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_exception.hxx
@@ -0,0 +1,110 @@
+/* -*- 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 ARY_IDL_I_EXCEPTION_HXX
+#define ARY_IDL_I_EXCEPTION_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_exception
+{
+ struct attr;
+}
+
+
+/** Represents an IDL exception.
+*/
+class Exception : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2010 };
+
+ // LIFECYCLE
+ Exception(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBase );
+ ~Exception();
+ // INQUIRY
+ Type_id Base() const { return nBase; }
+
+ // ACCESS
+ void Add_Member(
+ Ce_id i_nMember );
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector<Ce_id> ElementList;
+ friend struct ifc_exception::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ Type_id nBase;
+ ElementList aElements;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Exception::Add_Member( Ce_id i_nMember )
+{
+ aElements.push_back(i_nMember);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_function.hxx b/autodoc/inc/ary/idl/i_function.hxx
new file mode 100644
index 000000000000..43fd91dfa501
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_function.hxx
@@ -0,0 +1,163 @@
+/* -*- 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 ARY_IDL_I_FUNCTION_HXX
+#define ARY_IDL_I_FUNCTION_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+// USED SERVICES
+#include <ary/idl/i_param.hxx>
+#include <ary/idl/ik_function.hxx>
+#include <ary/stdconstiter.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Represents an IDL function.
+
+ Special case constructor:
+ Constructors have return type "0".
+*/
+class Function : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2002 };
+
+ typedef std::vector< Parameter > ParamList;
+ typedef std::vector< Type_id > ExceptionList;
+
+ // LIFECYCLE
+ /// Normal function
+ Function(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nReturnType,
+ bool i_bOneWay );
+ /// Constructor
+ Function(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom );
+ ~Function();
+
+ // OPERATIONS
+ void Add_Parameter(
+ const String & i_sName,
+ Type_id i_nType,
+ E_ParameterDirection
+ i_eDirection );
+ /// The function's parameter list ends with the ellipse "..." .
+ void Set_Ellipse();
+ void Add_Exception(
+ Type_id i_nException );
+
+ // INQUIRY
+ Type_id ReturnType() const;
+ const ParamList & Parameters() const { return aParameters; }
+ const ExceptionList &
+ Exceptions() const { return aExceptions; }
+ bool IsOneway() const;
+ bool HasEllipse() const { return bEllipse; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ friend struct ifc_function::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ Type_id nReturnType;
+ ParamList aParameters;
+ ExceptionList aExceptions;
+ bool bOneWay;
+ bool bEllipse;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Function::Add_Parameter( const String & i_sName,
+ Type_id i_nType,
+ E_ParameterDirection i_eDirection )
+{
+ aParameters.push_back( Parameter(i_sName,i_nType,i_eDirection) );
+}
+
+inline void
+Function::Set_Ellipse()
+{
+ bEllipse = true;
+}
+
+inline void
+Function::Add_Exception( Type_id i_nException )
+{
+ aExceptions.push_back(i_nException);
+}
+
+inline Type_id
+Function::ReturnType() const
+ { return nReturnType; }
+
+inline bool
+Function::IsOneway() const
+ { return bOneWay; }
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_gate.hxx b/autodoc/inc/ary/idl/i_gate.hxx
new file mode 100644
index 000000000000..59595743aa91
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_gate.hxx
@@ -0,0 +1,86 @@
+/* -*- 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 ARY_IDL_I_GATE_HXX
+#define ARY_IDL_I_GATE_HXX
+
+// USED SERVICES
+
+namespace autodoc
+{
+ class Options;
+}
+namespace ary
+{
+namespace idl
+{
+ class CePilot;
+ class TypePilot;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Main entry to access the IDL parts of the repository.
+*/
+class Gate
+{
+ public:
+ // LIFECYCLE
+ virtual ~Gate() {}
+
+ // OPERATIONS
+ virtual void Calculate_AllSecondaryInformation(
+ const String & i_devman_reffilepath ) = 0;
+// const ::autodoc::Options &
+// i_options ) = 0;
+ // INQUIRY
+ virtual const CePilot &
+ Ces() const = 0;
+ virtual const TypePilot &
+ Types() const = 0;
+ // ACCESS
+ virtual CePilot & Ces() = 0;
+ virtual TypePilot & Types() = 0;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_interface.hxx b/autodoc/inc/ary/idl/i_interface.hxx
new file mode 100644
index 000000000000..bcf92b287bb4
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_interface.hxx
@@ -0,0 +1,130 @@
+/* -*- 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 ARY_IDL_I_INTERFACE_HXX
+#define ARY_IDL_I_INTERFACE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+// USED SERVICES
+#include <ary/idl/i_comrela.hxx>
+#include <ary/stdconstiter.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_interface
+{
+ struct attr;
+}
+ class Interface_2s;
+
+
+/** Represents an IDL interface.
+*/
+class Interface : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2001 };
+
+ // LIFECYCLE
+ Interface(
+ const String & i_sName,
+ Ce_id i_nOwner );
+ ~Interface();
+ // INQUIRY
+ bool HasBase() const;
+
+ // ACCESS
+ void Add_Function(
+ Ce_id i_nId );
+ void Add_Attribute(
+ Ce_id i_nId );
+ void Add_Base(
+ Type_id i_nInterface,
+ DYN doc::OldIdlDocu *
+ pass_dpDocu );
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity:
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Local
+ typedef std::vector< CommentedRelation > RelationList;
+ typedef std::vector<Ce_id> MemberList;
+ friend struct ifc_interface::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ RelationList aBases;
+ MemberList aFunctions;
+ MemberList aAttributes;
+ Dyn<Interface_2s> p2s;
+};
+
+
+
+
+// IMPLEMENTATION
+inline bool
+Interface::HasBase() const
+ { return aBases.size() > 0; }
+inline void
+Interface::Add_Function( Ce_id i_nId )
+ { aFunctions.push_back(i_nId); }
+inline void
+Interface::Add_Attribute( Ce_id i_nId )
+ { aAttributes.push_back(i_nId); }
+inline void
+Interface::Add_Base( Type_id i_nInterface,
+ DYN doc::OldIdlDocu * pass_dpDocu )
+ { aBases.push_back( CommentedRelation(i_nInterface, pass_dpDocu) ); }
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_module.hxx b/autodoc/inc/ary/idl/i_module.hxx
new file mode 100644
index 000000000000..0e7c0300a872
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_module.hxx
@@ -0,0 +1,117 @@
+/* -*- 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 ARY_IDL_I_MODULE_HXX
+#define ARY_IDL_I_MODULE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+// USED SERVICES
+#include <ary/stdconstiter.hxx>
+
+
+
+
+namespace ary
+{
+ template <class> class NameTreeNode;
+
+namespace idl
+{
+namespace ifc_module
+{
+ struct attr;
+}
+ class Gate;
+
+
+/** Represents an IDL module.
+
+ "Name" in methods means all code entities which belong into
+ this namespace (not in a subnamespace of this one), but not
+ to the subnamespaces.
+
+ "SubNamespace" in method names refers to all direct subnamespaces.
+*/
+class Module : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2000 };
+
+ // LIFECYCLE
+ Module();
+ Module(
+ const String & i_sName,
+ const Module & i_rParent );
+ ~Module();
+ // OPERATIONS
+ void Add_Name(
+ const String & i_sName,
+ Ce_id i_nId );
+ // INQUIRY
+ Ce_id Search_Name(
+ const String & i_sName ) const;
+ void Get_Names(
+ Dyn_StdConstIterator<Ce_id> &
+ o_rResult ) const;
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_module::attr;
+
+ // DATA
+ Dyn< NameTreeNode<Ce_id> >
+ pImpl;
+};
+
+
+inline bool
+is_Module( const CodeEntity & i_rCe )
+{
+ return i_rCe.AryClass() == Module::class_id;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_namelookup.hxx b/autodoc/inc/ary/idl/i_namelookup.hxx
new file mode 100644
index 000000000000..b4066a64ab4f
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_namelookup.hxx
@@ -0,0 +1,98 @@
+/* -*- 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 ARY_IDL_I_NAMELOOKUP_HXX
+#define ARY_IDL_I_NAMELOOKUP_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_types4idl.hxx>
+
+// USED SERVICES
+#include <ary/stdconstiter.hxx>
+#include <ary/itrange.hxx>
+#include <vector>
+#include <map>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** This class finds all occurrences in the current language of a
+ name in the repository.
+*/
+class NameLookup
+{
+ public:
+ struct NameProperties
+ {
+ NameProperties()
+ : nId(0),
+ nClass(0),
+ nOwner(0) {}
+ NameProperties(
+ Ce_id i_id,
+ ClassId i_class,
+ Ce_id i_owner )
+ : nId(i_id),
+ nClass(i_class),
+ nOwner(i_owner) {}
+ Ce_id nId;
+ ClassId nClass;
+ Ce_id nOwner;
+ };
+
+ /// Map from Name to NameProperties.
+ typedef std::multimap<String, NameProperties> Map_Names;
+
+ // LIFECYCLE
+ NameLookup();
+ ~NameLookup();
+ // OPERATIONS
+ void Add_Name(
+ const String & i_name,
+ Ce_id i_id,
+ ClassId i_class,
+ Ce_id i_owner );
+ private:
+ // DATA
+ Map_Names aNames;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_param.hxx b/autodoc/inc/ary/idl/i_param.hxx
new file mode 100644
index 000000000000..f504713a6828
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_param.hxx
@@ -0,0 +1,78 @@
+/* -*- 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 ARY_IDL_I_PARAM_HXX
+#define ARY_IDL_I_PARAM_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Represents a parameter in an IDL function.
+*/
+class Parameter
+{
+ public:
+ // LIFECYCLE
+ Parameter(
+ const String & i_sName,
+ Type_id i_nType,
+ E_ParameterDirection
+ i_eDirection );
+ ~Parameter();
+
+ // INQUIRY
+ const String & Name() const { return sName; }
+ Type_id Type() const { return nType; }
+ E_ParameterDirection
+ Direction() const { return eDirection; }
+
+ private:
+ // DATA
+ String sName;
+ Type_id nType;
+ E_ParameterDirection
+ eDirection;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_property.hxx b/autodoc/inc/ary/idl/i_property.hxx
new file mode 100644
index 000000000000..7a8bf026034f
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_property.hxx
@@ -0,0 +1,146 @@
+/* -*- 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 ARY_IDL_I_PROPERTY_HXX
+#define ARY_IDL_I_PROPERTY_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_property
+{
+ struct attr;
+}
+
+
+/** Represents an IDL property.
+*/
+class Property : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2004 };
+
+ class Stereotypes
+ {
+ public:
+ enum E_Flags
+ {
+ readonly = 1,
+ bound = 2,
+ constrained = 4,
+ maybeambiguous = 8,
+ maybedefault = 16,
+ maybevoid = 32,
+ removable = 64,
+ transient = 128,
+ s_MAX
+ };
+ Stereotypes() : nFlags(0) {}
+
+ bool HasAny() const { return nFlags != 0; }
+ bool IsReadOnly() const { return (nFlags & UINT32(readonly)) != 0; }
+ bool IsBound() const { return (nFlags & UINT32(bound)) != 0; }
+ bool IsConstrained() const
+ { return (nFlags & UINT32(constrained)) != 0; }
+ bool IsMayBeAmbiguous() const
+ { return (nFlags & UINT32(maybeambiguous)) != 0; }
+ bool IsMayBeDefault() const
+ { return (nFlags & UINT32(maybedefault)) != 0; }
+ bool IsMayBeVoid() const { return (nFlags & UINT32(maybevoid)) != 0; }
+ bool IsRemovable() const { return (nFlags & UINT32(removable)) != 0; }
+ bool IsTransient() const { return (nFlags & UINT32(transient)) != 0; }
+
+ void Set_Flag(
+ E_Flags i_flag )
+ { nFlags |= UINT32(i_flag); }
+ private:
+ // DATA
+ UINT32 nFlags;
+ };
+
+
+ // LIFECYCLE
+ Property(
+ const String & i_sName,
+ Ce_id i_nService,
+ Ce_id i_nModule,
+ Type_id i_nType,
+ Stereotypes i_stereotypes );
+ ~Property();
+ // INQUIRY
+ Type_id Type() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_property::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ Type_id nType;
+ Stereotypes aStereotypes;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Property::Type() const
+{
+ return nType;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_service.hxx b/autodoc/inc/ary/idl/i_service.hxx
new file mode 100644
index 000000000000..50d13583f380
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_service.hxx
@@ -0,0 +1,142 @@
+/* -*- 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 ARY_IDL_I_SERVICE_HXX
+#define ARY_IDL_I_SERVICE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+// USED SERVICES
+#include <ary/idl/i_comrela.hxx>
+#include <ary/stdconstiter.hxx>
+#include <ary/idl/ik_service.hxx>
+
+
+
+
+namespace ary
+{
+namespace info
+{
+ class CodeInformation;
+}
+namespace idl
+{
+namespace ifc_service
+{
+ struct attr;
+}
+
+
+/** Represents an IDL service.
+*/
+class Service : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2003 }; // See reposy.cxx
+
+ // LIFECYCLE
+ Service(
+ const String & i_sName,
+ Ce_id i_nOwner );
+ ~Service();
+
+ // INQUIRY
+ void Get_SupportedInterfaces(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_rResult ) const;
+ void Get_IncludedServices(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_rResult ) const;
+
+ // ACCESS
+ void Add_Property(
+ Ce_id i_nProperty );
+ void AddRef_IncludedService(
+ Type_id i_nService,
+ DYN doc::OldIdlDocu *
+ pass_dpDocu );
+ void AddRef_SupportedInterface(
+ Type_id i_nInterface,
+ DYN doc::OldIdlDocu *
+ pass_dpDocu );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector< CommentedRelation > RelationList;
+ typedef std::vector<Ce_id> PropertyList;
+ friend struct ifc_service::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ RelationList aIncludedServices;
+ RelationList aSupportedInterfaces;
+ PropertyList aProperties;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Service::Add_Property( Ce_id i_nProperty )
+ { aProperties.push_back(i_nProperty); }
+
+inline void
+Service::AddRef_IncludedService( Type_id i_nService,
+ DYN doc::OldIdlDocu * pass_dpDocu )
+ { aIncludedServices.push_back( CommentedRelation(i_nService, pass_dpDocu) ); }
+
+inline void
+Service::AddRef_SupportedInterface( Type_id i_nInterface,
+ DYN doc::OldIdlDocu * pass_dpDocu )
+ { aSupportedInterfaces.push_back( CommentedRelation(i_nInterface, pass_dpDocu) ); }
+
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_singleton.hxx b/autodoc/inc/ary/idl/i_singleton.hxx
new file mode 100644
index 000000000000..c264b3efa2f2
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_singleton.hxx
@@ -0,0 +1,108 @@
+/* -*- 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 ARY_IDL_I_SINGLETON_HXX
+#define ARY_IDL_I_SINGLETON_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_singleton
+{
+ struct attr;
+}
+
+
+/** Represents an IDL singleton.
+*/
+class Singleton : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2013 };
+
+ // LIFECYCLE
+ Singleton(
+ const String & i_sName,
+ Ce_id i_nOwner );
+ ~Singleton();
+ // INQUIRY
+ Type_id AssociatedService() const
+ { return nService; }
+
+ // ACCESS
+ void Set_Service(
+ Type_id i_nService );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ friend struct ifc_singleton::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ Type_id nService;
+};
+
+
+
+
+
+// IMPLEMENTATION
+inline void
+Singleton::Set_Service( Type_id i_nService )
+{
+ nService = i_nService;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_siservice.hxx b/autodoc/inc/ary/idl/i_siservice.hxx
new file mode 100644
index 000000000000..bdfe987d6827
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_siservice.hxx
@@ -0,0 +1,110 @@
+/* -*- 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 ARY_IDL_I_SISERVICE_HXX
+#define ARY_IDL_I_SISERVICE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_sglifcservice
+{
+ struct attr;
+}
+
+
+/** Represents an IDL single interface service.
+*/
+class SglIfcService : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2015 }; // See reposy.cxx
+
+ // LIFECYCLE
+ SglIfcService(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBaseInterface );
+ ~SglIfcService();
+ // ACCESS
+ void Add_Constructor(
+ Ce_id i_nId );
+
+ // INFO
+ Type_id BaseInterface() const { return nBaseInterface; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity:
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Local
+ typedef std::vector<Ce_id> CtorList;
+ friend struct ifc_sglifcservice::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Type_id nBaseInterface;
+
+ CtorList aConstructors;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+SglIfcService::Add_Constructor( Ce_id i_nId )
+{
+ aConstructors.push_back(i_nId);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_sisingleton.hxx b/autodoc/inc/ary/idl/i_sisingleton.hxx
new file mode 100644
index 000000000000..3ddcbede3332
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_sisingleton.hxx
@@ -0,0 +1,103 @@
+/* -*- 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 ARY_IDL_I_SISINGLETON_HXX
+#define ARY_IDL_I_SISINGLETON_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_sglifcsingleton
+{
+ struct attr;
+}
+
+
+/** Represents an IDL interface.
+*/
+class SglIfcSingleton : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2016 }; // See reposy.cxx
+
+ // LIFECYCLE
+ SglIfcSingleton(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBaseInterface );
+ ~SglIfcSingleton();
+ // INQUIRY
+ Type_id BaseInterface() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity:
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Local
+ friend struct ifc_sglifcsingleton::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Type_id nBaseInterface;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+SglIfcSingleton::BaseInterface() const
+{
+ return nBaseInterface;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_struct.hxx b/autodoc/inc/ary/idl/i_struct.hxx
new file mode 100644
index 000000000000..d118d18ba4f1
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_struct.hxx
@@ -0,0 +1,133 @@
+/* -*- 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 ARY_IDL_I_STRUCT_HXX
+#define ARY_IDL_I_STRUCT_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_struct
+{
+ struct attr;
+}
+
+
+/** Represents an IDL struct.
+*/
+class Struct : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2008 };
+
+ // LIFECYCLE
+ Struct(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBase,
+ const String & i_sTemplateParameter,
+ Type_id i_nTemplateParameterType );
+ ~Struct();
+ // INQUIRY
+ Type_id Base() const;
+ String TemplateParameter() const;
+ Type_id TemplateParameterType() const;
+
+ // ACCESS
+ void Add_Member(
+ Ce_id i_nMember );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector<Ce_id> ElementList;
+ friend struct ifc_struct::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ Type_id nBase;
+ String sTemplateParameter;
+ Type_id nTemplateParameterType;
+ ElementList aElements;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Struct::Base() const
+{
+ return nBase;
+}
+
+inline String
+Struct::TemplateParameter() const
+{
+ return sTemplateParameter;
+}
+
+inline Type_id
+Struct::TemplateParameterType() const
+{
+ return nTemplateParameterType;
+}
+
+inline void
+Struct::Add_Member( Ce_id i_nMember )
+{
+ aElements.push_back(i_nMember);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_structelem.hxx b/autodoc/inc/ary/idl/i_structelem.hxx
new file mode 100644
index 000000000000..98e8a1018093
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_structelem.hxx
@@ -0,0 +1,106 @@
+/* -*- 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 ARY_IDL_I_STRUCTELEM_HXX
+#define ARY_IDL_I_STRUCTELEM_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_structelement
+{
+ struct attr;
+}
+
+
+/** Represents an IDL struct element.
+*/
+class StructElement : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2009 };
+
+ // LIFECYCLE
+ StructElement(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nType );
+ ~StructElement();
+
+ // INQUIRY
+ Type_id Type() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_structelement::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ Type_id nType;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+StructElement::Type() const
+{
+ return nType;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_traits.hxx b/autodoc/inc/ary/idl/i_traits.hxx
new file mode 100644
index 000000000000..b8077ce5194e
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_traits.hxx
@@ -0,0 +1,81 @@
+/* -*- 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 ARY_IDL_I_TRAITS_HXX
+#define ARY_IDL_I_TRAITS_HXX
+
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Basic traits for derivd ones of ->CodeEntity.
+*/
+struct Ce_Traits
+{
+ typedef CodeEntity entity_base_type;
+ typedef Ce_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Ce_Compare : public Ce_Traits
+{
+ typedef String key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_type.hxx b/autodoc/inc/ary/idl/i_type.hxx
new file mode 100644
index 000000000000..436ee1fab330
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_type.hxx
@@ -0,0 +1,145 @@
+/* -*- 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 ARY_IDL_I_TYPE_HXX
+#define ARY_IDL_I_TYPE_HXX
+
+// USED SERVICES
+#include <ary/entity.hxx>
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+ class Gate;
+
+
+/** Abstract base for all secondary productions of types
+*/
+class Type_2s
+{
+ public:
+ virtual ~Type_2s() {}
+
+ static DYN Type_2s *
+ Create_(
+ ClassId i_nCeId );
+};
+
+
+/** Base of all IDL types.
+
+ Type represents the occurence of a type as base,
+ parameter, return type or element type in UNO IDL code.
+ Some of them relate to a ->CodeEntity, but
+ the ->Type "MyInterface" is something different than
+ the ->CodeEntity "MyInterface".
+
+ This is a storage base class, where more special
+ classes are derived from.
+*/
+class Type : public ary::Entity
+{
+ public:
+ typedef Type_2s secondary_productions;
+
+ // LIFECYCLE
+ virtual ~Type() {}
+
+ // INQUIRY
+ Type_id TypeId() const { return Type_id(Id()); }
+
+ /** Does NOT clear the output-parameters.
+
+ @attention
+ If this is a sequence, the text of the first non-sequence, enclosed type
+ is returned.
+ */
+ void Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequenceCount,
+ const Gate & i_rGate ) const;
+ const std::vector<Type_id> *
+ TemplateParameters() const;
+ const Type & FirstEnclosedNonSequenceType( /// @return *this, if this is not a ->Sequence.
+ const Gate & i_rGate ) const;
+
+ private:
+ virtual void inq_Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequemceCount,
+ const Gate & i_rGate ) const = 0;
+ virtual const std::vector<Type_id> *
+ inq_TemplateParameters() const;
+ virtual const Type &
+ inq_FirstEnclosedNonSequenceType(
+ const Gate & i_rGate ) const;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Type::Get_Text( StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequenceCount,
+ const Gate & i_rGate ) const
+{
+ inq_Get_Text(o_module,o_name,o_nRelatedCe,o_nSequenceCount,i_rGate);
+}
+
+inline const std::vector<Type_id> *
+Type::TemplateParameters() const
+{
+ return inq_TemplateParameters();
+}
+
+inline const Type &
+Type::FirstEnclosedNonSequenceType(const Gate & i_rGate) const
+{
+ return inq_FirstEnclosedNonSequenceType(i_rGate);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_typedef.hxx b/autodoc/inc/ary/idl/i_typedef.hxx
new file mode 100644
index 000000000000..228e097ca136
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_typedef.hxx
@@ -0,0 +1,93 @@
+/* -*- 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 ARY_IDL_I_TYPEDEF_HXX
+#define ARY_IDL_I_TYPEDEF_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_typedef
+{
+ struct attr;
+}
+
+
+/** Represents an IDL typedef.
+*/
+class Typedef : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2007 };
+
+ // LIFECYCLE
+ Typedef(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nDefiningType );
+ ~Typedef();
+
+ Type_id DefiningType() const { return nDefiningType; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_typedef::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ Type_id nDefiningType;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/i_types4idl.hxx b/autodoc/inc/ary/idl/i_types4idl.hxx
new file mode 100644
index 000000000000..f4b3d5224902
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_types4idl.hxx
@@ -0,0 +1,145 @@
+/* -*- 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 ARY_IDL_I_TYPES4IDL_HXX
+#define ARY_IDL_I_TYPES4IDL_HXX
+
+// USED SERVICES
+#include <ary/types.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+ class CodeEntity;
+ class Type;
+ class Gate;
+ class CePilot;
+ class TypePilot;
+
+
+typedef TypedId<CodeEntity> Ce_id;
+typedef TypedId<Type> Type_id;
+
+
+/** This is used when an ->ary::idl::ExplicitType
+ represents a templated struct and is sorted into the
+ dictionary of an ->ary::idl::XNameRoom.
+ Then local type name and template type id are concatenated
+ to one string with this char as delimiter.
+*/
+const char C_cTemplateDelimiter = '<';
+
+typedef std::vector<Ce_id> Ce_idList;
+
+
+enum E_ParameterDirection
+{
+ param_in,
+ param_out,
+ param_inout
+};
+
+
+enum E_SightLevel
+{
+ sl_Module, // not file bound entities, like modules
+ sl_File, // entities on top level within one file, like interface or enum
+ sl_Member // member entities, like enumvalue or function
+};
+
+inline Ce_id
+Ce_id_Null()
+{
+ return Ce_id(0);
+}
+
+inline void
+NullPush_IdList(Ce_idList * o_pList)
+{
+ if (o_pList)
+ o_pList->push_back( Ce_id_Null() );
+}
+
+inline void
+NullPush_IdList_2(Ce_idList * o_pList)
+{
+ if (o_pList)
+ {
+ o_pList->push_back( Ce_id_Null() );
+ o_pList->push_back( Ce_id_Null() );
+ }
+}
+
+namespace alphabetical_index
+{
+ enum E_Letter
+ {
+ a = int('a'),
+ b,
+ c,
+ d,
+ e,
+ f,
+ g,
+ h,
+ i,
+ j,
+ k,
+ l,
+ m,
+ n,
+ o,
+ p,
+ q,
+ r,
+ s,
+ t,
+ u,
+ v,
+ w,
+ x,
+ y,
+ z,
+ non_alpha = int('_'),
+ MAX
+ };
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_attribute.hxx b/autodoc/inc/ary/idl/ik_attribute.hxx
new file mode 100644
index 000000000000..d0e96c9131d5
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_attribute.hxx
@@ -0,0 +1,88 @@
+/* -*- 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 ARY_IDL_IK_ATTRIBUTE_HXX
+#define ARY_IDL_IK_ATTRIBUTE_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_attribute
+{
+
+using ifc_ce::DocText;
+using ::ary::idl::ifc_ce::Dyn_TypeIterator;
+
+
+struct attr: public ifc_ce::attr
+{
+ static bool HasAnyStereotype(
+ const CodeEntity & i_ce );
+ static bool IsReadOnly(
+ const CodeEntity & i_ce );
+ static bool IsBound(
+ const CodeEntity & i_ce );
+ static Type_id Type(
+ const CodeEntity & i_ce );
+ static void Get_GetExceptions(
+ Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_SetExceptions(
+ Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_attribute
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_ce.hxx b/autodoc/inc/ary/idl/ik_ce.hxx
new file mode 100644
index 000000000000..7a82402fc9f0
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_ce.hxx
@@ -0,0 +1,148 @@
+/* -*- 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 ARY_IDL_IK_CE_HXX
+#define ARY_IDL_IK_CE_HXX
+// KORR_DEPRECATED_3.0
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_types4idl.hxx>
+#include <ary/stdconstiter.hxx>
+
+namespace ary
+{
+namespace info
+{
+ class Text;
+}
+namespace idl
+{
+
+
+namespace ifc_ce
+{
+
+
+typedef ::ary::Dyn_StdConstIterator<Ce_id> Dyn_CeIterator;
+typedef ::ary::Dyn_StdConstIterator<Type_id> Dyn_TypeIterator;
+typedef ::ary::info::Text DocText;
+
+
+
+struct attr
+{
+ static Ce_id CeId(
+ const CodeEntity & i_ce );
+ static const String &
+ LocalName(
+ const CodeEntity & i_ce );
+ static Ce_id NameRoom(
+ const CodeEntity & i_ce );
+ static Rid Owner(
+ const CodeEntity & i_ce );
+ static E_SightLevel SightLevel(
+ const CodeEntity & i_ce );
+ static bool Search_Member(
+ const CodeEntity & ,
+ const String & )
+ { return true; } // KORR_FUTURE
+};
+
+struct xref
+{
+};
+
+struct doc
+{
+ static const DocText &
+ ShortInfo( /// @return a short description of the CodeEntity
+ const CodeEntity & i_ce );
+
+ static const DocText &
+ TagAuthor(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagExample(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagDescr(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagGuarantees(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagKey(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagMissing(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagSee(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagShort(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagVersion(
+ const CodeEntity & i_ce );
+
+ void Get_UnkownTags(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+
+ bool IsDeprecated(
+ const CodeEntity & i_ce );
+ bool IsIncomplete(
+ const CodeEntity & i_ce );
+ bool IsInternal(
+ const CodeEntity & i_ce );
+ bool IsNodoc(
+ const CodeEntity & i_ce );
+ bool IsOptional(
+ const CodeEntity & i_ce );
+ bool IsSuspicious(
+ const CodeEntity & i_ce );
+
+};
+
+
+} // namespace ifc_ce
+
+
+} // namspace idl
+} // namspace ary
+
+#endif
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_constant.hxx b/autodoc/inc/ary/idl/ik_constant.hxx
new file mode 100644
index 000000000000..a19bfc0af2d5
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_constant.hxx
@@ -0,0 +1,78 @@
+/* -*- 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 ARY_IDL_IK_CONSTANT_HXX
+#define ARY_IDL_IK_CONSTANT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_constant
+{
+
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id Type(
+ const CodeEntity & i_ce );
+ static const String &
+ Value(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_constant
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_constgroup.hxx b/autodoc/inc/ary/idl/ik_constgroup.hxx
new file mode 100644
index 000000000000..460386d5734c
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_constgroup.hxx
@@ -0,0 +1,75 @@
+/* -*- 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 ARY_IDL_IK_CONSTGROUP_HXX
+#define ARY_IDL_IK_CONSTGROUP_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_constgroup
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static void Get_Constants(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_constgroup
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_enum.hxx b/autodoc/inc/ary/idl/ik_enum.hxx
new file mode 100644
index 000000000000..2523b9a8a805
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_enum.hxx
@@ -0,0 +1,87 @@
+/* -*- 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 ARY_IDL_IK_ENUM_HXX
+#define ARY_IDL_IK_ENUM_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_enum
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static void Get_Values(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_SynonymTypedefs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsDataTypes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_enum
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_enumvalue.hxx b/autodoc/inc/ary/idl/ik_enumvalue.hxx
new file mode 100644
index 000000000000..26f7557a92f8
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_enumvalue.hxx
@@ -0,0 +1,76 @@
+/* -*- 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 ARY_IDL_IK_ENUMVALUE_HXX
+#define ARY_IDL_IK_ENUMVALUE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_enumvalue
+{
+
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static const String &
+ Value(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_enumvalue
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_exception.hxx b/autodoc/inc/ary/idl/ik_exception.hxx
new file mode 100644
index 000000000000..ab1f19540898
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_exception.hxx
@@ -0,0 +1,84 @@
+/* -*- 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 ARY_IDL_IK_EXCEPTION_HXX
+#define ARY_IDL_IK_EXCEPTION_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_exception
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id Base(
+ const CodeEntity & i_ce );
+ static void Get_Elements(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_Derivations(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_RaisingFunctions(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_exception
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_function.hxx b/autodoc/inc/ary/idl/ik_function.hxx
new file mode 100644
index 000000000000..fb57bd036ed0
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_function.hxx
@@ -0,0 +1,98 @@
+/* -*- 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 ARY_IDL_IK_SERVICE_HXX
+#define ARY_IDL_IK_SERVICE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/i_param.hxx>
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+
+namespace ifc_function
+{
+
+using ::ary::idl::ifc_ce::Dyn_CeIterator;
+using ::ary::idl::ifc_ce::Dyn_TypeIterator;
+using ::ary::idl::ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id ReturnType(
+ const CodeEntity & i_ce );
+ static bool IsOneway(
+ const CodeEntity & i_ce );
+ static bool HasEllipse(
+ const CodeEntity & i_ce );
+ static void Get_Parameters(
+ Dyn_StdConstIterator<ary::idl::Parameter> &
+ o_result,
+ const CodeEntity & i_ce );
+ static void Get_Exceptions(
+ Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+// aStateMachine.AddToken( "@param", nTok_at_param, A_nAtTagDefStatus, finAtTag );
+// aStateMachine.AddToken( "@throws", nTok_at_throws, A_nAtTagDefStatus, finAtTag );
+// aStateMachine.AddToken( "@exception",
+// aStateMachine.AddToken( "@return", nTok_at_return, A_nAtTagDefStatus, finAtTag );
+// aStateMachine.AddToken( "@returns", nTok_at_return, A_nAtTagDefStatus, finAtTag );
+};
+
+
+} // namespace ifc_function
+
+
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_interface.hxx b/autodoc/inc/ary/idl/ik_interface.hxx
new file mode 100644
index 000000000000..9ef89066dea6
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_interface.hxx
@@ -0,0 +1,103 @@
+/* -*- 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 ARY_IDL_IK_INTERFACE_HXX
+#define ARY_IDL_IK_INTERFACE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+class CommentedRelation;
+
+namespace ifc_interface
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static void Get_Bases(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_result,
+ const CodeEntity & i_ce );
+ static void Get_Functions(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Attributes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_Derivations(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_SynonymTypedefs( /// like: typedef i_ce.LocalName() newName;
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_ExportingServices(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_ExportingSingletons(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsDataTypes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_interface
+
+} // namespace idl
+} // namespace ary
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_module.hxx b/autodoc/inc/ary/idl/ik_module.hxx
new file mode 100644
index 000000000000..6b64582fbf01
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_module.hxx
@@ -0,0 +1,117 @@
+/* -*- 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 ARY_IDL_IK_MODULE_HXX
+#define ARY_IDL_IK_MODULE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+class CePilot;
+
+namespace ifc_module
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr : public ifc_ce::attr
+{
+ // KORR_FUTURE
+ // This has to be changed that way, that the differencing takes place
+ // within hfi_module.cxx and not here.
+ // So the class CePilot is not needed here, etc.
+ // Too much scope pollution.
+ static void Get_AllChildrenSeparated(
+ std::vector< const CodeEntity* > & o_nestedModules,
+ std::vector< const CodeEntity* > & o_services,
+ std::vector< const CodeEntity* > & o_interfaces,
+ std::vector< const CodeEntity* > & o_structs,
+ std::vector< const CodeEntity* > & o_exceptions,
+ std::vector< const CodeEntity* > & o_enums,
+ std::vector< const CodeEntity* > & o_typedefs,
+ std::vector< const CodeEntity* > & o_constantGroups,
+ std::vector< const CodeEntity* > & o_singletons,
+ const CePilot & i_pilot,
+ const CodeEntity & i_ce );
+
+ static void Get_SubModules(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Services(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Interfaces(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Structs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Exceptions(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Enums(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Typedefs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_ConstantsGroups(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_module
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_property.hxx b/autodoc/inc/ary/idl/ik_property.hxx
new file mode 100644
index 000000000000..ece8489454e1
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_property.hxx
@@ -0,0 +1,92 @@
+/* -*- 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 ARY_IDL_IK_PROPERTY_HXX
+#define ARY_IDL_IK_PROPERTY_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_property
+{
+
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static bool HasAnyStereotype(
+ const CodeEntity & i_ce );
+ static bool IsReadOnly(
+ const CodeEntity & i_ce );
+ static bool IsBound(
+ const CodeEntity & i_ce );
+ static bool IsConstrained(
+ const CodeEntity & i_ce );
+ static bool IsMayBeAmbiguous(
+ const CodeEntity & i_ce );
+ static bool IsMayBeDefault(
+ const CodeEntity & i_ce );
+ static bool IsMayBeVoid(
+ const CodeEntity & i_ce );
+ static bool IsRemovable(
+ const CodeEntity & i_ce );
+ static bool IsTransient(
+ const CodeEntity & i_ce );
+ static Type_id Type(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_property
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_service.hxx b/autodoc/inc/ary/idl/ik_service.hxx
new file mode 100644
index 000000000000..552f32bd3bcf
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_service.hxx
@@ -0,0 +1,91 @@
+/* -*- 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 ARY_IDL_IK_SERVICE_HXX
+#define ARY_IDL_IK_SERVICE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_service
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static void Get_IncludedServices(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_result,
+ const CodeEntity & i_ce );
+ static void Get_ExportedInterfaces(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_result,
+ const CodeEntity & i_ce );
+ static void Get_Properties(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_IncludingServices(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_InstantiatingSingletons(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_service
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_singleton.hxx b/autodoc/inc/ary/idl/ik_singleton.hxx
new file mode 100644
index 000000000000..9c8186a97e70
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_singleton.hxx
@@ -0,0 +1,76 @@
+/* -*- 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 ARY_IDL_IK_SINGLETON_HXX
+#define ARY_IDL_IK_SINGLETON_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_singleton
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id AssociatedService(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_singleton
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_siservice.hxx b/autodoc/inc/ary/idl/ik_siservice.hxx
new file mode 100644
index 000000000000..3534fef5d9ea
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_siservice.hxx
@@ -0,0 +1,78 @@
+/* -*- 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 ARY_IDL_IK_SISERVICE_HXX
+#define ARY_IDL_IK_SISERVICE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_sglifcservice
+{
+
+using ifc_ce::Dyn_CeIterator;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id BaseInterface(
+ const CodeEntity & i_ce );
+ static void Get_Constructors(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_sglifcservice
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_sisingleton.hxx b/autodoc/inc/ary/idl/ik_sisingleton.hxx
new file mode 100644
index 000000000000..46f033351120
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_sisingleton.hxx
@@ -0,0 +1,76 @@
+/* -*- 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 ARY_IDL_IK_SISINGLETON_HXX
+#define ARY_IDL_IK_SISINGLETON_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_sglifcsingleton
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id BaseInterface(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_sglifcsingleton
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_struct.hxx b/autodoc/inc/ary/idl/ik_struct.hxx
new file mode 100644
index 000000000000..79d7c1f39dd2
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_struct.hxx
@@ -0,0 +1,93 @@
+/* -*- 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 ARY_IDL_IK_STRUCT_HXX
+#define ARY_IDL_IK_STRUCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_struct
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id Base(
+ const CodeEntity & i_ce );
+ static void Get_Elements(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_Derivations(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_SynonymTypedefs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsDataTypes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_struct
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_structelem.hxx b/autodoc/inc/ary/idl/ik_structelem.hxx
new file mode 100644
index 000000000000..235008fc7446
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_structelem.hxx
@@ -0,0 +1,75 @@
+/* -*- 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 ARY_IDL_IK_STRUCTELEM_HXX
+#define ARY_IDL_IK_STRUCTELEM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_structelement
+{
+
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id Type(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_structelement
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ik_typedef.hxx b/autodoc/inc/ary/idl/ik_typedef.hxx
new file mode 100644
index 000000000000..856928223034
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_typedef.hxx
@@ -0,0 +1,86 @@
+/* -*- 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 ARY_IDL_IK_TYPEDEF_HXX
+#define ARY_IDL_IK_TYPEDEF_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_typedef
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id DefiningType(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_SynonymTypedefs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsDataTypes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_typedef
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ip_ce.hxx b/autodoc/inc/ary/idl/ip_ce.hxx
new file mode 100644
index 000000000000..a1d4990c4cb5
--- /dev/null
+++ b/autodoc/inc/ary/idl/ip_ce.hxx
@@ -0,0 +1,213 @@
+/* -*- 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 ARY_IDL_IP_CE_HXX
+#define ARY_IDL_IP_CE_HXX
+
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+#include <ary/idl/i_property.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+
+ class ConstantsGroup;
+ class Enum;
+ class Exception;
+ class Interface;
+ class Service;
+ class SglIfcService;
+ class Singleton;
+ class SglIfcSingleton;
+ class Struct;
+ class Typedef;
+
+ class Attribute;
+ class Constant;
+ class EnumValue;
+ class Function;
+ class Property;
+ class StructElement;
+ class Variable;
+
+ class NameLookup;
+
+
+/** Provides the access logic for all code entities.
+*/
+class CePilot
+{
+ public:
+ // LIFECYCLE
+ virtual ~CePilot() {}
+
+ // OPERATIONS
+ virtual Module & CheckIn_Module(
+ Ce_id i_nParentId,
+ const String & i_sName ) = 0;
+ virtual Service & Store_Service(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual SglIfcService &
+ Store_SglIfcService(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBaseInterface ) = 0;
+ virtual Interface & Store_Interface(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase ) = 0;
+ virtual Struct & Store_Struct(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase,
+ const String & i_sTemplateParam = String::Null_() ) = 0;
+ virtual Exception & Store_Exception(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase ) = 0;
+ virtual Enum & Store_Enum(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual Typedef & Store_Typedef(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nDefiningType ) = 0;
+ virtual ConstantsGroup &
+ Store_ConstantsGroup(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual Singleton & Store_Singleton(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual SglIfcSingleton &
+ Store_SglIfcSingleton(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBaseInterface ) = 0;
+
+ virtual Constant & Store_Constant(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ const String & i_sValue ) = 0;
+ virtual Property & Store_Property(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ Property::Stereotypes
+ i_stereotypes ) = 0;
+ virtual Function & Store_Function(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nReturnType,
+ bool i_bOneWay ) = 0;
+ virtual Function & Store_ServiceConstructor(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual StructElement &
+ Store_StructMember(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType ) = 0;
+ virtual StructElement &
+ Store_ExceptionMember(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType ) = 0;
+ virtual EnumValue & Store_EnumValue(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ const String & i_sValue ) = 0;
+ virtual Attribute & Store_Attribute(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ bool i_bReadOnly,
+ bool i_bBound ) = 0;
+ // INQUIRY
+ virtual const Module &
+ GlobalNamespace() const = 0;
+ virtual const CodeEntity &
+ Find_Ce(
+ Ce_id i_nId ) const = 0;
+
+ virtual const Module &
+ Find_Module(
+ Ce_id i_nId ) const = 0;
+ virtual const Module *
+ Search_Module(
+ Ce_id i_nId ) const = 0;
+ virtual const Function &
+ Find_Function(
+ Ce_id i_nId ) const = 0;
+ virtual const Property &
+ Find_Property(
+ Ce_id i_nId ) const = 0;
+ virtual const EnumValue &
+ Find_EnumValue(
+ Ce_id i_nId ) const = 0;
+ virtual const Constant &
+ Find_Constant(
+ Ce_id i_nId ) const = 0;
+ virtual const StructElement &
+ Find_StructElement(
+ Ce_id i_nId ) const = 0;
+ virtual void Get_Text(
+ StringVector & o_module,
+ String & o_ce,
+ String & o_member,
+ const CodeEntity & i_ce ) const = 0;
+ virtual const NameLookup &
+ NameDictionary() const = 0;
+ virtual void Get_AlphabeticalIndex(
+ std::vector<Ce_id> &
+ o_rResult,
+ alphabetical_index::E_Letter
+ i_cLetter) const = 0;
+ // ACCESS
+ virtual Module & GlobalNamespace() = 0;
+ virtual CodeEntity &
+ Find_Ce(
+ Ce_id i_nId ) = 0;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/idl/ip_type.hxx b/autodoc/inc/ary/idl/ip_type.hxx
new file mode 100644
index 000000000000..a4f070b78c81
--- /dev/null
+++ b/autodoc/inc/ary/idl/ip_type.hxx
@@ -0,0 +1,86 @@
+/* -*- 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 ARY_IDL_IP_TYPE_HXX
+#define ARY_IDL_IP_TYPE_HXX
+
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+namespace ary
+{
+ class QualifiedName;
+
+namespace idl
+{
+ class Type;
+ class ExplicitNameRoom;
+
+
+/** Access point to all {->Type}s in IDL.
+*/
+class TypePilot
+{
+ public:
+ // LIFECYCLE
+ virtual ~TypePilot() {}
+
+ // OPERATIONS
+ virtual const Type &
+ CheckIn_Type(
+ QualifiedName & i_rFullName,
+ uintt i_nSequenceCount,
+ Ce_id i_nModuleOfOccurrence,
+ const std::vector<Type_id> *
+ i_templateParameters ) = 0;
+ // INQUIRY
+ virtual const Type &
+ Find_Type(
+ Type_id i_nType ) const = 0;
+ virtual String Search_LocalNameOf(
+ Type_id i_nType ) const = 0;
+ virtual Ce_id Search_CeRelatedTo(
+ Type_id i_nType ) const = 0;
+ virtual const ExplicitNameRoom &
+ Find_XNameRoom(
+ Type_id i_nType ) const = 0;
+ virtual bool IsBuiltInOrRelated(
+ const Type & i_rType ) const = 0;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/info/all_dts.hxx b/autodoc/inc/ary/info/all_dts.hxx
new file mode 100644
index 000000000000..2508248f860f
--- /dev/null
+++ b/autodoc/inc/ary/info/all_dts.hxx
@@ -0,0 +1,162 @@
+/* -*- 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 ARY_INFO_ALL_DTS_HXX
+#define ARY_INFO_ALL_DTS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace info
+{
+
+class DocuDisplay;
+
+class DocuToken
+{
+ public:
+ virtual ~DocuToken() {}
+
+ void StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ bool IsWhite() const;
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const = 0;
+ virtual bool inq_IsWhite() const = 0;
+};
+
+class DT_Text : public DocuToken
+{
+ public:
+ DT_Text(
+ const char * i_sText )
+ : sText( i_sText ) {}
+
+ const String & Text() const { return sText; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+
+ String sText;
+};
+
+class DT_MaybeLink : public DocuToken
+{
+ public:
+ DT_MaybeLink(
+ const char * i_sText,
+ bool i_bIsGlobal,
+ bool i_bIsFunction )
+ : sText( i_sText ),
+ bIsGlobal(i_bIsGlobal),
+ bIsFunction(i_bIsFunction) { }
+
+ const String & Text() const { return sText; }
+ bool IsAbsolute() const { return bIsGlobal; }
+ bool IsFunction() const { return bIsFunction; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+
+ String sText;
+ bool bIsGlobal;
+ bool bIsFunction;
+};
+
+class DT_Whitespace : public DocuToken
+{
+ public:
+ DT_Whitespace(
+ UINT8 i_nLength )
+ : nLength( i_nLength ) {}
+ UINT8 Length() const { return nLength; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+
+ UINT8 nLength;
+};
+
+
+class DT_Eol : public DocuToken
+{
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+};
+
+class DT_Xml : public DocuToken
+{
+ public:
+ DT_Xml(
+ const char * i_sText )
+ : sText( i_sText ) {}
+
+ const String & Text() const { return sText; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+
+ String sText;
+};
+
+
+// IMPLEMENTATION
+
+inline void
+DocuToken::StoreAt( DocuDisplay & o_rDisplay ) const
+ { do_StoreAt(o_rDisplay); }
+inline bool
+DocuToken::IsWhite() const
+ { return inq_IsWhite(); }
+
+
+
+}
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/info/all_tags.hxx b/autodoc/inc/ary/info/all_tags.hxx
new file mode 100644
index 000000000000..79bb4de3bc1e
--- /dev/null
+++ b/autodoc/inc/ary/info/all_tags.hxx
@@ -0,0 +1,291 @@
+/* -*- 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 ARY_INFO_ALL_TAGS_HXX
+#define ARY_INFO_ALL_TAGS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/info/ci_attag.hxx>
+ // COMPONENTS
+#include <ary/info/inftypes.hxx>
+#include <ary/info/ci_text.hxx>
+#include <ary/qualiname.hxx>
+ // PARAMETERS
+
+
+
+namespace ary
+{
+namespace info
+{
+
+
+class StdTag : public AtTag
+{
+ public:
+ StdTag(
+ E_AtTagId i_eId );
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ void ChangeId2(
+ E_AtTagId i_eId )
+ { eId = i_eId; }
+
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ E_AtTagId Std_Id() const { return eId; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ E_AtTagId eId;
+ DocuText aText;
+ StdTag * pNext;
+};
+
+class BaseTag : public AtTag
+{
+ public:
+ BaseTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ QualifiedName sBase;
+ DocuText aText;
+ AtTag * pNext;
+};
+
+class ExceptionTag : public AtTag
+{
+ public:
+ ExceptionTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ QualifiedName sException;
+ DocuText aText;
+ AtTag * pNext;
+};
+
+class ImplementsTag : public AtTag
+{
+ public:
+ ImplementsTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ QualifiedName sName;
+ AtTag * pNext;
+};
+
+class KeywordTag : public AtTag
+{
+ public:
+ KeywordTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ StringVector sKeys;
+};
+
+class ParameterTag : public AtTag
+{
+ public:
+ ParameterTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+
+ const String & ParamName() const { return sName; }
+ const DocuText & CText() const { return aText; }
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual const ParameterTag *
+ GetNext() const { return dynamic_cast< ParameterTag* >(pNext); }
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ String sName;
+ String sValidRange;
+ DocuText aText;
+ AtTag * pNext;
+};
+
+class SeeTag : public AtTag
+{
+ public:
+ SeeTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ const std::vector< QualifiedName > &
+ References() const { return sReferences; }
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ std::vector< QualifiedName >
+ sReferences;
+};
+
+class TemplateTag : public AtTag
+{
+ public:
+ TemplateTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ const DocuText & CText() const { return aText; }
+ virtual const char *
+ Title() const;
+ const String & TplParamName() const { return sName; }
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual const TemplateTag *
+ GetNext() const { return dynamic_cast< TemplateTag* >(pNext); }
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ String sName;
+ DocuText aText;
+ AtTag * pNext;
+};
+
+class LabelTag : public AtTag
+{
+ public:
+ LabelTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ String sLabel;
+};
+
+class SinceTag : public AtTag
+{
+ public:
+ SinceTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ const String & Version() const { return sVersion; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ // Data
+ String sVersion;
+};
+
+
+
+// IMPLEMENTATION
+
+
+}
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/info/ci_attag.hxx b/autodoc/inc/ary/info/ci_attag.hxx
new file mode 100644
index 000000000000..720e6014bce5
--- /dev/null
+++ b/autodoc/inc/ary/info/ci_attag.hxx
@@ -0,0 +1,103 @@
+/* -*- 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 ARY_INFO_CI_ATTAG_HXX
+#define ARY_INFO_CI_ATTAG_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+namespace ary
+{
+namespace info
+{
+
+class DocuText;
+class DocuDisplay;
+
+class AtTag
+{
+ public:
+ virtual ~AtTag() {}
+
+ void Set_HtmlUseInDocuText(
+ bool i_bUseIt );
+ virtual bool Add_SpecialMeaningToken( /// @return false, if token was not spüecial.
+ const char * i_sText,
+ intt i_nNr ) = 0;
+ virtual void Add_Token(
+ const char * i_sText );
+ virtual void Add_PotentialLink(
+ const char * i_sText,
+ bool i_bIsGlobal,
+ bool i_bIsFunction );
+ virtual void Add_Whitespace(
+ UINT8 i_nLength );
+ virtual void Add_Eol();
+
+ virtual UINT8 NrOfSpecialMeaningTokens() const = 0;
+ virtual AtTag * GetFollower() = 0;
+
+ void StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ const DocuText & CText() const;
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const; // later becoming abstract
+
+ virtual DocuText * Text() = 0;
+};
+
+
+
+// IMPLEMENTATION
+
+inline void
+AtTag::StoreAt( DocuDisplay & o_rDisplay ) const
+ { do_StoreAt(o_rDisplay); }
+inline const DocuText &
+AtTag::CText() const
+ { DocuText * ret = const_cast< AtTag* >(this)->Text();
+ csv_assert( ret != 0 );
+ return *ret;
+ }
+
+
+}
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/info/ci_text.hxx b/autodoc/inc/ary/info/ci_text.hxx
new file mode 100644
index 000000000000..9c4331c6b7bb
--- /dev/null
+++ b/autodoc/inc/ary/info/ci_text.hxx
@@ -0,0 +1,87 @@
+/* -*- 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 ARY_INFO_CI_TEXT_HXX
+#define ARY_INFO_CI_TEXT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace info
+{
+
+class DocuToken;
+class DocuDisplay;
+
+
+class DocuText
+{
+ public:
+ typedef std::vector< DocuToken * > TokenList;
+
+ DocuText();
+ ~DocuText();
+
+ void Set_HtmlUse(
+ bool i_bUseIt )
+ { bUsesHtml = i_bUseIt; }
+ void Add_Token(
+ DYN DocuToken & let_drToken )
+ { aTokens.push_back(&let_drToken); }
+ const TokenList & Tokens() const { return aTokens; }
+ void StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ bool IsNoHtml() const { return NOT bUsesHtml; }
+ bool IsEmpty() const { return aTokens.size() == 0; }
+
+ private:
+ TokenList aTokens;
+ bool bUsesHtml;
+};
+
+
+
+
+
+
+// IMPLEMENTATION
+
+
+}
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/info/docstore.hxx b/autodoc/inc/ary/info/docstore.hxx
new file mode 100644
index 000000000000..4c95d2e32824
--- /dev/null
+++ b/autodoc/inc/ary/info/docstore.hxx
@@ -0,0 +1,119 @@
+/* -*- 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 ARY_INFO_DOCSTORE_HXX
+#define ARY_INFO_DOCSTORE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/info/inftypes.hxx>
+
+namespace ary
+{
+namespace doc
+{
+ class Node;
+}
+
+
+
+namespace info
+{
+
+class DocuStore
+{
+ public:
+ virtual ~DocuStore() {}
+
+ void Store2CurFile(
+ DYN doc::Node & let_drDocu );
+ void Store2CurNamespace(
+ DYN doc::Node & let_drDocu );
+
+ void Store2ConnectedDeclaration(
+ DYN doc::Node & let_drDocu );
+
+ void Store2Glossary(
+ DYN doc::Node & let_drDocu,
+ const String & i_sExplainedTerm );
+ void Store2GlobalTexts(
+ DYN doc::Node & let_drDocu,
+ ary::info::GlobalTextId
+ i_nId );
+ private:
+ virtual void do_Store2CurFile(
+ DYN doc::Node & let_drDocu ) = 0;
+ virtual void do_Store2CurNamespace(
+ DYN doc::Node & let_drDocu ) = 0;
+
+ virtual void do_Store2ConnectedDeclaration(
+ DYN doc::Node & let_drDocu ) = 0;
+
+ virtual void do_Store2Glossary(
+ DYN doc::Node & let_drDocu,
+ const String & i_sExplainedTerm ) = 0;
+ virtual void do_Store2GlobalTexts(
+ DYN doc::Node & let_drDocu,
+ ary::info::GlobalTextId
+ i_nId ) = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+DocuStore::Store2CurFile( DYN doc::Node & let_drDocu )
+ { do_Store2CurFile(let_drDocu); }
+inline void
+DocuStore::Store2CurNamespace( DYN doc::Node & let_drDocu )
+ { do_Store2CurNamespace(let_drDocu); }
+inline void
+DocuStore::Store2ConnectedDeclaration( DYN doc::Node & let_drDocu )
+ { do_Store2ConnectedDeclaration(let_drDocu); }
+inline void
+DocuStore::Store2Glossary( DYN doc::Node & let_drDocu,
+ const String & i_sExplainedTerm )
+ { do_Store2Glossary(let_drDocu, i_sExplainedTerm); }
+inline void
+DocuStore::Store2GlobalTexts( DYN doc::Node & let_drDocu,
+ ary::info::GlobalTextId i_nId )
+ { do_Store2GlobalTexts(let_drDocu, i_nId); }
+
+
+
+
+} // namespace info
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/info/infodisp.hxx b/autodoc/inc/ary/info/infodisp.hxx
new file mode 100644
index 000000000000..38aae93b0feb
--- /dev/null
+++ b/autodoc/inc/ary/info/infodisp.hxx
@@ -0,0 +1,117 @@
+/* -*- 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 ARY_INFO_INFODISP_HXX
+#define ARY_INFO_INFODISP_HXX
+// KORR_DEPRECATED_3.0
+
+// BASE CLASSES
+// USED SERVICES
+
+
+
+
+namespace ary
+{
+namespace info
+{
+ class StdTag;
+ class BaseTag;
+ class ExceptionTag;
+ class ImplementsTag;
+ class KeywordTag;
+ class ParameterTag;
+ class SeeTag;
+ class TemplateTag;
+ class LabelTag;
+ class SinceTag;
+ class DT_Text;
+ class DT_MaybeLink;
+ class DT_Whitespace;
+ class DT_Eol;
+ class DT_Xml;
+
+
+
+/** Displaying an ary::doc::OldCppDocu.
+
+ @descr
+ This class is an interface, but the functions are defaulted,
+ to do nothing. so a derived class needn't implement all of them.
+*/
+class DocuDisplay
+{
+ public:
+ virtual ~DocuDisplay() {}
+
+ virtual void Display_StdTag(
+ const StdTag & i_rData ) = 0;
+ virtual void Display_BaseTag(
+ const BaseTag & i_rData ) = 0;
+ virtual void Display_ExceptionTag(
+ const ExceptionTag &
+ i_rData ) = 0;
+ virtual void Display_ImplementsTag(
+ const ImplementsTag &
+ i_rData ) = 0;
+ virtual void Display_KeywordTag(
+ const KeywordTag & i_rData ) = 0;
+ virtual void Display_ParameterTag(
+ const ParameterTag &
+ i_rData ) = 0;
+ virtual void Display_SeeTag(
+ const SeeTag & i_rData ) = 0;
+ virtual void Display_TemplateTag(
+ const TemplateTag & i_rData ) = 0;
+ virtual void Display_LabelTag(
+ const LabelTag & i_rData ) = 0;
+ virtual void Display_SinceTag(
+ const ary::info::SinceTag &
+ i_rData ) = 0;
+ virtual void Display_DT_Text(
+ const DT_Text & i_rData ) = 0;
+ virtual void Display_DT_MaybeLink(
+ const DT_MaybeLink& i_rData ) = 0;
+ virtual void Display_DT_Whitespace(
+ const DT_Whitespace &
+ i_rData ) = 0;
+ virtual void Display_DT_Eol(
+ const DT_Eol & i_rData ) = 0;
+ virtual void Display_DT_Xml(
+ const ary::info::DT_Xml &
+ i_rData ) = 0;
+};
+
+
+
+
+}
+}
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/info/inftypes.hxx b/autodoc/inc/ary/info/inftypes.hxx
new file mode 100644
index 000000000000..1539346fb7d5
--- /dev/null
+++ b/autodoc/inc/ary/info/inftypes.hxx
@@ -0,0 +1,124 @@
+/* -*- 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 ARY_INFO_INFTYPES_HXX
+#define ARY_INFO_INFTYPES_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace info
+{
+
+
+
+
+typedef uintt GlobalTextId;
+
+
+
+/** Because this enum is used as index list for displayed
+ tag headlines, the items must neither be moved nor deleted.
+ Only adding to the end is allowed. atid_MAX always has to exist
+ and to be the last used value.
+ Also assigning numbers to the values is forbidden.
+*/
+enum E_AtTagId
+{
+ atid_ATT = 0,
+ atid_author,
+ atid_change,
+ atid_collab,
+ atid_contact,
+
+ atid_copyright,
+ atid_deprecated,
+ atid_descr,
+ atid_docdate,
+ atid_derive,
+
+ atid_dyn,
+ atid_instance,
+ atid_interface,
+ atid_invariant,
+ atid_life,
+
+ atid_multi,
+ atid_onerror,
+ atid_persist,
+ atid_postcond,
+ atid_precond,
+
+ atid_resp,
+ atid_return,
+ atid_short,
+ atid_todo,
+ atid_version,
+
+ atid_MAX
+};
+
+/** Because this enum is used as index list for displayed
+ tag headlines, the items must neither be moved nor deleted.
+ Only adding to the end is allowed. C_eAtTag_NrOfClasses always has to exist
+ and to be the last used value.
+ Also assigning other numbers to the values, than in this
+ existing scheme, is forbidden.
+*/
+enum E_AtTagClass
+{
+ atc_std = 0,
+
+ atc_base = atid_MAX,
+ atc_exception = atid_MAX + 1,
+ atc_implements = atid_MAX + 2,
+ atc_keyword = atid_MAX + 3,
+ atc_parameter = atid_MAX + 4,
+
+ atc_see = atid_MAX + 5,
+ atc_template = atid_MAX + 6,
+ atc_label = atid_MAX + 7,
+ atc_since = atid_MAX + 8,
+ C_eAtTag_NrOfClasses
+};
+
+
+
+} // namespace info
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/itrange.hxx b/autodoc/inc/ary/itrange.hxx
new file mode 100644
index 000000000000..fb2fb3cb0d7a
--- /dev/null
+++ b/autodoc/inc/ary/itrange.hxx
@@ -0,0 +1,83 @@
+/* -*- 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 ARY_ITRANGE_HXX
+#define ARY_ITRANGE_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <utility>
+
+
+
+
+namespace ary
+{
+
+template <typename ITER>
+class IteratorRange
+{
+ public:
+ IteratorRange(
+ ITER i_begin,
+ ITER i_end )
+ : itCurrent(i_begin),
+ itEnd(i_end)
+ {}
+ IteratorRange(
+ std::pair<ITER,ITER>
+ i_range )
+ : itCurrent(i_range.first),
+ itEnd(i_range.second)
+ {}
+
+ operator bool() const { return itCurrent != itEnd; }
+ IteratorRange & operator++() { ++itCurrent; return *this; }
+
+ ITER cur() const { return itCurrent; }
+ ITER end() const { return itEnd; }
+
+
+ private:
+ // DATA
+ ITER itCurrent;
+ ITER itEnd;
+};
+
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/loc/loc_dir.hxx b/autodoc/inc/ary/loc/loc_dir.hxx
new file mode 100644
index 000000000000..f8abf70cf062
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_dir.hxx
@@ -0,0 +1,148 @@
+/* -*- 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 ARY_LOC_DIR_HXX
+#define ARY_LOC_DIR_HXX
+
+// BASE CLASSES
+#include <ary/loc/loc_le.hxx>
+
+// USED SERVICES
+#include <ary/loc/loc_traits.hxx>
+#include <ary/symtreenode.hxx>
+
+namespace ary
+{
+namespace loc
+{
+ class File;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Represents a directory for source code files.
+*/
+class Directory : public LocationEntity
+{
+ public:
+ enum E_ClassId { class_id = 7030 };
+
+ typedef ::ary::symtree::Node<LeNode_Traits> node_t;
+
+ /// Used for root directories.
+ explicit Directory(
+ Le_id i_assignedRoot );
+
+ /// Used for subdirectories which have a parent directory.
+ Directory(
+ const String & i_localName,
+ Le_id i_parentDirectory );
+ virtual ~Directory();
+
+ void Add_Dir(
+ const Directory & i_dir );
+ void Add_File(
+ const File & i_file );
+
+ Le_id Parent() const;
+ Le_id AssignedRoot() const;
+
+ Le_id Search_Dir(
+ const String & i_name ) const;
+ Le_id Search_File(
+ const String & i_name ) const;
+
+ const node_t & AsNode() const;
+ node_t & AsNode();
+
+ private:
+ struct Container;
+
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface LocationEntity:
+ virtual const String &
+ inq_LocalName() const;
+ virtual Le_id inq_ParentDirectory() const;
+
+ // DATA
+ String sLocalName;
+ Le_id nParentDirectory;
+ Le_id nAssignedRoot;
+ node_t aAssignedNode;
+ Dyn<Container> pChildren;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Le_id
+Directory::Parent() const
+{
+ return nParentDirectory;
+}
+
+inline Le_id
+Directory::AssignedRoot() const
+{
+ return nAssignedRoot;
+}
+
+inline const Directory::node_t &
+Directory::AsNode() const
+{
+ return aAssignedNode;
+}
+
+inline Directory::node_t &
+Directory::AsNode()
+{
+ return aAssignedNode;
+}
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/loc/loc_file.hxx b/autodoc/inc/ary/loc/loc_file.hxx
new file mode 100644
index 000000000000..1afdd650a7c1
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_file.hxx
@@ -0,0 +1,71 @@
+/* -*- 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 ARY_LOC_FILE_HXX
+#define ARY_LOC_FILE_HXX
+
+// BASE CLASSES
+#include <ary/loc/loc_filebase.hxx>
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Represents an unspecified source code file.
+*/
+class File : public FileBase
+{
+ public:
+ enum E_ClassId { class_id = 7100 };
+
+ File(
+ const String & i_sLocalName,
+ Le_id i_nParentDirectory );
+ virtual ~File();
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+};
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/loc/loc_filebase.hxx b/autodoc/inc/ary/loc/loc_filebase.hxx
new file mode 100644
index 000000000000..04550d4c8da4
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_filebase.hxx
@@ -0,0 +1,75 @@
+/* -*- 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 ARY_LOC_FILEBASE_HXX
+#define ARY_LOC_FILEBASE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/loc/loc_le.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+
+/** Base class for classes representing source code files.
+*/
+class FileBase : public LocationEntity
+{
+ public:
+ virtual ~FileBase() {}
+
+ protected:
+ FileBase(
+ const String & i_localName ,
+ Le_id i_parentDirectory );
+ private:
+ // Interface LocationEntity:
+ virtual const String &
+ inq_LocalName() const;
+ virtual Le_id inq_ParentDirectory() const;
+
+ // DATA
+ String sLocalName;
+ Le_id nParentDirectory;
+};
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/loc/loc_le.hxx b/autodoc/inc/ary/loc/loc_le.hxx
new file mode 100644
index 000000000000..b2c0e602083e
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_le.hxx
@@ -0,0 +1,97 @@
+/* -*- 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 ARY_LOC_LE_HXX
+#define ARY_LOC_LE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/entity.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/loc/loc_types4loc.hxx>
+#include <ary/loc/loc_traits.hxx>
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Base class for all file locations in the Autodoc repository.
+*/
+class LocationEntity : public ::ary::Entity
+{
+ public:
+ typedef Le_Traits traits_t;
+
+ virtual ~LocationEntity() {}
+
+ Le_id LeId() const;
+ const String & LocalName() const;
+ Le_id ParentDirectory() const;
+
+ private:
+ virtual const String &
+ inq_LocalName() const = 0;
+ virtual Le_id inq_ParentDirectory() const = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Le_id
+LocationEntity::LeId() const
+{
+ return TypedId<LocationEntity>(Id());
+}
+
+inline const String &
+LocationEntity::LocalName() const
+{
+ return inq_LocalName();
+}
+
+inline Le_id
+LocationEntity::ParentDirectory() const
+{
+ return inq_ParentDirectory();
+}
+
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/loc/loc_root.hxx b/autodoc/inc/ary/loc/loc_root.hxx
new file mode 100644
index 000000000000..e8b3a66b6209
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_root.hxx
@@ -0,0 +1,113 @@
+/* -*- 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 ARY_LOC_PROJECT_HXX
+#define ARY_LOC_PROJECT_HXX
+
+// BASE CLASSES
+#include <ary/loc/loc_le.hxx>
+// USED SERVICES
+#include <cosv/ploc.hxx>
+#include <ary/loc/loc_dir.hxx>
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Represents a root directory for source files.
+*/
+class Root : public LocationEntity
+{
+ public:
+ enum E_ClassId { class_id = 7000 };
+
+ explicit Root(
+ const csv::ploc::Path &
+ i_rRootDirectoryPath );
+ void Assign_Directory(
+ Le_id i_assignedDirectory );
+ virtual ~Root();
+
+ // INQUIRY
+ const csv::ploc::Path &
+ Path() const;
+ Le_id MyDir() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface LocationEntity:
+ virtual const String &
+ inq_LocalName() const;
+ virtual Le_id inq_ParentDirectory() const;
+
+ // DATA
+ csv::ploc::Path aPath;
+ String sPathAsString;
+ Le_id aMyDirectory;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Root::Assign_Directory(Le_id i_assignedDirectory)
+{
+ aMyDirectory = i_assignedDirectory;
+}
+
+inline const csv::ploc::Path &
+Root::Path() const
+{
+ return aPath;
+}
+
+inline Le_id
+Root::MyDir() const
+{
+ return aMyDirectory;
+}
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/loc/loc_traits.hxx b/autodoc/inc/ary/loc/loc_traits.hxx
new file mode 100644
index 000000000000..d07fdeebf334
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_traits.hxx
@@ -0,0 +1,118 @@
+/* -*- 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 ARY_LOC_TRAITS_HXX
+#define ARY_LOC_TRAITS_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/loc/loc_types4loc.hxx>
+
+
+namespace ary
+{
+namespace symtree
+{
+ template <class> class Node;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+
+/** Basic traits for derived ones of ->LocationEntity.
+*/
+struct Le_Traits
+{
+ typedef LocationEntity entity_base_type;
+ typedef Le_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+
+/** An instance of SYMBOL_TRAITS for ->::ary::symtree::Node.
+
+ @see ::ary::symtree::Node
+*/
+struct LeNode_Traits : public Le_Traits
+{
+ static symtree::Node<LeNode_Traits> *
+ NodeOf_(
+ entity_base_type & i_entity );
+
+ static entity_base_type *
+ ParentOf_(
+ const entity_base_type &
+ i_entity );
+ template <class KEY>
+ static id_type Search_(
+ const entity_base_type &
+ i_entity,
+ const KEY & i_localKey );
+};
+
+
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Le_Compare : public Le_Traits
+{
+ typedef String key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/loc/loc_types4loc.hxx b/autodoc/inc/ary/loc/loc_types4loc.hxx
new file mode 100644
index 000000000000..64b2a0b76261
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_types4loc.hxx
@@ -0,0 +1,57 @@
+/* -*- 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 ARY_LOC_TYPES4LOC_HXX
+#define ARY_LOC_TYPES4LOC_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/types.hxx>
+
+
+namespace ary
+{
+namespace loc
+{
+
+class LocationEntity;
+
+
+
+typedef ::ary::TypedId<LocationEntity> Le_id;
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/loc/locp_le.hxx b/autodoc/inc/ary/loc/locp_le.hxx
new file mode 100644
index 000000000000..1d6f201cdf6b
--- /dev/null
+++ b/autodoc/inc/ary/loc/locp_le.hxx
@@ -0,0 +1,91 @@
+/* -*- 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 ARY_LOCP_LE_HXX
+#define ARY_LOCP_LE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <cosv/ploc.hxx>
+#include <ary/loc/loc_types4loc.hxx>
+
+
+namespace ary
+{
+namespace loc
+{
+ class Root;
+ class Directory;
+ class File;
+}
+}
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+
+/** Provides access to files and directories stored in the
+ repository.
+*/
+class LocationPilot
+{
+ public:
+ virtual ~LocationPilot() {}
+
+ virtual Root & CheckIn_Root(
+ const csv::ploc::Path &
+ i_rPath ) = 0;
+ virtual File & CheckIn_File(
+ const String & i_name,
+ const csv::ploc::DirectoryChain &
+ i_subPath,
+ Le_id i_root ) = 0;
+
+ virtual Root & Find_Root(
+ Le_id i_id ) const = 0;
+ virtual Directory & Find_Directory(
+ Le_id i_id ) const = 0;
+ virtual File & Find_File(
+ Le_id i_id ) const = 0;
+};
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/namesort.hxx b/autodoc/inc/ary/namesort.hxx
new file mode 100644
index 000000000000..a44eb256d439
--- /dev/null
+++ b/autodoc/inc/ary/namesort.hxx
@@ -0,0 +1,78 @@
+/* -*- 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 ARY_NAMESORT_HXX
+#define ARY_NAMESORT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+
+/** Provides sensible sorting of ASCII names in programming languages.
+
+ @descr
+ Names are compared case insensitive first. Only after they appear
+ equal that way, there is an additional case sensitive comparison.
+ The second comparison sorts upper case before lower case.
+
+*/
+struct LesserName
+{
+ bool operator()(
+ const String & i_s1,
+ const String & i_s2 ) const;
+ private:
+ // DATA
+
+ static const csv::CharOrder_Table
+ aOrdering1_;
+ static const csv::CharOrder_Table
+ aOrdering2_;
+};
+
+inline bool
+LesserName::operator()( const String & i_s1,
+ const String & i_s2 ) const
+{
+ int result = i_s1.compare(aOrdering1_,i_s2);
+ if (result == 0)
+ result = i_s1.compare(aOrdering2_,i_s2);
+ return result < 0;
+}
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/object.hxx b/autodoc/inc/ary/object.hxx
new file mode 100644
index 000000000000..272c4354dca8
--- /dev/null
+++ b/autodoc/inc/ary/object.hxx
@@ -0,0 +1,73 @@
+/* -*- 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 ARY_OBJECT_HXX
+#define ARY_OBJECT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/types.hxx>
+
+
+namespace ary
+{
+
+
+/** Interface for every class, that is stored within the
+ Autodoc Repository.
+*/
+class Object : public csv::ConstProcessorClient
+{
+ public:
+ virtual ~Object() {}
+
+ /// @return Type id of most derived class.
+ ClassId AryClass() const;
+
+ private:
+ virtual ClassId get_AryClass() const = 0;
+};
+
+
+
+inline ClassId
+Object::AryClass() const
+{
+ return get_AryClass();
+}
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/qualiname.hxx b/autodoc/inc/ary/qualiname.hxx
new file mode 100644
index 000000000000..eb669433a99f
--- /dev/null
+++ b/autodoc/inc/ary/qualiname.hxx
@@ -0,0 +1,106 @@
+/* -*- 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 ARY_QUALINAME_HXX
+#define ARY_QUALINAME_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <cosv/tpl/tpltools.hxx>
+
+
+namespace ary
+{
+
+class QualifiedName
+{
+ public:
+ typedef StringVector::const_iterator namespace_iterator;
+
+ QualifiedName(
+ uintt i_nSize = 0);
+
+ /// @see AssignText()
+ QualifiedName(
+ const char * i_sText,
+ const char * i_sSeparator );
+ ~QualifiedName();
+
+ QualifiedName & operator+=(
+ const String & i_sNamespaceName )
+ { if (i_sNamespaceName.length() > 0)
+ aNamespace.push_back(i_sNamespaceName);
+ return *this; }
+ /// @precond i_nIndex < NamespaceDepth().
+ String & operator[](
+ uintt i_nIndex )
+ { csv_assert(i_nIndex < aNamespace.size());
+ return aNamespace[i_nIndex]; }
+ void Init(
+ bool i_bAbsolute )
+ { Empty(); bIsAbsolute = i_bAbsolute; }
+ /** Reads a qualified name from a string.
+ If the last two charcters are "()", the inquiry IsFunction() will return
+ true.
+ */
+ void AssignText(
+ const char * i_sText,
+ const char * i_sSeparator );
+ void SetLocalName(
+ const String & i_sLocalName )
+ { sLocalName = i_sLocalName; }
+ void Empty() { csv::erase_container(aNamespace); sLocalName.clear(); bIsAbsolute = false; }
+
+ const String & LocalName() const { return sLocalName; }
+ namespace_iterator first_namespace() const { return aNamespace.begin(); }
+ namespace_iterator end_namespace() const { return aNamespace.end(); }
+ uintt NamespaceDepth() const { return aNamespace.size(); }
+
+ bool IsAbsolute() const { return bIsAbsolute; }
+ bool IsQualified() const { return aNamespace.size() > 0; }
+ bool IsFunction() const { return bIsFunction; }
+
+ private:
+ // DATA
+ StringVector aNamespace;
+ String sLocalName;
+ bool bIsAbsolute; /// true := beginning with "::".
+ bool bIsFunction; /// true := ending with "()"
+};
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/sequentialids.hxx b/autodoc/inc/ary/sequentialids.hxx
new file mode 100644
index 000000000000..828ad1f310e1
--- /dev/null
+++ b/autodoc/inc/ary/sequentialids.hxx
@@ -0,0 +1,156 @@
+/* -*- 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 ARY_SEQUENTIALIDS_HXX
+#define ARY_SEQUENTIALIDS_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <algorithm>
+
+
+
+namespace ary
+{
+
+
+/** Implementation of a set of children to an entity in the Autodoc
+ repository. The children are in the sequence of addition.
+*/
+template<class ID>
+class SequentialIds
+{
+ public:
+ typedef std::vector<ID> data_t;
+ typedef typename data_t::const_iterator const_iterator;
+
+ // LIFECYCLE
+ explicit SequentialIds(
+ std::size_t i_reserve = 0 );
+ ~SequentialIds();
+
+ // OPERATIONS
+ void Add(
+ const ID & i_child );
+ // INQUIRY
+ const_iterator Begin() const;
+ const_iterator End() const;
+ std::size_t Size() const;
+
+ template <class IDENTIFY>
+ ID Find(
+ IDENTIFY i_find ) const;
+ template <class IDENTIFY>
+ // Workaround for Solaris8 compiler: return type has to match alphabetically
+ typename std::vector<ID>::const_iterator
+ Search(
+ IDENTIFY i_find ) const;
+ private:
+ // DATA
+ data_t aData;
+};
+
+
+
+
+
+
+
+// IMPLEMENTATION
+
+template <class ID>
+SequentialIds<ID>::SequentialIds(std::size_t i_reserve)
+ : aData()
+{
+ if (i_reserve > 0)
+ aData.reserve(i_reserve);
+}
+
+template <class ID>
+SequentialIds<ID>::~SequentialIds()
+{
+}
+
+template <class ID>
+inline void
+SequentialIds<ID>::Add(const ID & i_child)
+{
+ aData.push_back(i_child);
+}
+
+template <class ID>
+inline typename SequentialIds<ID>::const_iterator
+SequentialIds<ID>::Begin() const
+{
+ return aData.begin();
+}
+
+template <class ID>
+inline typename SequentialIds<ID>::const_iterator
+SequentialIds<ID>::End() const
+{
+ return aData.end();
+}
+
+template <class ID>
+inline std::size_t
+SequentialIds<ID>::Size() const
+{
+ return aData.size();
+}
+
+template <class ID>
+template <class IDENTIFY>
+ID
+SequentialIds<ID>::Find(IDENTIFY i_find) const
+{
+ const_iterator
+ ret = std::find_if(aData.begin(), aData.end(), i_find);
+ csv_assert(ret != aData.end());
+ return *ret;
+}
+
+template <class ID>
+template <class IDENTIFY>
+// Workaround for Solaris8 compiler: return type has to match alphabetically
+// typename SequentialIds<ID>::const_iterator
+typename std::vector<ID>::const_iterator
+SequentialIds<ID>::Search(IDENTIFY i_find) const
+{
+ return std::find_if(aData.begin(), aData.end(), i_find);
+}
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/stdconstiter.hxx b/autodoc/inc/ary/stdconstiter.hxx
new file mode 100644
index 000000000000..40408bab8f42
--- /dev/null
+++ b/autodoc/inc/ary/stdconstiter.hxx
@@ -0,0 +1,101 @@
+/* -*- 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 ARY_STDCONSTITER_HXX
+#define ARY_STDCONSTITER_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+
+template <class ELEM>
+
+class StdConstIterator
+{
+ public:
+ virtual ~StdConstIterator() {}
+
+ void operator++() { do_Advance(); }
+ const ELEM & operator*() const { return *inq_CurElement(); }
+ operator bool() const { return inq_CurElement() != 0; }
+
+ /// Needed as replacement for operator bool() in gcc 2.95.
+ bool IsValid() const { return operator bool(); }
+ bool IsSorted() const { return inq_IsSorted(); }
+
+ protected:
+ StdConstIterator() {}
+
+ private:
+ //Locals
+ virtual void do_Advance() = 0;
+ virtual const ELEM *
+ inq_CurElement() const = 0;
+ virtual bool inq_IsSorted() const = 0;
+
+ // Forbidden:
+ StdConstIterator(const StdConstIterator<ELEM>&);
+ StdConstIterator<ELEM> & operator=(const StdConstIterator<ELEM>&);
+};
+
+
+template <class ELEM>
+class Dyn_StdConstIterator
+{
+ public:
+ typedef StdConstIterator<ELEM> client_type;
+
+ Dyn_StdConstIterator(
+ DYN client_type * pass_dpIterator = 0 )
+ : pClient(pass_dpIterator) {}
+ Dyn_StdConstIterator<ELEM> &
+ operator=(
+ DYN client_type * pass_dpIterator )
+ { pClient = pass_dpIterator;
+ return *this; }
+ client_type & operator*() const { return *pClient.MutablePtr(); }
+
+ private:
+ Dyn<client_type> pClient;
+};
+
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/symtreenode.hxx b/autodoc/inc/ary/symtreenode.hxx
new file mode 100644
index 000000000000..6eccef6c81ca
--- /dev/null
+++ b/autodoc/inc/ary/symtreenode.hxx
@@ -0,0 +1,347 @@
+/* -*- 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 ARY_SYMTREE_NODE_HXX
+#define ARY_SYMTREE_NODE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+
+
+
+namespace ary
+{
+namespace symtree
+{
+
+
+
+/** Represents a node in a tree of symbols like a namespace tree or a
+ directory tree.
+
+ @tpl NODE_TRAITS
+ Needs to define the types:
+ entity_base_type: The type of the entities in that storage,
+ e.g. ->ary::cpp::CodeEntity.
+ id_type: The type of the ids of those entities,
+ e.g. ->ary::cpp::Ce_id.
+
+ Needs to define the functions:
+ 1. static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+ 2. static symtree::Node<LeNode_Traits> *
+ NodeOf_(
+ const entity_base_type &
+ i_entity );
+ 3. static const String &
+ LocalNameOf_(
+ const entity_base_type &
+ i_entity );
+ 4. static entity_base_type *
+ ParentOf_(
+ const entity_base_type &
+ i_entity );
+ 5. template <class KEY>
+ static id_t Search_(
+ const entity_base_type &
+ i_entity,
+ const KEY & i_localKey );
+*/
+template <class NODE_TRAITS>
+class Node
+{
+ public:
+ typedef Node<NODE_TRAITS> node_self;
+ typedef typename NODE_TRAITS::entity_base_type entity_t;
+ typedef typename NODE_TRAITS::id_type id_t;
+
+
+ // LIFECYCLE
+ /// @attention Always needs to be followed by ->Assign_Entity()!
+ Node();
+ explicit Node(
+ entity_t & i_entity );
+ void Assign_Entity(
+ entity_t & i_entity );
+ ~Node();
+ // INQUIRY
+ id_t Id();
+ const String Name() const;
+ int Depth() const;
+ const entity_t & Entity() const;
+ const node_self * Parent() const;
+
+ /** Gets a child with a specific name and of a specific type.
+
+ There may be more childs with the same name.
+
+ @return id_t(0), if no matching child is found.
+ */
+ template <class KEY>
+ typename NODE_TRAITS::id_type
+ Search(
+ const KEY & i_localKey ) const
+ {
+ // Inline here to workaround SUNW8 compiler bug, works in SUNW12.
+ return NODE_TRAITS::Search_(Entity(), i_localKey);
+ }
+
+
+ /** Gets a child with a specific qualified name below this node.
+
+ The child may not exists.
+ */
+ template <class KEY>
+ void SearchBelow(
+ id_t & o_return, // Workaround SUNW8 compiler bug
+ StringVector::const_iterator
+ i_qualifiedSearchedName_begin,
+ StringVector::const_iterator
+ i_qualifiedSearchedName_end,
+ const KEY & i_localKey ) const;
+
+ /** Gets a child with a specific qualified name, either below this node
+ or below any of the parent nodes.
+
+ The child may not exists.
+ */
+ template <class KEY>
+ void SearchUp(
+ id_t & o_return, // Workaround SUNW8 compiler bug
+ StringVector::const_iterator
+ i_qualifiedSearchedName_begin,
+ StringVector::const_iterator
+ i_qualifiedSearchedName_end,
+ const KEY & i_localKey ) const;
+ // ACCESS
+ entity_t & Entity();
+ node_self * Parent();
+
+ private:
+ // Forbid copying:
+ Node(const node_self&);
+ node_self& operator=(const node_self&);
+
+ // Locals
+ void InitDepth();
+ node_self * Get_Parent() const;
+ node_self * NodeOf(
+ id_t i_id ) const;
+
+ // DATA
+ entity_t * pEntity;
+ int nDepth;
+};
+
+
+
+
+// IMPLEMENTATION
+
+template <class NODE_TRAITS>
+inline const typename Node<NODE_TRAITS>::entity_t &
+Node<NODE_TRAITS>::Entity() const
+{
+ csv_assert(pEntity != 0);
+ return *pEntity;
+}
+
+template <class NODE_TRAITS>
+inline Node<NODE_TRAITS> *
+Node<NODE_TRAITS>::NodeOf(id_t i_id) const
+{
+ if (i_id.IsValid())
+ return NODE_TRAITS::NodeOf_(NODE_TRAITS::EntityOf_(i_id));
+ return 0;
+}
+
+template <class NODE_TRAITS>
+inline Node<NODE_TRAITS> *
+Node<NODE_TRAITS>::Get_Parent() const
+{
+ entity_t *
+ parent = NODE_TRAITS::ParentOf_(Entity());
+ if (parent != 0)
+ return NODE_TRAITS::NodeOf_(*parent);
+ return 0;
+}
+
+template <class NODE_TRAITS>
+Node<NODE_TRAITS>::Node()
+ : pEntity(0),
+ nDepth(0)
+{
+}
+
+template <class NODE_TRAITS>
+Node<NODE_TRAITS>::Node(entity_t & i_entity)
+ : pEntity(&i_entity),
+ nDepth(0)
+{
+ InitDepth();
+}
+
+template <class NODE_TRAITS>
+void
+Node<NODE_TRAITS>::Assign_Entity(entity_t & i_entity)
+{
+ pEntity = &i_entity;
+ InitDepth();
+}
+
+template <class NODE_TRAITS>
+Node<NODE_TRAITS>::~Node()
+{
+}
+
+template <class NODE_TRAITS>
+inline typename Node<NODE_TRAITS>::id_t
+Node<NODE_TRAITS>::Id()
+{
+ return NODE_TRAITS::IdOf(Entity());
+}
+
+template <class NODE_TRAITS>
+inline const String
+Node<NODE_TRAITS>::Name() const
+{
+ return NODE_TRAITS::LocalNameOf_(Entity());
+}
+
+template <class NODE_TRAITS>
+inline int
+Node<NODE_TRAITS>::Depth() const
+{
+ return nDepth;
+}
+
+template <class NODE_TRAITS>
+inline const Node<NODE_TRAITS> *
+Node<NODE_TRAITS>::Parent() const
+{
+ return Get_Parent();
+}
+
+template <class NODE_TRAITS>
+template <class KEY>
+void
+Node<NODE_TRAITS>::SearchBelow(
+ id_t & o_return, // Workaround SUNW8 compiler bug
+ StringVector::const_iterator i_qualifiedSearchedName_begin,
+ StringVector::const_iterator i_qualifiedSearchedName_end,
+ const KEY & i_localKey ) const
+{
+ if (i_qualifiedSearchedName_begin != i_qualifiedSearchedName_end)
+ {
+ id_t
+ next = Search(*i_qualifiedSearchedName_begin);
+ if (next.IsValid())
+ {
+ const node_self *
+ subnode = NodeOf(next);
+ if (subnode != 0)
+ {
+ subnode->SearchBelow( o_return,
+ i_qualifiedSearchedName_begin+1,
+ i_qualifiedSearchedName_end ,
+ i_localKey );
+ return;
+ }
+ }
+ o_return = id_t(0);
+ return;
+ }
+
+ o_return = Search(i_localKey);
+}
+
+template <class NODE_TRAITS>
+template <class KEY>
+void
+Node<NODE_TRAITS>::SearchUp(
+ id_t & o_return, // Workaround SUNW8 compiler bug
+ StringVector::const_iterator i_qualifiedSearchedName_begin,
+ StringVector::const_iterator i_qualifiedSearchedName_end,
+ const KEY & i_localKey ) const
+{
+ SearchBelow( o_return,
+ i_qualifiedSearchedName_begin,
+ i_qualifiedSearchedName_end,
+ i_localKey );
+ if (o_return.IsValid())
+ return;
+
+ node_self *
+ parent = Get_Parent();
+ if (parent != 0)
+ {
+ parent->SearchUp( o_return,
+ i_qualifiedSearchedName_begin,
+ i_qualifiedSearchedName_end,
+ i_localKey );
+ }
+}
+
+template <class NODE_TRAITS>
+typename Node<NODE_TRAITS>::entity_t &
+Node<NODE_TRAITS>::Entity()
+{
+ csv_assert(pEntity != 0);
+ return *pEntity;
+}
+
+template <class NODE_TRAITS>
+inline Node<NODE_TRAITS> *
+Node<NODE_TRAITS>::Parent()
+{
+ return Get_Parent();
+}
+
+template <class NODE_TRAITS>
+void
+Node<NODE_TRAITS>::InitDepth()
+{
+ Node<NODE_TRAITS> *
+ pp = Get_Parent();
+ if (pp != 0)
+ nDepth = pp->Depth() + 1;
+ else
+ nDepth = 0;
+}
+
+
+
+
+} // namespace symtree
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/types.hxx b/autodoc/inc/ary/types.hxx
new file mode 100644
index 000000000000..aec5198976cc
--- /dev/null
+++ b/autodoc/inc/ary/types.hxx
@@ -0,0 +1,133 @@
+/* -*- 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 ARY_TYPES_HXX
+#define ARY_TYPES_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+
+
+namespace ary
+{
+
+
+typedef uintt Rid;
+typedef uintt ClassId;
+
+
+
+// Deprecated:
+typedef Rid Gid; /// Group Id. Id of a group.
+typedef UINT8 SlotAccessId; /// Access to a Slot
+typedef std::set< Rid, std::less< Rid > > Set_Rid;
+typedef std::vector<Rid> List_Rid;
+
+
+
+
+
+/** This is a global id, providing as well an entity's class as its
+ id.
+*/
+class GlobalId
+{
+ public:
+ GlobalId()
+ : nClass(0),
+ nId(0) {}
+ GlobalId(
+ ClassId i_class,
+ Rid i_id )
+ : nClass(i_class),
+ nId(i_id) {}
+ ~GlobalId() {}
+
+ bool IsValid() const { return nClass != 0
+ AND
+ nId != 0; }
+ ClassId Class() const { return nClass; }
+ Rid Id() const { return nId; }
+
+ private:
+ // DATA
+ ClassId nClass;
+ Rid nId;
+};
+
+
+typedef std::vector<GlobalId> List_GlobalIds;
+
+
+/** This is a typed repository id. It allows to get
+ an object of a specific type.
+*/
+template <class IFC>
+class TypedId
+{
+ public:
+ typedef TypedId<IFC> self;
+
+
+ explicit TypedId(
+ Rid i_nId = 0 )
+ : nId(i_nId) {}
+ TypedId<IFC> & operator=(
+ Rid i_nId )
+ { nId = i_nId; return *this; }
+ bool operator==(
+ const TypedId<IFC> &
+ i_nId ) const
+ { return nId == i_nId.nId; }
+ bool operator!=(
+ const TypedId<IFC> &
+ i_nId ) const
+ { return NOT operator==(i_nId); }
+ bool operator<(
+ const TypedId<IFC> &
+ i_nId ) const
+ { return nId < i_nId.nId; }
+
+ bool IsValid() const { return nId != 0; }
+ Rid Value() const { return nId; }
+
+ static self Null_() { return self(0); }
+
+ private:
+ // DATA
+ Rid nId;
+};
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary/udmhost.hxx b/autodoc/inc/ary/udmhost.hxx
new file mode 100644
index 000000000000..13d8c2377d82
--- /dev/null
+++ b/autodoc/inc/ary/udmhost.hxx
@@ -0,0 +1,65 @@
+/* -*- 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 ARY_UDMHOST_HXX
+#define ARY_UDMHOST_HXX
+// KORR_DEPRECATED_3.0
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/host.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+
+
+
+class UdmHost : public Host
+{
+ public:
+ enum E_ClassId { class_id = 1000 };
+
+ UdmHost();
+ virtual ~UdmHost();
+
+ private:
+ virtual Host_ClassId
+ inq_ClassId() const;
+};
+
+
+
+
+} // namespace ary
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary_i/ci_atag2.hxx b/autodoc/inc/ary_i/ci_atag2.hxx
new file mode 100644
index 000000000000..ec02190002c0
--- /dev/null
+++ b/autodoc/inc/ary_i/ci_atag2.hxx
@@ -0,0 +1,81 @@
+/* -*- 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 ARY_CI_ATAG2_HXX
+#define ARY_CI_ATAG2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <ary_i/ci_text2.hxx>
+ // PARAMETERS
+
+
+
+namespace ary
+{
+namespace inf
+{
+
+
+class DocumentationDisplay;
+
+class AtTag2
+{
+ public:
+ virtual ~AtTag2() {}
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const = 0;
+
+ const char * Title() const { return sTitle; }
+ const DocuTex2 & Text() const { return aText; }
+ DocuTex2 & Access_Text() { return aText; }
+
+ protected:
+ AtTag2(
+ const char * i_sTitle)
+ : sTitle(i_sTitle) {}
+ String sTitle;
+ DocuTex2 aText;
+};
+
+
+
+// IMPLEMENTATION
+
+} // namespace inf
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary_i/ci_text2.hxx b/autodoc/inc/ary_i/ci_text2.hxx
new file mode 100644
index 000000000000..8e1c202a5636
--- /dev/null
+++ b/autodoc/inc/ary_i/ci_text2.hxx
@@ -0,0 +1,94 @@
+/* -*- 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 ARY_CINFO_CI_TEXT2_HXX
+#define ARY_CINFO_CI_TEXT2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace inf
+{
+
+
+class DocumentationDisplay;
+
+
+class DocuToken
+{
+ public:
+ virtual ~DocuToken() {}
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const = 0;
+ virtual bool IsWhiteOnly() const = 0;
+};
+
+
+class DocuTex2
+{
+ public:
+ typedef std::vector< DocuToken * > TokenList;
+
+ DocuTex2();
+ virtual ~DocuTex2();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ void AddToken(
+ DYN DocuToken & let_drToken );
+
+ const TokenList & Tokens() const { return aTokens; }
+ bool IsEmpty() const;
+ const String & TextOfFirstToken() const;
+
+ String & Access_TextOfFirstToken();
+
+ private:
+ TokenList aTokens;
+};
+
+
+
+// IMPLEMENTATION
+
+} // namespace inf
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary_i/d_token.hxx b/autodoc/inc/ary_i/d_token.hxx
new file mode 100644
index 000000000000..7fed7d16104f
--- /dev/null
+++ b/autodoc/inc/ary_i/d_token.hxx
@@ -0,0 +1,284 @@
+/* -*- 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 CSI_DSAPI_D_TOKEN_HXX
+#define CSI_DSAPI_D_TOKEN_HXX
+
+// BASE CLASSES
+#include <ary_i/ci_text2.hxx>
+#include <ary_i/ci_atag2.hxx>
+
+
+namespace ary
+{
+namespace inf
+{
+ class DocumentationDisplay;
+}
+}
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+using ary::inf::DocumentationDisplay;
+
+
+class DT_Dsapi : public ary::inf::DocuToken
+{
+ public:
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const = 0;
+ virtual bool IsWhiteOnly() const;
+};
+
+
+
+class DT_TextToken : public DT_Dsapi
+{
+ public:
+ explicit DT_TextToken(
+ const char * i_sText )
+ : sText(i_sText) {}
+ explicit DT_TextToken(
+ const String & i_sText )
+ : sText(i_sText) {}
+ virtual ~DT_TextToken();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const char * GetText() const { return sText; }
+ const String & GetTextStr() const { return sText; }
+
+ String & Access_Text() { return sText; }
+
+ virtual bool IsWhiteOnly() const;
+
+ private:
+ String sText;
+};
+
+class DT_White : public DT_Dsapi
+{
+ public:
+ DT_White() {}
+ virtual ~DT_White();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ virtual bool IsWhiteOnly() const;
+};
+
+
+class DT_MLTag : public DT_Dsapi
+{
+ public:
+ enum E_Kind
+ {
+ k_unknown = 0,
+ k_begin,
+ k_end,
+ k_single
+ };
+};
+
+class DT_MupType : public DT_MLTag
+{
+ public:
+ explicit DT_MupType( /// Constructor for End-Tag
+ bool ) /// Must be there, but is not evaluated.
+ : bIsBegin(false) {}
+ explicit DT_MupType( /// Constructor for Begin-Tag
+ const String & i_sScope )
+ : sScope(i_sScope), bIsBegin(true) {}
+ virtual ~DT_MupType();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const String & Scope() const { return sScope; }
+ bool IsBegin() const { return bIsBegin; }
+
+ private:
+ String sScope;
+ bool bIsBegin;
+};
+
+class DT_MupMember : public DT_MLTag
+{
+ public:
+ explicit DT_MupMember( /// Constructor for End-Tag
+ bool ) /// Must be there, but is not evaluated.
+ : bIsBegin(false) {}
+ DT_MupMember( /// Constructor for Begin-Tag
+ const String & i_sScope )
+ : sScope(i_sScope), bIsBegin(true) {}
+ virtual ~DT_MupMember();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const String & Scope() const { return sScope; }
+ bool IsBegin() const { return bIsBegin; }
+
+ private:
+ String sScope;
+ bool bIsBegin;
+};
+
+class DT_MupConst : public DT_Dsapi
+{
+ public:
+ DT_MupConst(
+ const char * i_sConstText )
+ : sConstText(i_sConstText) {}
+ virtual ~DT_MupConst();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const char * GetText() const { return sConstText; }
+
+ private:
+ String sConstText; /// Without HTML.
+};
+
+
+class DT_Style : public DT_MLTag
+{
+ public:
+ DT_Style(
+ const char * i_sPlainHtmlTag,
+ bool i_bNewLine )
+ : sText(i_sPlainHtmlTag), bNewLine(i_bNewLine) {}
+ virtual ~DT_Style();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const char * GetText() const { return sText; }
+ bool IsStartOfNewLine() const
+ { return bNewLine; }
+ private:
+ String sText; /// With HTML.
+ E_Kind eKind;
+ bool bNewLine;
+};
+
+class DT_EOL : public DT_Dsapi
+{
+ public:
+ DT_EOL() {}
+ virtual ~DT_EOL();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ virtual bool IsWhiteOnly() const;
+};
+
+
+class DT_AtTag : public ary::inf::AtTag2
+{
+ public:
+ void AddToken(
+ DYN ary::inf::DocuToken &
+ let_drToken )
+ { aText.AddToken(let_drToken); }
+ void SetName(
+ const char * i_sName )
+ { sTitle = i_sName; }
+
+ protected:
+ DT_AtTag(
+ const char * i_sTitle )
+ : ary::inf::AtTag2(i_sTitle) {}
+};
+
+class DT_StdAtTag : public DT_AtTag
+{
+ public:
+ explicit DT_StdAtTag(
+ const char * i_sTitle )
+ : DT_AtTag(i_sTitle) {}
+ virtual ~DT_StdAtTag();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+};
+
+class DT_SeeAlsoAtTag : public DT_AtTag
+{
+ public:
+ DT_SeeAlsoAtTag() : DT_AtTag("") {}
+ virtual ~DT_SeeAlsoAtTag();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const String & LinkText() const { return sTitle; } // Missbrauch von sTitle
+};
+
+class DT_ParameterAtTag : public DT_AtTag
+{
+ public:
+ DT_ParameterAtTag() : DT_AtTag("") {}
+ virtual ~DT_ParameterAtTag();
+
+ void SetTitle(
+ const char * i_sTitle );
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+};
+
+class DT_SinceAtTag : public DT_AtTag
+{
+ public:
+ DT_SinceAtTag() : DT_AtTag("Since version") {}
+ virtual ~DT_SinceAtTag();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+};
+
+
+} // namespace dsapi
+} // namespace csi
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/ary_i/disdocum.hxx b/autodoc/inc/ary_i/disdocum.hxx
new file mode 100644
index 000000000000..fac8d1aa8cb0
--- /dev/null
+++ b/autodoc/inc/ary_i/disdocum.hxx
@@ -0,0 +1,148 @@
+/* -*- 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 ARY_DISDOCUM_HXX
+#define ARY_DISDOCUM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace dsapi
+{
+class DT_TextToken;
+class DT_MupType;
+class DT_MupMember;
+class DT_MupConst;
+class DT_Style;
+class DT_EOL;
+class DT_StdAtTag;
+class DT_SeeAlsoAtTag;
+class DT_ParameterAtTag;
+class DT_SinceAtTag;
+} // namespace dsapi
+} // namespace csi
+
+
+namespace ary
+{
+namespace inf
+{
+
+
+
+class DocumentationDisplay
+{
+ public:
+
+ virtual ~DocumentationDisplay() { }
+
+ virtual void Display_TextToken(
+ const csi::dsapi::DT_TextToken &
+ i_rToken ) = 0;
+ virtual void Display_White() = 0;
+ virtual void Display_MupType(
+ const csi::dsapi::DT_MupType & i_rToken ) = 0;
+ virtual void Display_MupMember(
+ const csi::dsapi::DT_MupMember &
+ i_rToken ) = 0;
+ virtual void Display_MupConst(
+ const csi::dsapi::DT_MupConst &
+ i_rToken ) = 0;
+ virtual void Display_Style(
+ const csi::dsapi::DT_Style & i_rToken ) = 0;
+ virtual void Display_EOL() = 0;
+ virtual void Display_StdAtTag(
+ const csi::dsapi::DT_StdAtTag &
+ i_rToken ) = 0;
+ virtual void Display_SeeAlsoAtTag(
+ const csi::dsapi::DT_SeeAlsoAtTag &
+ i_rToken ) = 0;
+ virtual void Display_ParameterAtTag(
+ const csi::dsapi::DT_ParameterAtTag &
+ i_rToken ) = 0;
+ virtual void Display_SinceAtTag(
+ const csi::dsapi::DT_SinceAtTag &
+ i_rToken ) = 0;
+};
+
+
+class DocuTag_Display : public DocumentationDisplay
+{
+ public:
+ // Dummies, implemented in source\ary_i\kernel\ci_atag2.cxx
+ virtual void Display_TextToken(
+ const csi::dsapi::DT_TextToken &
+ i_rToken );
+ virtual void Display_White();
+ virtual void Display_MupType(
+ const csi::dsapi::DT_MupType & i_rToken );
+ virtual void Display_MupMember(
+ const csi::dsapi::DT_MupMember &
+ i_rToken );
+ virtual void Display_MupConst(
+ const csi::dsapi::DT_MupConst &
+ i_rToken );
+ virtual void Display_Style(
+ const csi::dsapi::DT_Style & i_rToken );
+ virtual void Display_EOL();
+};
+
+class DocuText_Display : public DocumentationDisplay
+{
+ public:
+ // Dummies, implemented in source\ary_i\kernel\ci_text2.cxx
+ virtual void Display_StdAtTag(
+ const csi::dsapi::DT_StdAtTag &
+ i_rToken );
+ virtual void Display_SeeAlsoAtTag(
+ const csi::dsapi::DT_SeeAlsoAtTag &
+ i_rToken );
+ virtual void Display_ParameterAtTag(
+ const csi::dsapi::DT_ParameterAtTag &
+ i_rToken );
+ virtual void Display_SinceAtTag(
+ const csi::dsapi::DT_SinceAtTag &
+ i_rToken );
+};
+
+
+
+} // namespace inf
+} // namespace ary
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/autodoc/displaying.hxx b/autodoc/inc/autodoc/displaying.hxx
new file mode 100644
index 000000000000..96bd66c0ad71
--- /dev/null
+++ b/autodoc/inc/autodoc/displaying.hxx
@@ -0,0 +1,78 @@
+/* -*- 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 AUTODOC_DISPLAYING_HXX
+#define AUTODOC_DISPLAYING_HXX
+
+
+namespace display
+{
+ class CorporateFrame;
+}
+
+
+
+namespace autodoc
+{
+
+class HtmlDisplay_UdkStd;
+class HtmlDisplay_Idl_Ifc;
+
+// class TextDisplay_FunctionList_Ifc;
+
+
+/** Interface for parsing code of a programming language and
+ delivering the information into an Autodoc Repository.
+**/
+class DisplayToolsFactory_Ifc
+{
+ public:
+ virtual ~DisplayToolsFactory_Ifc() {}
+ static DisplayToolsFactory_Ifc &
+ GetIt_();
+
+// virtual DYN autodoc::TextDisplay_FunctionList_Ifc *
+// Create_TextDisplay_FunctionList() const = 0;
+
+ virtual DYN autodoc::HtmlDisplay_UdkStd *
+ Create_HtmlDisplay_UdkStd() const = 0;
+ virtual DYN autodoc::HtmlDisplay_Idl_Ifc *
+ Create_HtmlDisplay_Idl() const = 0;
+
+ virtual const display::CorporateFrame &
+ Create_StdFrame() const = 0;
+};
+
+
+} // namespace autodoc
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/autodoc/dsp_html_std.hxx b/autodoc/inc/autodoc/dsp_html_std.hxx
new file mode 100644
index 000000000000..78d75efe7e23
--- /dev/null
+++ b/autodoc/inc/autodoc/dsp_html_std.hxx
@@ -0,0 +1,216 @@
+/* -*- 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 AUTODOC_DSP_HTML_STD_HXX
+#define AUTODOC_DSP_HTML_STD_HXX
+
+
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Gate;
+ }
+ namespace idl
+ {
+ class Gate;
+ }
+}
+
+namespace display
+{
+ class CorporateFrame;
+}
+
+
+namespace autodoc
+{
+
+
+class HtmlDisplay_UdkStd
+{
+ public:
+ virtual ~HtmlDisplay_UdkStd() {}
+
+ /** Displays the names of several C++ code entities within the
+ given namespace (or the global namespace as default). All
+ subnamespaces are included.
+
+ Output has following format:
+
+ =========================================================================
+ OutputDirectory
+ index.html
+ def-all.html
+ prj\
+ sal\
+ index.html // Overview about project
+
+ f-FileName[1,2,...] // Overview about file
+ f-OtherFileName[1,2,...]
+ ...
+ def-FileName[1,2,...] // #defines and macros in file
+ def-OtherFileName[1,2,...]
+ ...
+ rtl\
+ ...
+ cppu\
+ ...
+ cppuhelper\
+ ...
+ ...
+ ix\
+ ix-a.html
+ ix-b.html
+ ...
+ ix-z.html
+ ix-_.html
+ ix-other.html
+
+ cpp\
+ index.html // Overview about global namespace
+
+ Namespace_A\
+ Namespace_C\
+ index.html // Overview about namespace C
+ ...
+ ...
+
+ index.html // Overview about namespace A
+
+ c-ClassName_X.html // Description of class
+ ...
+ e-EnumName.html // Description of enum
+ ...
+ t-TypedefName.html // Description of typedef
+ ...
+ o-Filename.html // Descriptions of operations in this file in this namespace
+ ...
+ d-Filename.html // Descriptions of data in this file in this namespace
+ ...
+
+ ClassName_X\
+ c-ClassName_Y.html
+ e-EnumName.html
+ t-TypedefName.html
+ o.html // Descriptions of operations in class X
+ d.html // Descriptions of data in class X
+
+ ClassName_Y\
+ ...
+ ...
+
+ idl\
+ ...
+ java\
+ ...
+ =========================================================================
+
+
+ @param i_sOutputDirectory
+ Directory for output. Path must be given in correct
+ syntax for the actual operating system without final
+ path delimiter. If this is 0 or "", the current
+ working directory is chosen.
+ @param i_rAryGate
+ The access to the Autodoc Repository.
+ @param i_rLayout
+ Gives parameters for the appearance of the HTML output.
+ @param i_pProjectList
+ If this is != 0, then only code entities which are declared
+ in this projects are displayed.
+ */
+ void Run(
+ const char * i_sOutputDirectory,
+ const ary::cpp::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ private:
+ virtual void do_Run(
+ const char * i_sOutputDirectory,
+ const ary::cpp::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout ) = 0;
+};
+
+// IMPLEMENTATION
+
+inline void
+HtmlDisplay_UdkStd::Run( const char * i_sOutputDirectory,
+ const ary::cpp::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout );
+}
+
+
+
+// class HtmlDisplay_Idl_Ifc
+
+class HtmlDisplay_Idl_Ifc
+{
+ public:
+ virtual ~HtmlDisplay_Idl_Ifc() {}
+
+ void Run(
+ const char * i_sOutputDirectory,
+ const ary::idl::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ private:
+ virtual void do_Run(
+ const char * i_sOutputDirectory,
+ const ary::idl::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout ) = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+HtmlDisplay_Idl_Ifc::Run( const char * i_sOutputDirectory,
+ const ary::idl::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout );
+}
+
+
+
+
+} // namespace autodoc
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/autodoc/dsp_txt_flist.hxx b/autodoc/inc/autodoc/dsp_txt_flist.hxx
new file mode 100644
index 000000000000..1b655bd939aa
--- /dev/null
+++ b/autodoc/inc/autodoc/dsp_txt_flist.hxx
@@ -0,0 +1,67 @@
+/* -*- 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 AUTODOC_DSP_TXT_FLIST_HXX
+#define AUTODOC_DSP_TXT_FLIST_HXX
+
+#include <iostream>
+
+
+namespace ary
+{
+ namespace cpp
+ {
+ class DisplayGate;
+ }
+}
+
+
+namespace autodoc
+{
+
+class TextDisplay_FunctionList_Ifc
+{
+ public:
+ virtual ~TextDisplay_FunctionList_Ifc() {}
+
+ /** Displays the names of all C++ functions and methods within the
+ given namespace (or the global namespace as default). All
+ subnamespaces are included.
+ */
+ virtual void Run(
+ ostream & o_rStream,
+ const ary::cpp::DisplayGate &
+ i_rAryGate ) = 0; /// If i_pNamespace == 0, the global namespace is displayed.
+};
+
+
+} // namespace autodoc
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/autodoc/filecoli.hxx b/autodoc/inc/autodoc/filecoli.hxx
new file mode 100644
index 000000000000..f23d8fc060e2
--- /dev/null
+++ b/autodoc/inc/autodoc/filecoli.hxx
@@ -0,0 +1,74 @@
+/* -*- 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 ADC_PARSER_FILECOLI_HXX
+#define ADC_PARSER_FILECOLI_HXX
+
+
+namespace autodoc
+{
+
+class FileCollector_Ifc
+{
+ public:
+ // TYPES
+ typedef StringVector::const_iterator const_iterator;
+
+ enum E_SearchMode
+ {
+ flat,
+ recursive
+ };
+
+ // LIFECYCLE
+ virtual ~FileCollector_Ifc() {}
+
+ // OPERATIONS
+ virtual uintt AddFilesFrom(
+ const char * i_sRootDir,
+ const char * i_sFilter,
+ E_SearchMode i_eSearchMode ) = 0;
+ virtual uintt AddFile(
+ const char * i_sFilePath ) = 0;
+ virtual void EraseAll() = 0;
+
+ // INQUIRY
+ virtual const_iterator
+ Begin() const = 0;
+ virtual const_iterator
+ End() const = 0;
+ virtual uintt Size() const = 0;
+};
+
+
+} // namespace autodoc
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/autodoc/parsing.hxx b/autodoc/inc/autodoc/parsing.hxx
new file mode 100644
index 000000000000..d0073af86731
--- /dev/null
+++ b/autodoc/inc/autodoc/parsing.hxx
@@ -0,0 +1,80 @@
+/* -*- 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 AUTODOC_PARSING_HXX
+#define AUTODOC_PARSING_HXX
+
+
+
+namespace autodoc
+{
+
+class CodeParser_Ifc;
+class DocumentationParser_Ifc;
+class FileCollector_Ifc;
+
+
+/** Interface for parsing code of a programming language and
+ delivering the information into an Autodoc Repository.
+**/
+class ParseToolsFactory_Ifc
+{
+ public:
+ virtual ~ParseToolsFactory_Ifc() {}
+ static ParseToolsFactory_Ifc &
+ GetIt_();
+
+ virtual DYN autodoc::CodeParser_Ifc *
+ Create_Parser_Cplusplus() const = 0;
+
+// virtual DYN autodoc::CodeParser_Ifc *
+// CreateParser_UnoIDL() const = 0;
+// virtual DYN autodoc::CodeParser_Ifc *
+// CreateParser_Java() const = 0;
+// virtual DYN autodoc::CodeParser_Ifc *
+// CreateParser_StoredProcedures() const = 0;
+
+ virtual DYN autodoc::DocumentationParser_Ifc *
+ Create_DocuParser_AutodocStyle() const = 0;
+
+// virtual DYN autodoc::DocumentationParser_Ifc *
+// CreateDocuParser_StarOfficeAPIStyle() const = 0;
+
+ virtual DYN autodoc::FileCollector_Ifc *
+ Create_FileCollector(
+ uintt i_nEstimatedNrOfFiles ) const = 0; /// Should be somewhat larger than the maximal estimated number of files.
+};
+
+
+} // namespace autodoc
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/autodoc/prs_code.hxx b/autodoc/inc/autodoc/prs_code.hxx
new file mode 100644
index 000000000000..982fa91c6f79
--- /dev/null
+++ b/autodoc/inc/autodoc/prs_code.hxx
@@ -0,0 +1,79 @@
+/* -*- 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 AUTODOC_PRS_CODE_HXX
+#define AUTODOC_PRS_CODE_HXX
+
+
+
+namespace csv
+{
+ namespace ploc
+ {
+ class Path;
+ }
+}
+
+namespace ary
+{
+ class Repository;
+}
+
+namespace autodoc
+{
+ class FileCollector_Ifc;
+ class DocumentationParser_Ifc;
+
+
+
+
+/** Interface for parsing code of a programming language and
+ delivering the information into an Autodoc Repository.
+**/
+class CodeParser_Ifc
+{
+ public:
+ virtual ~CodeParser_Ifc() {}
+
+ virtual void Setup(
+ ary::Repository & o_rRepository,
+ const autodoc::DocumentationParser_Ifc &
+ i_rDocumentationInterpreter ) = 0;
+
+ virtual void Run(
+ const autodoc::FileCollector_Ifc &
+ i_rFiles ) = 0;
+};
+
+
+
+
+} // namespace autodoc
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/autodoc/prs_docu.hxx b/autodoc/inc/autodoc/prs_docu.hxx
new file mode 100644
index 000000000000..93608b51b541
--- /dev/null
+++ b/autodoc/inc/autodoc/prs_docu.hxx
@@ -0,0 +1,61 @@
+/* -*- 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 ADC_PARSER_PRS_DOCU_HXX
+#define ADC_PARSER_PRS_DOCU_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+namespace autodoc
+{
+
+class TkpDocuContext;
+
+class DocumentationParser_Ifc
+{
+ public:
+ virtual ~DocumentationParser_Ifc() {}
+
+ virtual DYN TkpDocuContext *
+ Create_DocuContext() const = 0;
+};
+
+
+} // namespace autodoc
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/autodoc/x_parsing.hxx b/autodoc/inc/autodoc/x_parsing.hxx
new file mode 100644
index 000000000000..f33615576821
--- /dev/null
+++ b/autodoc/inc/autodoc/x_parsing.hxx
@@ -0,0 +1,76 @@
+/* -*- 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 AUTODOC_X_PARSING_HXX
+#define AUTODOC_X_PARSING_HXX
+
+// USED SERVICES
+#include <iostream>
+
+
+
+
+namespace autodoc
+{
+
+class X_Parser_Ifc
+{
+ public:
+ // TYPES
+ enum E_Event
+ {
+ x_Any = 0,
+ x_InvalidChar,
+ x_UnexpectedToken,
+ x_UnexpectedEOF,
+ x_UnspecifiedSyntaxError
+ };
+
+ // LIFECYCLE
+ virtual ~X_Parser_Ifc() {}
+
+ // INQUIRY
+ virtual E_Event GetEvent() const = 0;
+ virtual void GetInfo(
+ std::ostream & o_rOutputMedium ) const = 0;
+};
+
+
+} // namespace autodoc
+
+std::ostream & operator<<(
+ std::ostream & o_rOut,
+ const autodoc::X_Parser_Ifc &
+ i_rException );
+
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/display/corframe.hxx b/autodoc/inc/display/corframe.hxx
new file mode 100644
index 000000000000..cacc41caa249
--- /dev/null
+++ b/autodoc/inc/display/corframe.hxx
@@ -0,0 +1,84 @@
+/* -*- 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 ADC_CORFRAME_HXX
+#define ADC_CORFRAME_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+class Html_Image;
+
+
+namespace display
+{
+
+
+class CorporateFrame
+{
+ public:
+ // LIFECYCLE
+ virtual ~CorporateFrame() {}
+
+ // INQUIRY
+ virtual DYN Html_Image *
+ LogoSrc() const = 0;
+ virtual const char *
+ LogoLink() const = 0;
+ virtual const char *
+ CopyrightText() const = 0;
+
+ virtual const char *
+ CssStyle() const = 0;
+ virtual const char *
+ CssStylesExplanation() const = 0;
+ virtual const char *
+ DevelopersGuideHtmlRoot() const = 0;
+ virtual bool SimpleLinks() const = 0;
+
+ // ACCESS
+ virtual void Set_DevelopersGuideHtmlRoot(
+ const String & i_directory ) = 0;
+ virtual void Set_SimpleLinks() = 0;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace display
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/parser/parser.hxx b/autodoc/inc/parser/parser.hxx
new file mode 100644
index 000000000000..e06898211b90
--- /dev/null
+++ b/autodoc/inc/parser/parser.hxx
@@ -0,0 +1,59 @@
+/* -*- 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 ADC_PARSER_HXX
+#define ADC_PARSER_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace autodoc
+{
+ class FileCollector_Ifc;
+}
+
+
+class CodeParser
+{
+ public:
+ virtual ~CodeParser() {}
+
+ virtual void Run(
+ const autodoc::FileCollector_Ifc &
+ i_rFiles ) = 0;
+};
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/parser/parserinfo.hxx b/autodoc/inc/parser/parserinfo.hxx
new file mode 100644
index 000000000000..db524145c8cd
--- /dev/null
+++ b/autodoc/inc/parser/parserinfo.hxx
@@ -0,0 +1,67 @@
+/* -*- 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 ADC_PARSERINFO_HXX
+#define ADC_PARSERINFO_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+/** Interface about current state of parsing.
+*/
+class ParserInfo
+{
+ public:
+ // OPERATIONS
+ void Set_CurFile(
+ const String & i_file,
+ bool i_bUseLines = false)
+ { sCurFile = i_file;
+ nCurLine = i_bUseLines ? 1 : 0; }
+ void Increment_CurLine()
+ { ++nCurLine; }
+
+ // INQUIRY
+ const String & CurFile() const { return sCurFile; }
+ uintt CurLine() const { return nCurLine; }
+
+ protected:
+ // LIFECYCLE
+ ParserInfo() : sCurFile(), nCurLine(0) {}
+ ~ParserInfo() {}
+ private:
+ String sCurFile;
+ uintt nCurLine;
+
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/inc/parser/unoidl.hxx b/autodoc/inc/parser/unoidl.hxx
new file mode 100644
index 000000000000..f83809054f64
--- /dev/null
+++ b/autodoc/inc/parser/unoidl.hxx
@@ -0,0 +1,81 @@
+/* -*- 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 ADC_UNOIDL_HXX
+#define ADC_UNOIDL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <parser/parser.hxx>
+#include <parser/parserinfo.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+ class Repository;
+}
+namespace autodoc
+{
+ class FileCollector_Ifc;
+}
+
+namespace autodoc
+{
+
+
+class IdlParser : public ::CodeParser,
+ public ::ParserInfo
+{
+ public:
+ IdlParser(
+ ary::Repository & io_rRepository );
+
+ virtual void Run(
+ const autodoc::FileCollector_Ifc &
+ i_rFiles );
+
+ private:
+ // DATA
+ ary::Repository * pRepository;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace autodoc
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */