diff options
Diffstat (limited to 'autodoc/inc/ary')
112 files changed, 12716 insertions, 0 deletions
diff --git a/autodoc/inc/ary/actions.hxx b/autodoc/inc/ary/actions.hxx new file mode 100644 index 000000000000..8468c1a820ec --- /dev/null +++ b/autodoc/inc/ary/actions.hxx @@ -0,0 +1,103 @@ +/************************************************************************* + * + * 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 + + + diff --git a/autodoc/inc/ary/ary.hxx b/autodoc/inc/ary/ary.hxx new file mode 100644 index 000000000000..9b1afeebba3f --- /dev/null +++ b/autodoc/inc/ary/ary.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/ary_disp.hxx b/autodoc/inc/ary/ary_disp.hxx new file mode 100644 index 000000000000..5e8194d6d049 --- /dev/null +++ b/autodoc/inc/ary/ary_disp.hxx @@ -0,0 +1,111 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/arygroup.hxx b/autodoc/inc/ary/arygroup.hxx new file mode 100644 index 000000000000..68de399f99c5 --- /dev/null +++ b/autodoc/inc/ary/arygroup.hxx @@ -0,0 +1,107 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/ceslot.hxx b/autodoc/inc/ary/ceslot.hxx new file mode 100644 index 000000000000..f113d26d7372 --- /dev/null +++ b/autodoc/inc/ary/ceslot.hxx @@ -0,0 +1,103 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cessentl.hxx b/autodoc/inc/ary/cessentl.hxx new file mode 100644 index 000000000000..bd724b9c8fe6 --- /dev/null +++ b/autodoc/inc/ary/cessentl.hxx @@ -0,0 +1,88 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_builtintype.hxx b/autodoc/inc/ary/cpp/c_builtintype.hxx new file mode 100644 index 000000000000..1bb6bec86b9c --- /dev/null +++ b/autodoc/inc/ary/cpp/c_builtintype.hxx @@ -0,0 +1,97 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_ce.hxx b/autodoc/inc/ary/cpp/c_ce.hxx new file mode 100644 index 000000000000..5bec606630fa --- /dev/null +++ b/autodoc/inc/ary/cpp/c_ce.hxx @@ -0,0 +1,103 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_class.hxx b/autodoc/inc/ary/cpp/c_class.hxx new file mode 100644 index 000000000000..60a81e81be3c --- /dev/null +++ b/autodoc/inc/ary/cpp/c_class.hxx @@ -0,0 +1,245 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_cppentity.hxx b/autodoc/inc/ary/cpp/c_cppentity.hxx new file mode 100644 index 000000000000..e487f77102c7 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_cppentity.hxx @@ -0,0 +1,91 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_de.hxx b/autodoc/inc/ary/cpp/c_de.hxx new file mode 100644 index 000000000000..46c565b07c15 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_de.hxx @@ -0,0 +1,104 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_define.hxx b/autodoc/inc/ary/cpp/c_define.hxx new file mode 100644 index 000000000000..2ad480090c81 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_define.hxx @@ -0,0 +1,82 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_enum.hxx b/autodoc/inc/ary/cpp/c_enum.hxx new file mode 100644 index 000000000000..19e04f61a7f8 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_enum.hxx @@ -0,0 +1,116 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_enuval.hxx b/autodoc/inc/ary/cpp/c_enuval.hxx new file mode 100644 index 000000000000..f2710689a497 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_enuval.hxx @@ -0,0 +1,96 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_funct.hxx b/autodoc/inc/ary/cpp/c_funct.hxx new file mode 100644 index 000000000000..94c4a06cad2b --- /dev/null +++ b/autodoc/inc/ary/cpp/c_funct.hxx @@ -0,0 +1,149 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_gate.hxx b/autodoc/inc/ary/cpp/c_gate.hxx new file mode 100644 index 000000000000..ea9d09078397 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_gate.hxx @@ -0,0 +1,121 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_macro.hxx b/autodoc/inc/ary/cpp/c_macro.hxx new file mode 100644 index 000000000000..35fe6c17c623 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_macro.hxx @@ -0,0 +1,84 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_namesp.hxx b/autodoc/inc/ary/cpp/c_namesp.hxx new file mode 100644 index 000000000000..2cb0f6878169 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_namesp.hxx @@ -0,0 +1,194 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_osigna.hxx b/autodoc/inc/ary/cpp/c_osigna.hxx new file mode 100644 index 000000000000..60596e327191 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_osigna.hxx @@ -0,0 +1,122 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_slntry.hxx b/autodoc/inc/ary/cpp/c_slntry.hxx new file mode 100644 index 000000000000..0c6ef0d9c74a --- /dev/null +++ b/autodoc/inc/ary/cpp/c_slntry.hxx @@ -0,0 +1,110 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_traits.hxx b/autodoc/inc/ary/cpp/c_traits.hxx new file mode 100644 index 000000000000..70db38ce0400 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_traits.hxx @@ -0,0 +1,216 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_tydef.hxx b/autodoc/inc/ary/cpp/c_tydef.hxx new file mode 100644 index 000000000000..398b140215d2 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_tydef.hxx @@ -0,0 +1,100 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_type.hxx b/autodoc/inc/ary/cpp/c_type.hxx new file mode 100644 index 000000000000..b404c890ec54 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_type.hxx @@ -0,0 +1,133 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_types4cpp.hxx b/autodoc/inc/ary/cpp/c_types4cpp.hxx new file mode 100644 index 000000000000..230578054051 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_types4cpp.hxx @@ -0,0 +1,134 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_vari.hxx b/autodoc/inc/ary/cpp/c_vari.hxx new file mode 100644 index 000000000000..42f3e76a5e83 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_vari.hxx @@ -0,0 +1,114 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/c_vfflag.hxx b/autodoc/inc/ary/cpp/c_vfflag.hxx new file mode 100644 index 000000000000..f9e3532e0f2b --- /dev/null +++ b/autodoc/inc/ary/cpp/c_vfflag.hxx @@ -0,0 +1,151 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/cp_ce.hxx b/autodoc/inc/ary/cpp/cp_ce.hxx new file mode 100644 index 000000000000..93b56536dbbb --- /dev/null +++ b/autodoc/inc/ary/cpp/cp_ce.hxx @@ -0,0 +1,173 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/cp_def.hxx b/autodoc/inc/ary/cpp/cp_def.hxx new file mode 100644 index 000000000000..5f58634b4716 --- /dev/null +++ b/autodoc/inc/ary/cpp/cp_def.hxx @@ -0,0 +1,99 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/cp_type.hxx b/autodoc/inc/ary/cpp/cp_type.hxx new file mode 100644 index 000000000000..c8ebd6450f59 --- /dev/null +++ b/autodoc/inc/ary/cpp/cp_type.hxx @@ -0,0 +1,96 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/inpcontx.hxx b/autodoc/inc/ary/cpp/inpcontx.hxx new file mode 100644 index 000000000000..69d0d3f41337 --- /dev/null +++ b/autodoc/inc/ary/cpp/inpcontx.hxx @@ -0,0 +1,216 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/namechain.hxx b/autodoc/inc/ary/cpp/namechain.hxx new file mode 100644 index 000000000000..094abd755981 --- /dev/null +++ b/autodoc/inc/ary/cpp/namechain.hxx @@ -0,0 +1,140 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/cpp/usedtype.hxx b/autodoc/inc/ary/cpp/usedtype.hxx new file mode 100644 index 000000000000..594be2a948a4 --- /dev/null +++ b/autodoc/inc/ary/cpp/usedtype.hxx @@ -0,0 +1,212 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/doc/d_boolean.hxx b/autodoc/inc/ary/doc/d_boolean.hxx new file mode 100644 index 000000000000..58dd45008919 --- /dev/null +++ b/autodoc/inc/ary/doc/d_boolean.hxx @@ -0,0 +1,96 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/doc/d_docu.hxx b/autodoc/inc/ary/doc/d_docu.hxx new file mode 100644 index 000000000000..ad9c895a2a6e --- /dev/null +++ b/autodoc/inc/ary/doc/d_docu.hxx @@ -0,0 +1,106 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/doc/d_node.hxx b/autodoc/inc/ary/doc/d_node.hxx new file mode 100644 index 000000000000..e5b29d7b5a7f --- /dev/null +++ b/autodoc/inc/ary/doc/d_node.hxx @@ -0,0 +1,109 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/doc/d_oldcppdocu.hxx b/autodoc/inc/ary/doc/d_oldcppdocu.hxx new file mode 100644 index 000000000000..79bc4ab33aaf --- /dev/null +++ b/autodoc/inc/ary/doc/d_oldcppdocu.hxx @@ -0,0 +1,130 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/doc/d_oldidldocu.hxx b/autodoc/inc/ary/doc/d_oldidldocu.hxx new file mode 100644 index 000000000000..6c4d2bdc2cc7 --- /dev/null +++ b/autodoc/inc/ary/doc/d_oldidldocu.hxx @@ -0,0 +1,111 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/doc/d_parametrized.hxx b/autodoc/inc/ary/doc/d_parametrized.hxx new file mode 100644 index 000000000000..21f699e180d9 --- /dev/null +++ b/autodoc/inc/ary/doc/d_parametrized.hxx @@ -0,0 +1,121 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/doc/d_types4doc.hxx b/autodoc/inc/ary/doc/d_types4doc.hxx new file mode 100644 index 000000000000..754a1b414a1d --- /dev/null +++ b/autodoc/inc/ary/doc/d_types4doc.hxx @@ -0,0 +1,70 @@ +/************************************************************************* + * + * 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 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..3659654c03d4 --- /dev/null +++ b/autodoc/inc/ary/doc/ht/dht_interpreter.hxx @@ -0,0 +1,76 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/entity.hxx b/autodoc/inc/ary/entity.hxx new file mode 100644 index 000000000000..2b51fb37cb1d --- /dev/null +++ b/autodoc/inc/ary/entity.hxx @@ -0,0 +1,81 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/getncast.hxx b/autodoc/inc/ary/getncast.hxx new file mode 100644 index 000000000000..01b286fe1a0a --- /dev/null +++ b/autodoc/inc/ary/getncast.hxx @@ -0,0 +1,88 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_attribute.hxx b/autodoc/inc/ary/idl/i_attribute.hxx new file mode 100644 index 000000000000..1a14f5c6f716 --- /dev/null +++ b/autodoc/inc/ary/idl/i_attribute.hxx @@ -0,0 +1,135 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_ce.hxx b/autodoc/inc/ary/idl/i_ce.hxx new file mode 100644 index 000000000000..1c2414a22023 --- /dev/null +++ b/autodoc/inc/ary/idl/i_ce.hxx @@ -0,0 +1,135 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_ce2s.hxx b/autodoc/inc/ary/idl/i_ce2s.hxx new file mode 100644 index 000000000000..f3b3140f48c3 --- /dev/null +++ b/autodoc/inc/ary/idl/i_ce2s.hxx @@ -0,0 +1,95 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_comrela.hxx b/autodoc/inc/ary/idl/i_comrela.hxx new file mode 100644 index 000000000000..1e3a040291eb --- /dev/null +++ b/autodoc/inc/ary/idl/i_comrela.hxx @@ -0,0 +1,80 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_constant.hxx b/autodoc/inc/ary/idl/i_constant.hxx new file mode 100644 index 000000000000..f822e780f4d2 --- /dev/null +++ b/autodoc/inc/ary/idl/i_constant.hxx @@ -0,0 +1,112 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_constgroup.hxx b/autodoc/inc/ary/idl/i_constgroup.hxx new file mode 100644 index 000000000000..961daf6678ab --- /dev/null +++ b/autodoc/inc/ary/idl/i_constgroup.hxx @@ -0,0 +1,101 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_enum.hxx b/autodoc/inc/ary/idl/i_enum.hxx new file mode 100644 index 000000000000..36e1244460dd --- /dev/null +++ b/autodoc/inc/ary/idl/i_enum.hxx @@ -0,0 +1,100 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_enumvalue.hxx b/autodoc/inc/ary/idl/i_enumvalue.hxx new file mode 100644 index 000000000000..ea3d1df74c5d --- /dev/null +++ b/autodoc/inc/ary/idl/i_enumvalue.hxx @@ -0,0 +1,103 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_exception.hxx b/autodoc/inc/ary/idl/i_exception.hxx new file mode 100644 index 000000000000..bed245e884c7 --- /dev/null +++ b/autodoc/inc/ary/idl/i_exception.hxx @@ -0,0 +1,107 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_function.hxx b/autodoc/inc/ary/idl/i_function.hxx new file mode 100644 index 000000000000..45cac1ffc55a --- /dev/null +++ b/autodoc/inc/ary/idl/i_function.hxx @@ -0,0 +1,160 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_gate.hxx b/autodoc/inc/ary/idl/i_gate.hxx new file mode 100644 index 000000000000..923ee68998a3 --- /dev/null +++ b/autodoc/inc/ary/idl/i_gate.hxx @@ -0,0 +1,83 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_interface.hxx b/autodoc/inc/ary/idl/i_interface.hxx new file mode 100644 index 000000000000..4c68d1703b1b --- /dev/null +++ b/autodoc/inc/ary/idl/i_interface.hxx @@ -0,0 +1,127 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_module.hxx b/autodoc/inc/ary/idl/i_module.hxx new file mode 100644 index 000000000000..feaa520faa3a --- /dev/null +++ b/autodoc/inc/ary/idl/i_module.hxx @@ -0,0 +1,114 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_namelookup.hxx b/autodoc/inc/ary/idl/i_namelookup.hxx new file mode 100644 index 000000000000..917c36f8e9d6 --- /dev/null +++ b/autodoc/inc/ary/idl/i_namelookup.hxx @@ -0,0 +1,95 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_param.hxx b/autodoc/inc/ary/idl/i_param.hxx new file mode 100644 index 000000000000..726a1403f29a --- /dev/null +++ b/autodoc/inc/ary/idl/i_param.hxx @@ -0,0 +1,75 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_property.hxx b/autodoc/inc/ary/idl/i_property.hxx new file mode 100644 index 000000000000..b0a5739dd6ab --- /dev/null +++ b/autodoc/inc/ary/idl/i_property.hxx @@ -0,0 +1,143 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_service.hxx b/autodoc/inc/ary/idl/i_service.hxx new file mode 100644 index 000000000000..a1cdb400dcda --- /dev/null +++ b/autodoc/inc/ary/idl/i_service.hxx @@ -0,0 +1,139 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_singleton.hxx b/autodoc/inc/ary/idl/i_singleton.hxx new file mode 100644 index 000000000000..dbfca6d93087 --- /dev/null +++ b/autodoc/inc/ary/idl/i_singleton.hxx @@ -0,0 +1,105 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_siservice.hxx b/autodoc/inc/ary/idl/i_siservice.hxx new file mode 100644 index 000000000000..c38e90610a74 --- /dev/null +++ b/autodoc/inc/ary/idl/i_siservice.hxx @@ -0,0 +1,107 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_sisingleton.hxx b/autodoc/inc/ary/idl/i_sisingleton.hxx new file mode 100644 index 000000000000..6dd288c048d3 --- /dev/null +++ b/autodoc/inc/ary/idl/i_sisingleton.hxx @@ -0,0 +1,100 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_struct.hxx b/autodoc/inc/ary/idl/i_struct.hxx new file mode 100644 index 000000000000..c73eb1517f7b --- /dev/null +++ b/autodoc/inc/ary/idl/i_struct.hxx @@ -0,0 +1,130 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_structelem.hxx b/autodoc/inc/ary/idl/i_structelem.hxx new file mode 100644 index 000000000000..f7544f027f2d --- /dev/null +++ b/autodoc/inc/ary/idl/i_structelem.hxx @@ -0,0 +1,103 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_traits.hxx b/autodoc/inc/ary/idl/i_traits.hxx new file mode 100644 index 000000000000..c34704537794 --- /dev/null +++ b/autodoc/inc/ary/idl/i_traits.hxx @@ -0,0 +1,78 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_type.hxx b/autodoc/inc/ary/idl/i_type.hxx new file mode 100644 index 000000000000..75f9737f1468 --- /dev/null +++ b/autodoc/inc/ary/idl/i_type.hxx @@ -0,0 +1,142 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_typedef.hxx b/autodoc/inc/ary/idl/i_typedef.hxx new file mode 100644 index 000000000000..9d315c2f12d9 --- /dev/null +++ b/autodoc/inc/ary/idl/i_typedef.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/i_types4idl.hxx b/autodoc/inc/ary/idl/i_types4idl.hxx new file mode 100644 index 000000000000..046b47f4bb0c --- /dev/null +++ b/autodoc/inc/ary/idl/i_types4idl.hxx @@ -0,0 +1,142 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_attribute.hxx b/autodoc/inc/ary/idl/ik_attribute.hxx new file mode 100644 index 000000000000..6e8822111d1e --- /dev/null +++ b/autodoc/inc/ary/idl/ik_attribute.hxx @@ -0,0 +1,85 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_ce.hxx b/autodoc/inc/ary/idl/ik_ce.hxx new file mode 100644 index 000000000000..ffa9363a6543 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_ce.hxx @@ -0,0 +1,146 @@ +/************************************************************************* + * + * 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 + + diff --git a/autodoc/inc/ary/idl/ik_constant.hxx b/autodoc/inc/ary/idl/ik_constant.hxx new file mode 100644 index 000000000000..61b7fb7c87e0 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_constant.hxx @@ -0,0 +1,76 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/idl/ik_constgroup.hxx b/autodoc/inc/ary/idl/ik_constgroup.hxx new file mode 100644 index 000000000000..df55fda2ce03 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_constgroup.hxx @@ -0,0 +1,73 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/idl/ik_enum.hxx b/autodoc/inc/ary/idl/ik_enum.hxx new file mode 100644 index 000000000000..229d945b06f9 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_enum.hxx @@ -0,0 +1,85 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/idl/ik_enumvalue.hxx b/autodoc/inc/ary/idl/ik_enumvalue.hxx new file mode 100644 index 000000000000..4071199a9f12 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_enumvalue.hxx @@ -0,0 +1,73 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_exception.hxx b/autodoc/inc/ary/idl/ik_exception.hxx new file mode 100644 index 000000000000..6bd9eaa58109 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_exception.hxx @@ -0,0 +1,82 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/idl/ik_function.hxx b/autodoc/inc/ary/idl/ik_function.hxx new file mode 100644 index 000000000000..b52264440405 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_function.hxx @@ -0,0 +1,96 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/idl/ik_interface.hxx b/autodoc/inc/ary/idl/ik_interface.hxx new file mode 100644 index 000000000000..c6fb059fea48 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_interface.hxx @@ -0,0 +1,112 @@ +/************************************************************************* + * + * 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 ); + +#if 0 + static void Get_UsingTypedefs( /// like: typedef sequence<i_ce.LocalName()> newNameSeq; + Dyn_CeIterator & o_result, + const CodeEntity & i_ce ); + static void Get_AsIndirectReturns( + Dyn_CeIterator & o_result, + const CodeEntity & i_ce ); + static void Get_AsIndirectParameters( + Dyn_CeIterator & o_result, + const CodeEntity & i_ce ); +#endif // 0 +}; + +struct doc : public ifc_ce::doc +{ +}; + +} // namespace ifc_interface + +} // namespace idl +} // namespace ary + +#endif diff --git a/autodoc/inc/ary/idl/ik_module.hxx b/autodoc/inc/ary/idl/ik_module.hxx new file mode 100644 index 000000000000..e4b5e5b0a6b1 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_module.hxx @@ -0,0 +1,114 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_property.hxx b/autodoc/inc/ary/idl/ik_property.hxx new file mode 100644 index 000000000000..874eb91edce4 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_property.hxx @@ -0,0 +1,89 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_service.hxx b/autodoc/inc/ary/idl/ik_service.hxx new file mode 100644 index 000000000000..6a7561375a4a --- /dev/null +++ b/autodoc/inc/ary/idl/ik_service.hxx @@ -0,0 +1,88 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_singleton.hxx b/autodoc/inc/ary/idl/ik_singleton.hxx new file mode 100644 index 000000000000..e4af7af5b810 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_singleton.hxx @@ -0,0 +1,73 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_siservice.hxx b/autodoc/inc/ary/idl/ik_siservice.hxx new file mode 100644 index 000000000000..8a42f899b6a3 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_siservice.hxx @@ -0,0 +1,75 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_sisingleton.hxx b/autodoc/inc/ary/idl/ik_sisingleton.hxx new file mode 100644 index 000000000000..13ba8b810251 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_sisingleton.hxx @@ -0,0 +1,73 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_struct.hxx b/autodoc/inc/ary/idl/ik_struct.hxx new file mode 100644 index 000000000000..b5908d3a1e0c --- /dev/null +++ b/autodoc/inc/ary/idl/ik_struct.hxx @@ -0,0 +1,91 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/idl/ik_structelem.hxx b/autodoc/inc/ary/idl/ik_structelem.hxx new file mode 100644 index 000000000000..2b8f95587463 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_structelem.hxx @@ -0,0 +1,72 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ik_typedef.hxx b/autodoc/inc/ary/idl/ik_typedef.hxx new file mode 100644 index 000000000000..1d4a88d5d287 --- /dev/null +++ b/autodoc/inc/ary/idl/ik_typedef.hxx @@ -0,0 +1,83 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ip_ce.hxx b/autodoc/inc/ary/idl/ip_ce.hxx new file mode 100644 index 000000000000..d2b7773d62df --- /dev/null +++ b/autodoc/inc/ary/idl/ip_ce.hxx @@ -0,0 +1,210 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/idl/ip_type.hxx b/autodoc/inc/ary/idl/ip_type.hxx new file mode 100644 index 000000000000..7936bab40bff --- /dev/null +++ b/autodoc/inc/ary/idl/ip_type.hxx @@ -0,0 +1,83 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/info/all_dts.hxx b/autodoc/inc/ary/info/all_dts.hxx new file mode 100644 index 000000000000..58aee2a5e50d --- /dev/null +++ b/autodoc/inc/ary/info/all_dts.hxx @@ -0,0 +1,160 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/info/all_tags.hxx b/autodoc/inc/ary/info/all_tags.hxx new file mode 100644 index 000000000000..bd2de713f22c --- /dev/null +++ b/autodoc/inc/ary/info/all_tags.hxx @@ -0,0 +1,289 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/info/ci_attag.hxx b/autodoc/inc/ary/info/ci_attag.hxx new file mode 100644 index 000000000000..da487a86f7fb --- /dev/null +++ b/autodoc/inc/ary/info/ci_attag.hxx @@ -0,0 +1,101 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/info/ci_text.hxx b/autodoc/inc/ary/info/ci_text.hxx new file mode 100644 index 000000000000..c2dce2bfd11a --- /dev/null +++ b/autodoc/inc/ary/info/ci_text.hxx @@ -0,0 +1,85 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/info/docstore.hxx b/autodoc/inc/ary/info/docstore.hxx new file mode 100644 index 000000000000..421904ab94fd --- /dev/null +++ b/autodoc/inc/ary/info/docstore.hxx @@ -0,0 +1,116 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/info/infodisp.hxx b/autodoc/inc/ary/info/infodisp.hxx new file mode 100644 index 000000000000..f486a2292f8d --- /dev/null +++ b/autodoc/inc/ary/info/infodisp.hxx @@ -0,0 +1,114 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/info/inftypes.hxx b/autodoc/inc/ary/info/inftypes.hxx new file mode 100644 index 000000000000..0bf330670063 --- /dev/null +++ b/autodoc/inc/ary/info/inftypes.hxx @@ -0,0 +1,122 @@ +/************************************************************************* + * + * 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 + diff --git a/autodoc/inc/ary/itrange.hxx b/autodoc/inc/ary/itrange.hxx new file mode 100644 index 000000000000..2c8b625b0c16 --- /dev/null +++ b/autodoc/inc/ary/itrange.hxx @@ -0,0 +1,80 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/loc/loc_dir.hxx b/autodoc/inc/ary/loc/loc_dir.hxx new file mode 100644 index 000000000000..4d63d526b6df --- /dev/null +++ b/autodoc/inc/ary/loc/loc_dir.hxx @@ -0,0 +1,145 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/loc/loc_file.hxx b/autodoc/inc/ary/loc/loc_file.hxx new file mode 100644 index 000000000000..63586ad4977d --- /dev/null +++ b/autodoc/inc/ary/loc/loc_file.hxx @@ -0,0 +1,68 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/loc/loc_filebase.hxx b/autodoc/inc/ary/loc/loc_filebase.hxx new file mode 100644 index 000000000000..8cb5c98cbc85 --- /dev/null +++ b/autodoc/inc/ary/loc/loc_filebase.hxx @@ -0,0 +1,72 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/loc/loc_le.hxx b/autodoc/inc/ary/loc/loc_le.hxx new file mode 100644 index 000000000000..fdf3ad077df5 --- /dev/null +++ b/autodoc/inc/ary/loc/loc_le.hxx @@ -0,0 +1,94 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/loc/loc_root.hxx b/autodoc/inc/ary/loc/loc_root.hxx new file mode 100644 index 000000000000..5b789a8cbeaa --- /dev/null +++ b/autodoc/inc/ary/loc/loc_root.hxx @@ -0,0 +1,110 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/loc/loc_traits.hxx b/autodoc/inc/ary/loc/loc_traits.hxx new file mode 100644 index 000000000000..52cd6dd9b22b --- /dev/null +++ b/autodoc/inc/ary/loc/loc_traits.hxx @@ -0,0 +1,115 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/loc/loc_types4loc.hxx b/autodoc/inc/ary/loc/loc_types4loc.hxx new file mode 100644 index 000000000000..fd45476a7187 --- /dev/null +++ b/autodoc/inc/ary/loc/loc_types4loc.hxx @@ -0,0 +1,54 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/loc/locp_le.hxx b/autodoc/inc/ary/loc/locp_le.hxx new file mode 100644 index 000000000000..585282f233f6 --- /dev/null +++ b/autodoc/inc/ary/loc/locp_le.hxx @@ -0,0 +1,88 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/namesort.hxx b/autodoc/inc/ary/namesort.hxx new file mode 100644 index 000000000000..bb766a3773d1 --- /dev/null +++ b/autodoc/inc/ary/namesort.hxx @@ -0,0 +1,75 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/object.hxx b/autodoc/inc/ary/object.hxx new file mode 100644 index 000000000000..8212312f8ec7 --- /dev/null +++ b/autodoc/inc/ary/object.hxx @@ -0,0 +1,70 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/qualiname.hxx b/autodoc/inc/ary/qualiname.hxx new file mode 100644 index 000000000000..94a886968d10 --- /dev/null +++ b/autodoc/inc/ary/qualiname.hxx @@ -0,0 +1,103 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/sequentialids.hxx b/autodoc/inc/ary/sequentialids.hxx new file mode 100644 index 000000000000..94b6cfa4823e --- /dev/null +++ b/autodoc/inc/ary/sequentialids.hxx @@ -0,0 +1,153 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/stdconstiter.hxx b/autodoc/inc/ary/stdconstiter.hxx new file mode 100644 index 000000000000..5b05ff6279ea --- /dev/null +++ b/autodoc/inc/ary/stdconstiter.hxx @@ -0,0 +1,98 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/symtreenode.hxx b/autodoc/inc/ary/symtreenode.hxx new file mode 100644 index 000000000000..8d2f07165ee2 --- /dev/null +++ b/autodoc/inc/ary/symtreenode.hxx @@ -0,0 +1,344 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/types.hxx b/autodoc/inc/ary/types.hxx new file mode 100644 index 000000000000..0f8d28c6b151 --- /dev/null +++ b/autodoc/inc/ary/types.hxx @@ -0,0 +1,130 @@ +/************************************************************************* + * + * 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 diff --git a/autodoc/inc/ary/udmhost.hxx b/autodoc/inc/ary/udmhost.hxx new file mode 100644 index 000000000000..eca8b89c2894 --- /dev/null +++ b/autodoc/inc/ary/udmhost.hxx @@ -0,0 +1,62 @@ +/************************************************************************* + * + * 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 |