Update ooo320-m1
[ooovba.git] / autodoc / inc / ary / types.hxx
blob97a79f112acde33bace3a3a593118ca060323f5c
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: types.hxx,v $
10 * $Revision: 1.3 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef ARY_TYPES_HXX
32 #define ARY_TYPES_HXX
34 // USED SERVICES
35 // BASE CLASSES
36 // OTHER
39 namespace ary
43 typedef uintt Rid;
44 typedef uintt ClassId;
48 // Deprecated:
49 typedef Rid Gid; /// Group Id. Id of a group.
50 typedef UINT8 SlotAccessId; /// Access to a Slot
51 typedef std::set< Rid, std::less< Rid > > Set_Rid;
52 typedef std::vector<Rid> List_Rid;
58 /** This is a global id, providing as well an entity's class as its
59 id.
61 class GlobalId
63 public:
64 GlobalId()
65 : nClass(0),
66 nId(0) {}
67 GlobalId(
68 ClassId i_class,
69 Rid i_id )
70 : nClass(i_class),
71 nId(i_id) {}
72 ~GlobalId() {}
74 bool IsValid() const { return nClass != 0
75 AND
76 nId != 0; }
77 ClassId Class() const { return nClass; }
78 Rid Id() const { return nId; }
80 private:
81 // DATA
82 ClassId nClass;
83 Rid nId;
87 typedef std::vector<GlobalId> List_GlobalIds;
90 /** This is a typed repository id. It allows to get
91 an object of a specific type.
93 template <class IFC>
94 class TypedId
96 public:
97 typedef TypedId<IFC> self;
100 explicit TypedId(
101 Rid i_nId = 0 )
102 : nId(i_nId) {}
103 TypedId<IFC> & operator=(
104 Rid i_nId )
105 { nId = i_nId; return *this; }
106 bool operator==(
107 const TypedId<IFC> &
108 i_nId ) const
109 { return nId == i_nId.nId; }
110 bool operator!=(
111 const TypedId<IFC> &
112 i_nId ) const
113 { return NOT operator==(i_nId); }
114 bool operator<(
115 const TypedId<IFC> &
116 i_nId ) const
117 { return nId < i_nId.nId; }
119 bool IsValid() const { return nId != 0; }
120 Rid Value() const { return nId; }
122 static self Null_() { return self(0); }
124 private:
125 // DATA
126 Rid nId;
132 } // namespace ary
133 #endif