/mnt/hgfs/jamie_On_My_Mac/store/version_control/svn/integralive/library/trunk/Integra/integra_instance.h File Reference

#include <Integra/integra_attribute.h>
#include <Integra/integra_port.h>
#include <Integra/integra_path.h>
#include <Integra/integra_error.h>

Go to the source code of this file.

Data Structures

struct  ntg_instance_
struct  ntg_instance_count_

Typedefs

typedef struct ntg_instance_ ntg_instance
typedef struct ntg_instance_count_ ntg_instance_count

Functions

ntg_instancentg_instance_new (void)
 Allocate a new empty instance, and return a pointer to it.
void ntg_add_instance (ntg_instance *instance, ntg_instance *container)
 Add one instance inside another.
ntg_instancentg_instance_find_by_name (const ntg_instance *container, const char *instance_name)
 Find an isntance by name inside the given container.
ntg_instancentg_instance_find_by_name_r (const ntg_instance *root, const char *name)
 recursive version of ntg_instance_find_by_name()
ntg_instancentg_instance_find_by_path (const ntg_path *path, const ntg_instance *container)
ntg_instancentg_instance_find_by_id (const ntg_instance *container, const ntg_id instance_id)
 Find an isntance by id inside the given container.
ntg_instancentg_instance_find_by_id_r (const ntg_instance *root, const ntg_id id)
 recursive version of ntg_instance_find_by_id()
void ntg_instance_unlink (ntg_instance *instance)
 Remove an instance from a linked list of instances.
ntg_error_code ntg_instance_set_name (ntg_instance *instance, const char *class_name, const char *name)
 Set the name of an instance (assigned to function pointe in struct).
ntg_error_code ntg_instance_set_class_id (ntg_instance *instance, ntg_id id)
 Set the class id of a instance.
unsigned long ntg_instance_get_id (ntg_instance *instance)
 Get the ID of an instance.
ntg_error_code ntg_instance_add (ntg_instance *collection, ntg_instance *instance)
 Add an instance to a given collection.
ntg_instance_attributentg_instance_get_attribute_root (const ntg_instance *instance)
 Get the attribute root from an instance.
ntg_instance_attributentg_instance_get_attribute_current (const ntg_instance *instance)
 Return a pointer to the 'last used' attribute.
void ntg_instance_set_attribute_current (ntg_instance *instance, ntg_instance_attribute *current)
 Set the current/'last used' attribute for a given ntg_instance.
ntg_instance_attributentg_instance_attribute_find_by_name (const ntg_instance *instance, const char *name)
 Find an attribute by name.
int ntg_instance_increment_count (ntg_instance *instance)
 Add an instance to the instance counter.
int ntg_instance_decrement_count (ntg_instance *instance)
 Remove an instance from the instance counter.
int ntg_instance_get_count (ntg_instance *instance)
 Get the instance count for a given instance.
ntg_idntg_instance_get_class_id (ntg_instance *instance)
 Get the class id (i.e. the id of the class definition) for this instance.
void ntg_free_instance_counts (void)
 Free the instance_counts list.
void ntg_instance_register_namespace (ntg_instance *instance)
 Create a namespace entry for a module instance.
ntg_instancentg_instance_add_attributes (ntg_instance *instance, ntg_attribute_list *attribute_list)
 Add attributes to instance.
char * ntg_instance_name_from_path (const ntg_instance *instance, const ntg_path *path)
bool ntg_instance_is_sibling (const ntg_instance *instance, const ntg_instance *sibling)
 A check that 'instance' and 'sibling' share the same parent.
ntg_pathntg_instance_get_path (const ntg_instance *instance)
 get the full path for an instance
ntg_pathntg_path_reverse_elements (ntg_path *path)
 in place path reversal
ntg_error_code ntg_instance_free (ntg_instance *instance)
 free an instance

Typedef Documentation

typedef struct ntg_instance_ ntg_instance

Function Documentation

void ntg_add_instance ( ntg_instance instance,
ntg_instance container 
)

Add one instance inside another.

This function finds the given container instance and adds an instance to it

void ntg_free_instance_counts ( void   ) 

Free the instance_counts list.

References instance_counts, ntg_instance_count_::next, and ntg_free().

Referenced by _fini().

ntg_error_code ntg_instance_add ( ntg_instance collection,
ntg_instance instance 
)

Add an instance to a given collection.

Parameters:
ntg_instance *collection A pointer to a collection instance
ntg_instance *instance A pointer to an instance instance to be added to the collection instance

This function is responsible for safely adding an instance (to a collection), and setting the collection's dirty flag.

References NTG_ERROR, NTG_NO_ERROR, and ntg_print_error().

Referenced by ntg_new().

ntg_instance* ntg_instance_add_attributes ( ntg_instance instance,
ntg_attribute_list attribute_list 
)
ntg_instance_attribute* ntg_instance_attribute_find_by_name ( const ntg_instance instance,
const char *  name 
)

Find an attribute by name.

Parameters:
ntg_instance *instance A pointer to the instance we want to get the attribute from
char *name The name of the given attribute

References ntg_instance_attribute_::name, ntg_instance_attribute_::next, ntg_instance_get_attribute_current(), ntg_instance_get_attribute_root(), ntg_instance_set_attribute_current(), and ntg_print_error().

Referenced by ntg_connect(), ntg_disconnect(), ntg_get(), ntg_new(), ntg_server_delete_connection(), ntg_server_fix_connections(), and ntg_set().

int ntg_instance_decrement_count ( ntg_instance instance  ) 

Remove an instance from the instance counter.

References ntg_instance_count_::class_id, instance_counts, ntg_instance_count_::n_instances, and ntg_instance_count_::next.

ntg_instance* ntg_instance_find_by_id ( const ntg_instance container,
const ntg_id  instance_id 
)

Find an isntance by id inside the given container.

Traverses the instance list given by container->instances looking for the string *instance_id

References ntg_instance_find_by_id_().

Referenced by ntg_server_fix_connections().

ntg_instance* ntg_instance_find_by_id_r ( const ntg_instance root,
const ntg_id  id 
)
ntg_instance* ntg_instance_find_by_name ( const ntg_instance container,
const char *  instance_name 
)

Find an isntance by name inside the given container.

Traverses the instance list given by container->instances looking for the string *instance_name

References ntg_instance_find_by_name_().

Referenced by ntg_connect(), ntg_disconnect(), ntg_instance_find_by_path(), and ntg_new().

ntg_instance* ntg_instance_find_by_name_r ( const ntg_instance root,
const char *  name 
)
ntg_instance* ntg_instance_find_by_path ( const ntg_path path,
const ntg_instance container 
)
ntg_error_code ntg_instance_free ( ntg_instance instance  ) 
ntg_instance_attribute* ntg_instance_get_attribute_current ( const ntg_instance instance  ) 

Return a pointer to the 'last used' attribute.

If the value of this pointer is NULL, NULL is returned.

References ntg_print_error().

Referenced by ntg_instance_attribute_find_by_name().

ntg_instance_attribute* ntg_instance_get_attribute_root ( const ntg_instance instance  ) 

Get the attribute root from an instance.

References ntg_print_error().

Referenced by ntg_instance_attribute_find_by_name().

ntg_id* ntg_instance_get_class_id ( ntg_instance instance  ) 

Get the class id (i.e. the id of the class definition) for this instance.

Parameters:
instance The instance for which to get the class id.
Returns:
The name as a pointer to ntg_id (
See also:
integra_id.h). The caller must release the memory.
int ntg_instance_get_count ( ntg_instance instance  ) 

Get the instance count for a given instance.

This function locates and decrements the instance count for a given instance

Returns:
The resultant count for the given instance

References ntg_instance_count_::class_id, instance_counts, ntg_instance_count_::n_instances, and ntg_instance_count_::next.

Referenced by ntg_instance_register_namespace().

unsigned long ntg_instance_get_id ( ntg_instance instance  ) 

Get the ID of an instance.

Parameters:
ntg_instance *instance a pointer to an struct of type ntg_instance

Referenced by ntg_instance_register_namespace().

ntg_path* ntg_instance_get_path ( const ntg_instance instance  ) 

get the full path for an instance

References ntg_instance_get_path_(), ntg_path_new(), and ntg_path_reverse_elements().

Referenced by ntg_server_update_connection().

int ntg_instance_increment_count ( ntg_instance instance  ) 

Add an instance to the instance counter.

This function locates and increments the instance count for a given instance

Returns:
The resultant count for the given instance

References ntg_instance_count_::class_id, instance_counts, ntg_instance_count_::n_instances, ntg_instance_count_::next, and ntg_malloc().

Referenced by handler_module_load(), and ntg_new().

bool ntg_instance_is_sibling ( const ntg_instance instance,
const ntg_instance sibling 
)

A check that 'instance' and 'sibling' share the same parent.

Referenced by ntg_server_update_connection().

char* ntg_instance_name_from_path ( const ntg_instance instance,
const ntg_path path 
)
ntg_instance* ntg_instance_new ( void   ) 

Allocate a new empty instance, and return a pointer to it.

Parameters:
const int type An integer indicating the instance type to be created. This corresponds to the type variable in the instance struct, and must be taken from the ntg_entity_types enum in integra_types.h

References L, ntg_id_new(), and ntg_malloc().

Referenced by ntg_new(), and ntg_server_run().

void ntg_instance_register_namespace ( ntg_instance instance  ) 
void ntg_instance_set_attribute_current ( ntg_instance instance,
ntg_instance_attribute current 
)

Set the current/'last used' attribute for a given ntg_instance.

Referenced by ntg_instance_attribute_find_by_name().

ntg_error_code ntg_instance_set_class_id ( ntg_instance instance,
ntg_id  id 
)

Set the class id of a instance.

References NTG_ERROR, NTG_NO_ERROR, and ntg_print_error().

Referenced by handler_module_load(), and ntg_new().

ntg_error_code ntg_instance_set_name ( ntg_instance instance,
const char *  class_name,
const char *  name 
)

Set the name of an instance (assigned to function pointe in struct).

Parameters:
ntg_instance *instance a pointer to an struct of type ntg_instance
*class_name Optional pointer to class name of class instance belongs to. If name is provided class_name can safely be set to NULL
char *name A pointer to a NULL-terminated string representing the new name for an instance

If a NULL value is passed for the *name pointer, then a combination of the class name and the instance's id will be used to generate a name. If the id has not been set, an error will be raised

References ntg_count_digits(), NTG_ERROR, NTG_NO_ERROR, and ntg_print_error().

Referenced by ntg_new(), ntg_rename(), and ntg_server_run().

void ntg_instance_unlink ( ntg_instance instance  ) 

Remove an instance from a linked list of instances.

Referenced by ntg_instance_free().

ntg_path* ntg_path_reverse_elements ( ntg_path path  ) 

in place path reversal

References ntg_path_::elems, and ntg_path_::n_elems.

Referenced by ntg_instance_get_path().


Generated on Tue Jan 5 14:02:29 2010 for LibIntegra by  doxygen 1.6.1