27 #include <Inventor/SoType.h> 28 #include <Inventor/lists/SoAuditorList.h> 29 #include <Inventor/C/base/rbptree.h> 44 static void initClass(
void);
47 void unref(
void)
const;
48 void unrefNoDelete(
void)
const;
49 int32_t getRefCount(
void)
const;
53 virtual SoType getTypeId(
void)
const = 0;
54 SbBool isOfType(
SoType type)
const;
55 static SoType getClassTypeId(
void);
57 virtual SbName getName(
void)
const;
58 virtual void setName(
const SbName & newname);
60 static void addName(
SoBase *
const base,
const char *
const name);
61 static void removeName(
SoBase *
const base,
const char *
const name);
63 virtual void startNotify(
void);
67 void removeAuditor(
void *
const auditor,
const SoNotRec::Type type);
70 virtual void addWriteReference(
SoOutput * out, SbBool isfromfield = FALSE);
71 SbBool shouldWrite(
void);
73 static void incrementCurrentWriteCounter(
void);
74 static void decrementCurrentWriteCounter(
void);
81 static void setInstancePrefix(
const SbString & c);
83 static void setTraceRefs(SbBool trace);
84 static SbBool getTraceRefs(
void);
86 static SbBool connectRoute(
SoInput * in,
87 const SbName & fromnodename,
const SbName & fromfieldname,
90 void assertAlive(
void)
const;
91 static SbBool readRoute(
SoInput * in);
95 enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 };
100 virtual void destroy(
void);
102 SbBool hasMultipleWriteRefs(
void)
const;
103 SbBool writeHeader(
SoOutput * out, SbBool isgroup, SbBool isengine)
const;
104 void writeFooter(
SoOutput * out)
const;
105 virtual const char * getFileFormatName(
void)
const;
107 virtual SbBool readInstance(
SoInput * in,
unsigned short flags) = 0;
109 static uint32_t getCurrentWriteCounter(
void);
110 static void staticDataLock(
void);
111 static void staticDataUnlock(
void);
116 static SbBool readBaseInstance(
SoInput * in,
const SbName & classname,
120 static void flushInput(
SoInput * in);
122 static void cleanClass(
void);
125 static void freeLists(
unsigned long,
void * value);
127 static SoType classTypeId;
130 int32_t referencecount : 27;
131 unsigned int ingraph : 1;
132 unsigned int alive : 4;
138 static void rbptree_notify_cb(
void * auditor,
void * type,
void * closure);
139 cc_rbptree auditortree;
147 static SbBool tracerefs;
148 static uint32_t writecounter;
151 #endif // !COIN_SOBASE_H The SoBase class is the top-level superclass for a number of class-hierarchies.SoBase provides the ba...
Definition: SoBase.h:41
The SoOutput class is an abstraction of an output stream.SoOutput offers the ability to write basic t...
Definition: SoOutput.h:42
The SoBaseList class is a container for pointers to SoBase derived objects.The additional capability ...
Definition: SoBaseList.h:32
The SbDict class organizes a dictionary of keys and values.It uses hashing to quickly insert and find...
Definition: SbDict.h:47
The SoAuditorList class is used to keep track of auditors for certain object classes....
Definition: SoAuditorList.h:43
BaseFlags
Definition: SoBase.h:95
The SbString class is a string class with convenience functions for string operations....
Definition: SbString.h:42
The SoNotList class is a list of SoNotRec notification records.
Definition: SoNotification.h:34
The SoType class is the basis for the run-time type system in Coin.Many of the classes in the Coin li...
Definition: SoType.h:50
The SbName class stores strings by reference.The class is used by Coin for storing keywords,...
Definition: SbName.h:31
Type
Definition: SoNotRec.h:35