GATE
directories.h File Reference

Abstract interface for directory providers. More...

#include "gate/gate_core_api.h"
#include "gate/objects.h"
#include "gate/values.h"
#include "gate/delegates.h"
#include "gate/streams.h"

Classes

struct  gate_directory_propertydef_class
 

Macros

#define GATE_INTERFACE_NAME_DIRECTORYCLASS   GATE_INTERFACE_NAME_OBJECT GATE_INTERFACE_NAME_SEPARATOR "directory_class"
 
#define GATE_DIRECTORY_PROPERTY_FLAG_OPTIONAL   0x0001
 
#define GATE_DIRECTORY_CLASS_FLAG_CONTAINER   0x0001
 directory class instances can contain child directory entries
 
#define GATE_DIRECTORY_CLASS_FLAG_STREAMS   0x0002
 directory class instances can contain streams

 
#define GATE_DIRECTORY_CLASS_FLAG_CREATABLE   0x0004
 directory class instances can be dynamically created
 
#define gate_directory_class_uid(obj, return_uid)   (obj)->vtbl->uid((obj), return_uid)
 
#define gate_directory_class_name(obj, return_name)   (obj)->vtbl->name((obj), return_name)
 
#define gate_directory_class_flags(obj, return_flags)   (obj)->vtbl->flags((obj), return_flags)
 
#define gate_directory_class_get_properties_count(obj, return_count)   (obj)->vtbl->get_properties_count((obj), return_count)
 
#define gate_directory_class_get_property(obj, index, return_prop_def)   (obj)->vtbl->get_property((obj), index, return_prop_def)
 
#define gate_directory_class_find_property(obj, name, return_prop_def)   (obj)->vtbl->find_property((obj), name, return_prop_def)
 
#define gate_directory_class_get_superior_classes_count(obj, return_count)   (obj)->vtbl->get_superior_classes_count((obj), return_count)
 
#define gate_directory_class_get_superior_class_uid(obj, index, return_class_uid)   (obj)->vtbl->get_superior_class_uid((obj), index, return_class_uid)
 
#define gate_directory_class_get_containment_classes_count(obj, return_count)   (obj)->vtbl->get_containment_classes_count((obj), return_count)
 
#define gate_directory_class_get_containment_class_uid(obj, index, return_class_uid)   (obj)->vtbl->get_containment_class_uid((obj), index, return_class_uid)
 
#define GATE_INTERFACE_NAME_DIRECTORYENTRY   GATE_INTERFACE_NAME_OBJECT GATE_INTERFACE_NAME_SEPARATOR "directory_entry"
 
#define gate_directory_entry_entry_uid(obj, return_entry_uid)   (obj)->vtbl->entry_uid((obj), return_entry_uid)
 
#define gate_directory_entry_class_uid(obj, return_class_uid)   (obj)->vtbl->class_uid((obj), return_class_uid)
 
#define gate_directory_entry_path(obj, return_path)   (obj)->vtbl->path((obj), return_path)
 
#define gate_directory_entry_name(obj, return_name)   (obj)->vtbl->name((obj), return_name)
 
#define gate_directory_entry_parent_path(obj, return_parent)   (obj)->vtbl->parent_path((obj), return_parent)
 
#define gate_directory_entry_get_property(obj, prop_name, return_value)   (obj)->vtbl->get_property((obj), prop_name, return_value)
 
#define gate_directory_entry_set_property(obj, prop_name, value)   (obj)->vtbl->set_property((obj), prop_name, value)
 
#define gate_directory_entry_refresh_properties(obj)   (obj)->vtbl->refresh_properties((obj))
 
#define GATE_INTERFACE_NAME_DIRECTORYPROVIDER   GATE_INTERFACE_NAME_OBJECT GATE_INTERFACE_NAME_SEPARATOR "directory_provider"
 
#define gate_directory_provider_provider_name(obj, return_name)    (obj)->vtbl->provider_name((obj), return_name)
 
#define gate_directory_provider_get_classes_count(obj, return_count)    (obj)->vtbl->get_classes_count((obj), return_count)
 
#define gate_directory_provider_get_class(obj, index, return_class_ptr)    (obj)->vtbl->get_class((obj), index, return_class_ptr)
 
#define gate_directory_provider_find_class(obj, class_uid, return_class_ptr)    (obj)->vtbl->find_class((obj), class_uid, return_class_ptr)
 
#define gate_directory_provider_get_entry_by_path(obj, path, return_entry_ptr)    (obj)->vtbl->get_entry_by_path((obj), path, return_entry_ptr)
 
#define gate_directory_provider_get_entry_by_uid(obj, uid, return_entry_ptr)    (obj)->vtbl->get_entry_by_uid((obj), uid, return_entry_ptr)
 
#define gate_directory_provider_search_entries(obj, search_root, query, search_flags, callback, callback_param)    (obj)->vtbl->search_entries((obj), search_root, query, search_flags, callback, callback_param)
 
#define gate_directory_provider_get_child_entry(obj, parent, class_uid, child_name, return_entry_ptr)    (obj)->vtbl->get_child_entry((obj), parent, class_uid, child_name, return_entry_ptr)
 
#define gate_directory_provider_create_entry(obj, parent, class_uid, child_name, propname_to_value_map, stream_to_copy, return_entry_ptr)    (obj)->vtbl->create_entry((obj), parent, class_uid, child_name, propname_to_value_map, stream_to_copy, return_entry_ptr)
 
#define gate_directory_provider_delete_entry(obj, entry)    (obj)->vtbl->delete_entry((obj), entry)
 
#define gate_directory_provider_copy_entry(obj, source, target_container, new_name, copy_flags, return_entry_ptr)    (obj)->vtbl->copy_entry((obj), source, target_container, new_name, copy_flags, return_entry_ptr)
 
#define gate_directory_provider_move_entry(obj, source, target_container, new_name, move_flags, return_entry_ptr)    (obj)->vtbl->move_entry((obj), source, target_container, new_name, move_flags, return_entry_ptr)
 
#define gate_directory_provider_open_stream(obj, source, stream_name, open_flags, return_stream)    (obj)->vtbl->open_stream((obj), source, stream_name, open_flags, return_stream)
 

Typedefs

typedef struct gate_directory_propertydef_class gate_directory_propertydef_t
 

Functions

GATE_CORE_API gate_directory_propertydef_tgate_directory_propertydef_create (gate_directory_propertydef_t *propdef, gate_type_id_t type, gate_string_t const *name, gate_uint32_t flags)
 
GATE_CORE_API void gate_directory_propertydef_release (gate_directory_propertydef_t *propdef)
 
 GATE_INTERFACE (gate_directory_class)
 
 GATE_INTERFACE (gate_directory_entry)
 
 GATE_DELEGATE_DECLARE_3 (gate_directory_search_cb, gate_directory_entry_t *, gate_bool_t *, void *)
 
 GATE_INTERFACE (gate_directory_provider)
 

Detailed Description

Abstract interface for directory providers.