From 5fc908339a3ba31270986b3fecc831c563fecc7a Mon Sep 17 00:00:00 2001
From: Jens-Heiner Rechtien
Date: Fri, 2 Nov 2007 13:44:10 +0000
Subject: [PATCH] INTEGRATION: CWS adc18 (1.1.4); FILE ADDED 2007/10/18
14:49:15 np 1.1.4.2: #i81775# 2005/03/10 13:42:25 np 1.1.4.1: file types.hxx
was added on branch cws_src680_adc18 on 2007-10-18 14:49:15 +0000
---
autodoc/inc/ary/types.hxx | 138 ++++++++++++++++++++++++++++++++++++++
1 file changed, 138 insertions(+)
create mode 100644 autodoc/inc/ary/types.hxx
diff --git a/autodoc/inc/ary/types.hxx b/autodoc/inc/ary/types.hxx
new file mode 100644
index 000000000000..0ecbe8ff0ec5
--- /dev/null
+++ b/autodoc/inc/ary/types.hxx
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: types.hxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: hr $ $Date: 2007-11-02 14:44:10 $
+ *
+ * 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_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 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 List_GlobalIds;
+
+
+/** This is a typed repository id. It allows to get
+ an object of a specific type.
+*/
+template
+class TypedId
+{
+ public:
+ typedef TypedId self;
+
+
+ explicit TypedId(
+ Rid i_nId = 0 )
+ : nId(i_nId) {}
+ TypedId & operator=(
+ Rid i_nId )
+ { nId = i_nId; return *this; }
+ bool operator==(
+ const TypedId &
+ i_nId ) const
+ { return nId == i_nId.nId; }
+ bool operator!=(
+ const TypedId &
+ i_nId ) const
+ { return NOT operator==(i_nId); }
+ bool operator<(
+ const TypedId &
+ 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