ec_config_header

March 26, 2020 Contributors

The members of this struct are as follows:

/**
 * This structure represents scope instances in the configuration, such as
 * bindings, modules and listeners. You must not modify anything in this
 * structure yourself; always call the appropriate API.
 */
struct _ec_config_header {
  /** refcount */
  ec_atomic_t refcnt;

  /* Generation */
  ec_atomic_t generation;

  /** the name of this instance */
  char *name;

  /** @deprecated always NULL */
  char *comment;
  /** @deprecated always NULL */
  ECDict attributes;
  /** @deprecated always 0 */
  int suppress_write_config;

  /** the scope this is an instance of */
  struct ec_config_scope *myscope;

  /** @deprecated always NULL */
  struct _ec_config_header *parent;
  /** @deprecated always NULL */
  void **cfgslots;
  /** @deprecated always NULL */
  void **dataslots;
  /** @deprecated always NULL */
  ECDict comments;

  /** child scope instances */
  ec_hash_table *children;
  /** information for finding matching child scopes; may be NULL */
  ec_hash_table *match_scopes;

  /** true if this instance was used via legacy APIs and so can't be freed */
  int leaked;
  /** the ancestry of this instance */
  char *ancestry;
  /** pointer to the root of the transaction */
  struct _ec_config_header *transaction;
  /** option values by option slot */
  ec_ptr_array *options;
  /* references to the syntax tree nodes we came from */
  ec_ptr_array *nodes;
  /* hash for looking up which of our nodes a child node comes from */
  ec_hash_table *childnodes;
};

To use this struct, include the file configuration.h.

Note

ec_atomic_t is a typedef of a long integer.

See Also

ec_config_fetch_globalconf, “ec_hash_table” and “ec_ptr_array”