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 if key was in Scoped, else false.
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;