Scoped.xcc
Benoit Dupont de Dinechin (Benoit.Dupont-de-Dinechin@st.com)
Copyright 2007 STMicroelectronics. Copyright 1995 - 1998 Commissariat a l'Energie Atomique.
This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.
ScopedEntry -- Object inlined below ScopedEntry.
struct ScopedEntry_ { //@args void *symbol, int32_t scope void *SYMBOL; int32_t SCOPE; };
Scoped_empty— Empty this Scoped.
void Scoped_empty(Scoped this, ScopedValueRelease release);
Scoped_memory— This Scoped memory.
static inline Memory Scoped_memory(const_Scoped this) { return Scoped_MEMORY(this); }
Scoped_idlist— For use in Scoped_FOREACH.
static inline const_IDList Scoped_idlist(const_Scoped this) { return Scoped_IDLIST(this); }
Scoped_count— Count entries in the Scoped.
- Return
- The count of entries in the Scoped.
static inline int32_t Scoped_count(const_Scoped this) { return Scoped_COUNT(this); }
Scoped_search— Search the symbol associated to key
.
- Return
- The corresponding ScopedEntry if
key
is in Scoped, else NULL.
void * Scoped_search(const_Scoped this, ScopedKey key, int32_t *_scope);
Scoped_lookup— Lookup the symbol at key
, insert if not already there.
void * Scoped_lookup(Scoped this, ScopedKey key, size_t symbolSize, int32_t scope);
Scoped_insert— Insert the symbol at key
if not already there.
void * Scoped_insert(Scoped this, ScopedKey key, size_t symbolSize, int32_t scope);
Scoped_install— Insert a symbol even if another has same key but not same scope.
void * Scoped_install(Scoped this, ScopedKey key, size_t symbolSize, int32_t scope);
Scoped_remove— Remove key
and the corresponding symbol.
- Return
true
ifkey
was in Scoped, elsefalse
.
bool Scoped_remove(Scoped this, ScopedKey key, int32_t scope);
Scoped_purgeScope— Purge symbols of higher scopes.
void Scoped_purgeScope(Scoped this);
Scoped_FOREACH— Iterates from first to last Scoped entry.
#define Scoped_FOREACH(this, Type, iter) \ IDList_FOREACH(Scoped_idlist(this), Type, iter) #define Scoped_ENDEACH \ IDList_ENDEACH;
Scoped_FORBACK— Iterates from last to first Scoped entry.
#define Scoped_FORBACK(this, Type, iter) \ IDList_FORBACK(Scoped_idlist(this), Type, iter) #define Scoped_ENDBACK \ IDList_ENDBACK;