39 #ifndef __EST_CONTENTS_H__
40 #define __EST_CONTENTS_H__
54 void (*free_func)(
void *data);
59 int unref() {
return --refs; }
61 int ref() {
return ++refs; }
63 int the_refs() {
return refs; }
64 void *contents() {
return data; }
66 {refs = c.refs; data = c.data; free_func = c.free_func;
return *
this;}
74 void unref_contents(
void)
75 {
if ((content_data != 0) &&
76 (content_data->unref() == 0))
83 void set_contents(
void *p,
void (*free_func)(
void *p))
85 void *get_contents()
const
86 {
return (content_data ? content_data->contents() : 0);}
88 int refs()
const {
return ((content_data == 0) ? 0 :
89 content_data->the_refs());}
92 content_data = c.content_data;
93 if (content_data != 0) content_data->ref();