11 #ifndef __GA_AIFSharedStringTuple__
12 #define __GA_AIFSharedStringTuple__
35 #define GA_INVALID_STRING_INDEX GA_StringIndexType(-1)
71 virtual bool compactStorage(
GA_Attribute *attrib)
const = 0;
84 exint maxstrings)
const = 0;
101 if (attrib && getStatistics(attrib, stats))
114 virtual const char *getTableString(
const GA_Attribute *attrib,
120 const char *
string)
const = 0;
128 virtual const char *getTableOrderedString(
const GA_Attribute *
a,
144 const char *
string)
const = 0;
162 myAttrib = src.myAttrib;
163 myString = src.myString;
164 myCount = src.myCount;
165 myIndex = src.myIndex;
174 return myAIF == src.myAIF &&
175 myAttrib == src.myAttrib &&
176 myCount == src.myCount &&
177 myIndex == src.myIndex;
187 bool atEnd()
const {
return myIndex >= myCount; }
201 while (myIndex < myCount)
218 , myCount(aif ? aif->getTableEntries(a) : 0)
225 const char *myString;
239 const char *
string)
const = 0;
257 int tuple_index=0)
const override;
262 int tuple_index=0)
const = 0;
272 int tuple_index)
const override;
276 int tuple_index)
const override;
280 int tuple_index)
const = 0;
284 int tuple_index)
const;
333 , myAIFSharedStringTuple(NULL)
356 const char *getString(
GA_Size i)
const;
StringBuffer(const StringBuffer &src)
bool arrayDestroyString(GA_Attribute *attrib, int string_index, GA_Offset element_index=GA_Offset(0)) const override
Definition of a geometry attribute.
Temporary container to hold references to multiple strings.
void setEntries(GA_Size n)
virtual void delHandleReference(GA_Attribute *attribute, GA_StringIndexType handle) const =0
Decrement reference to a handle.
GA_Size entries() const
Return number of strings referenced in the string buffer.
GLboolean GLboolean GLboolean GLboolean a
GA_Size getTableEntries(const GA_Attribute *attrib) const
Return the number of entries in the shared string table.
GA_StringTableStatistics()
exint GA_Size
Defines the bit width for index and offset types in GA.
virtual GA_StringIndexType addStringReference(GA_Attribute *attribute, const char *string) const =0
Add (or increment) reference to a string.
int getTupleSize(const GA_Attribute *attrib) const override=0
Query the tuple size.
A range of elements in an index-map.
virtual bool setHandles(GA_Attribute *attrib, GA_Offset ai, const GA_StringIndexType *handles, int count, int start=0) const
Set multiple components for a single element.
iterator & operator++(int)
bool setTupleSize(GA_Attribute *attrib, int size) const override=0
Set the tuple size.
~GA_StringTableStatistics()
bool operator==(const iterator &src)
UT_IndexedHashMapItemId GA_BlobIndex
const char * getString() const
iterator & operator=(const iterator &src)
virtual bool getHandles(const GA_Attribute *attrib, GA_Offset ai, GA_StringIndexType *handles, int count, int start=0) const
Get the full tuple of indices for a single element.
GA_Size getCapacity() const
GLsizei const GLchar *const * strings
int arrayGetLength(const GA_Attribute *attrib, GA_Offset element_index=GA_Offset(0)) const override
GA_Size getEntries() const
GA_StringIndexType getHandle() const
Class to iterate over all the strings in the shared string table.
LeafData & operator=(const LeafData &)=delete
bool setString(GA_Attribute *attrib, GA_Offset ai, const char *string, int tuple_index) const override
Set a single component for a single element.
A specialization of GA_AIFStringTuple to access "shared strings".
int arrayFindString(const GA_Attribute *attrib, const char *string, GA_Offset element_index=GA_Offset(0)) const override
GA_BlobIndex GA_StringIndexType
OIIO_API bool attribute(string_view name, TypeDesc type, const void *val)
void setCapacity(GA_Size n)
iterator begin(const GA_Attribute *a) const
const char * getString(const GA_Attribute *attrib, GA_Offset ai, int tuple_index=0) const override
Get a single string from the array for a single tuple of an element.
virtual bool setHandle(GA_Attribute *attrib, GA_Offset ai, GA_StringIndexType handle, int tuple_index) const =0
Set a single component for a single element.
virtual GA_StringIndexType getHandle(const GA_Attribute *attrib, GA_Offset ai, int tuple_index=0) const =0
Get the handle from the array for a single tuple of an element.
Generic Attribute Interface class to work with string indices directly, rather than string values...