26 #ifndef CAT_ETOILE_HPP 27 #define CAT_ETOILE_HPP 29 #include "../my_config.h" 60 void add_ref(
void *ref);
61 void drop_ref(
void *ref);
62 infinint get_ref_count()
const {
return refs.size(); };
63 cat_inode *get_inode()
const {
return hosted; };
64 infinint get_etiquette()
const {
return etiquette; };
65 void change_etiquette(
const infinint & new_val) { etiquette = new_val; };
68 bool is_counted()
const {
return tags.counted; };
69 bool is_wrote()
const {
return tags.wrote; };
70 bool is_dumped()
const {
return tags.dumped; };
71 void set_counted(
bool val) { tags.counted = val ? 1 : 0; };
72 void set_wrote(
bool val) { tags.wrote = val ? 1 : 0; };
73 void set_dumped(
bool val) { tags.dumped = val ? 1 : 0; };
77 const void *get_first_ref()
const {
if(refs.size() == 0)
throw SRC_BUG;
return refs.front(); };
88 bool_tags() { counted = wrote = dumped = 0; };
91 std::list<void *> refs;
the hard link implementation (etoile means star in French, seen a star as a point from which are thro...
cat_etoile(cat_inode *host, const infinint &etiquette_number)
build an object
this is the base class of object that can be allocated on a memory pool
the root class for all cat_inode
base object for all inode types, managed EA and FSA, dates, permissions, ownership, ...
the arbitrary large positive integer class
libdar namespace encapsulate all libdar symbols