1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-06-30 12:14:08 +03:00
occt/src/TCollection/TCollection_DoubleMap.cdl
bugmaster b311480ed5 0023024: Update headers of OCCT files
Added appropriate copyright and license information in source files
2012-03-21 19:43:04 +04:00

217 lines
7.9 KiB
Plaintext
Executable File

-- Created on: 1993-01-08
-- Created by: Remi LEQUETTE
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2012 OPEN CASCADE SAS
--
-- The content of this file is subject to the Open CASCADE Technology Public
-- License Version 6.5 (the "License"). You may not use the content of this file
-- except in compliance with the License. Please obtain a copy of the License
-- at http://www.opencascade.org and read it completely before using this file.
--
-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
--
-- The Original Code and all software distributed under the License is
-- distributed on an "AS IS" basis, without warranty of any kind, and the
-- Initial Developer hereby disclaims all such warranties, including without
-- limitation, any warranties of merchantability, fitness for a particular
-- purpose or non-infringement. Please see the License for the specific terms
-- and conditions governing the rights and limitations under the License.
generic class DoubleMap from TCollection (TheKey1 as any;
TheKey2 as any;
Hasher1 as any; -- as MapHasher(TheKey1)
Hasher2 as any) -- as MapHasher(TheKey2)
inherits BasicMap from TCollection
---Purpose:
-- A map used to bind pairs of keys (Key1,Key2) and
-- retrieve them in linear time. Key1 is referenced as the
-- first key of the DoubleMap and Key2 as the second key.
-- An entry of a DoubleMap is composed of a pair of two
-- keys: the first key and the second key.
-- DoubleMap is a generic class which depends on four parameters:
-- - Key1 is the type of the first key for an entry in the map,
-- - Key2 is the type of the second key for an entry in the map,
-- - Hasher1 is the type of hasher on first keys,
-- - Hasher2 is the type of hasher on second keys.
-- Use a DoubleMapIterator to explore a DoubleMap map.
-- Notes:
-- - An iterator class is automatically instantiated from the
-- TCollection_DoubleMapIterator class at the time of
-- instantiation of a DoubleMap map.
-- - TCollection_MapHasher class describes the
-- functions required for a Hasher1 or a Hasher2 object.
raises
DomainError from Standard,
MultiplyDefined from Standard,
NoSuchObject from Standard
class DoubleMapNode from TCollection
inherits MapNode from TCollection
uses MapNodePtr from TCollection
is
Create(K1 : TheKey1; K2 : TheKey2; n1,n2 : MapNodePtr from TCollection) returns DoubleMapNode from TCollection;
---C++: inline
Key1(me) returns TheKey1;
---C++: return &
---C++: inline
Key2(me) returns TheKey2;
---C++: return &
---C++: inline
Next2(me) returns MapNodePtr from TCollection;
---C++: return &
---C++: inline
fields
myKey1 : TheKey1;
myKey2 : TheKey2;
myNext2 : MapNodePtr from TCollection;
end;
class DoubleMapIterator inherits BasicMapIterator from TCollection
---Purpose: Functions used for iterating the contents of a DoubleMap map.
-- Note: an iterator class is automatically instantiated from
-- this generic class at the time of instantiation of a DoubleMap map.
-- Warning
-- - A map is a non-ordered data structure. The order in
-- which entries of a map are explored by the iterator
-- depends on its contents, and changes when the map is edited.
-- - It is not recommended to modify the contents of a map
-- during iteration: the result is unpredictable.
raises NoSuchObject from Standard
is
Create returns DoubleMapIterator from TCollection;
---Purpose: Creates an undefined Iterator (empty) use the
--- function Initialize to define the map to explore.
Create (aMap : DoubleMap from TCollection)
returns DoubleMapIterator from TCollection;
---Purpose: Creates an Iterator on the map <aMap>.
Initialize(me : in out; aMap : DoubleMap from TCollection)
---Level: Public
---Purpose: Sets or resets the Iterator in the map <aMap>.
is static;
Key1(me) returns any TheKey1
---Purpose: Returns the first key, of the current
-- entry in the map for this iterator.
-- Note: Key1 and Key2 are the types of the first and second
-- keys for an entry in the explored DoubleMap map.
-- Exceptions
-- Standard_NoSuchObject if this iterator is empty (i.e.
-- when the function More returns false).
---C++: return const &
raises
NoSuchObject from Standard
is static;
Key2(me) returns any TheKey2
---Purpose: Returns the second key, of the current
-- entry in the map for this iterator.
-- Note: Key1 and Key2 are the types of the first and second
-- keys for an entry in the explored DoubleMap map.
-- Exceptions
-- Standard_NoSuchObject if this iterator is empty (i.e.
-- when the function More returns false).
---C++: return const &
raises
NoSuchObject from Standard
is static;
end DoubleMapIterator from TCollection;
is
Create(NbBuckets : Integer = 1) returns DoubleMap from TCollection;
---Purpose: Creates a DoubleMap with <NbBuckets> buckets. Without
-- arguments the map is automatically dimensioned.
Create(Other : DoubleMap from TCollection)
returns DoubleMap from TCollection
---Purpose: As copying Map is an expensive operation it is
-- incorrect to do it implicitly. This constructor is private and
-- will raise an error if the Map is not empty. To copy the
-- content of a Map use the Assign method (operator =).
raises DomainError from Standard
is private;
Assign(me : in out; Other : DoubleMap from TCollection)
returns DoubleMap from TCollection
---Purpose: Copies the contents of the map Other into this map.
-- Note that this method is an alias of operator =.
---C++: alias operator =
---C++: return &
is static;
ReSize(me : in out; NbBuckets : Integer)
---Purpose: Changes the number of buckets of this map to N.
-- The entries (Key1 + Key2) already stored in this map are maintained.
is static;
Clear(me : in out)
---Level: Public
---Purpose: Removes all keys from the map.
---C++: alias ~
is static;
Bind(me : in out; K1 : TheKey1; K2 : TheKey2)
---Level: Public
---Purpose: Adds the pair <K1>,<K2> to the map.
-- Trigger: An exception is raised if K1 or K2 are already bound.
raises MultiplyDefined from Standard
is static;
AreBound(me; K1 : TheKey1; K2 : TheKey2) returns Boolean
---Level: Public
---Purpose: Returns True if <K1> and <K2> are bound to each other in the map <me>.
is static;
IsBound1(me; K : TheKey1) returns Boolean
---Level: Public
---Purpose: Returns True if the TheKey <K> is bound in the map <me>.
is static;
IsBound2(me; K : TheKey2) returns Boolean
---Level: Public
---Purpose: Returns True if the key <K> is bound in the map <me>.
is static;
Find1(me; K : TheKey1) returns any TheKey2
---Level: Public
---Purpose: Returns the Key2 bound to <K> in the map.
---C++: return const &
raises NoSuchObject
is static;
Find2(me; K : TheKey2) returns any TheKey1
---Level: Public
---Purpose: Returns the Key1 bound to <K> in the map.
---C++: return const &
raises NoSuchObject
is static;
UnBind1(me : in out; K : TheKey1) returns Boolean
---Level: Public
---Purpose: Unbind the Key <K> from the map. Returns True if
-- the Key was bound in the Map.
is static;
UnBind2(me : in out; K : TheKey2) returns Boolean
---Level: Public
---Purpose: Unbind the Key <K> from the map. Returns True if
-- the Key was bound in the Map.
is static;
end DoubleMap;