BRL-CAD
|
#include <directory.h>
Data Fields | ||
uint32_t | d_magic | |
Magic number. | ||
char * | d_namep | |
pointer to name string | ||
union { | ||
b_off_t file_offset | ||
disk address in obj file More... | ||
void * ptr | ||
ptr to in-memory-only obj More... | ||
} | d_un | |
struct directory * | d_forw | |
link to next dir entry | ||
struct animate * | d_animate | |
link to animation | ||
long | d_uses | |
number of uses, from instancing | ||
size_t | d_len | |
number of of db granules used | ||
long | d_nref | |
number of times ref'ed by COMBs | ||
int | d_flags | |
flags | ||
unsigned char | d_major_type | |
object major type | ||
unsigned char | d_minor_type | |
object minor type | ||
struct bu_list | d_use_hd | |
heads list of uses (struct soltab l2) | ||
char | d_shortname [16] | |
Stash short names locally. | ||
void * | u_data | |
void pointer hook for user data. user is responsible for freeing. | ||
One of these structures is allocated in memory to represent each named object in the database.
Note that a d_addr of RT_DIR_PHONY_ADDR ((b_off_t)-1) means that database storage has not been allocated yet.
Note that there is special handling for RT_DIR_INMEM "in memory" overrides.
Construction should be done only by using RT_GET_DIRECTORY() Destruction should be done only by using db_dirdelete().
Special note: In order to reduce the overhead of acquiring heap memory (e.g., via bu_strdup()) to stash the name in d_namep, we carry along enough storage for small names right in the structure itself (d_shortname). Thus, d_namep should never be assigned to directly, it should always be accessed using RT_DIR_SET_NAMEP() and RT_DIR_FREE_NAMEP().
The in-memory name of an object should only be changed using db_rename(), so that it can be requeued on the correct linked list, based on new hash. This should be followed by rt_db_put_internal() on the object to modify the on-disk name.
Note that d_minor_type and the corresponding idb_minor_type of an rt_db_internal associated with a given directory structure should match.
Definition at line 62 of file directory.h.
uint32_t d_magic |
Magic number.
Definition at line 63 of file directory.h.
char* d_namep |
pointer to name string
Definition at line 64 of file directory.h.
b_off_t file_offset |
disk address in obj file
Definition at line 66 of file directory.h.
void* ptr |
ptr to in-memory-only obj
Definition at line 67 of file directory.h.
union { ... } d_un |
struct directory* d_forw |
link to next dir entry
Definition at line 69 of file directory.h.
struct animate* d_animate |
link to animation
Definition at line 70 of file directory.h.
long d_uses |
number of uses, from instancing
Definition at line 71 of file directory.h.
size_t d_len |
number of of db granules used
Definition at line 72 of file directory.h.
long d_nref |
number of times ref'ed by COMBs
Definition at line 73 of file directory.h.
int d_flags |
flags
Definition at line 74 of file directory.h.
object major type
Definition at line 75 of file directory.h.
object minor type
Definition at line 76 of file directory.h.
struct bu_list d_use_hd |
heads list of uses (struct soltab l2)
Definition at line 77 of file directory.h.
char d_shortname[16] |
Stash short names locally.
Definition at line 78 of file directory.h.
void* u_data |
void pointer hook for user data. user is responsible for freeing.
Definition at line 79 of file directory.h.