summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2007-11-02 13:59:21 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2007-11-02 13:59:21 +0000
commitb3e4b4a999d50db5284eb3c5f9fe3d850ce41e2d (patch)
treefe7e63d824c7c0f06324549444d7aba17917a803
parent5472dec8e00f7a580d78f0df8182a94cef8a0889 (diff)
INTEGRATION: CWS adc18 (1.1.2); FILE ADDED
2007/10/18 14:54:32 np 1.1.2.1: #i81775#
-rw-r--r--autodoc/inc/ary/doc/d_node.hxx117
1 files changed, 117 insertions, 0 deletions
diff --git a/autodoc/inc/ary/doc/d_node.hxx b/autodoc/inc/ary/doc/d_node.hxx
new file mode 100644
index 000000000000..39084ec4378c
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_node.hxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: d_node.hxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: hr $ $Date: 2007-11-02 14:59:21 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+#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