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
This commit is contained in:
parent
bcfa69f2d1
commit
5fc908339a
1 changed files with 138 additions and 0 deletions
138
autodoc/inc/ary/types.hxx
Normal file
138
autodoc/inc/ary/types.hxx
Normal file
|
@ -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<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
|
Loading…
Reference in a new issue