Documentation
¶
Index ¶
Constants ¶
const ( // CommonPropertiesLength specifies the length a common properties structure has. CommonPropertiesLength = uint32(27) )
Variables ¶
This section is empty.
Functions ¶
func ObjectIDToIndex ¶
func ObjectIDToIndex(desc []ClassDescriptor, id res.ObjectID) int
ObjectIDToIndex returns the linear index for a given object ID based on a set of class descriptors.
Types ¶
type ClassDescriptor ¶
type ClassDescriptor struct {
// GenericDataLength specifies the length of one generic type entry.
GenericDataLength uint32
// Subclasses contains descriptions of the subclasses of this class.
// The index into the array is the subclass ID.
Subclasses []SubclassDescriptor
}
ClassDescriptor describes a single object class.
func StandardProperties ¶
func StandardProperties() []ClassDescriptor
StandardProperties returns an array of class descriptors that represent the standard configuration of the existing file
func (ClassDescriptor) TotalDataLength ¶
func (desc ClassDescriptor) TotalDataLength() uint32
TotalDataLength returns the total length the class requires
func (ClassDescriptor) TotalTypeCount ¶
func (desc ClassDescriptor) TotalTypeCount() uint32
TotalTypeCount returns the total number of types in this class
type Consumer ¶
type Consumer interface {
// Consume takes the provided data and associates it with the given ID.
Consume(id res.ObjectID, data ObjectData)
// Finish marks the end of consumption. After calling Finish, the consumer can't be used anymore.
Finish()
}
Consumer wraps methods to consume object data
type ObjectData ¶
type ObjectData struct {
// Class-specific data
Generic []byte
// Type-specific data
Specific []byte
// Common properties (format shared between all objects)
Common []byte
}
ObjectData holds object-type specific data
type Provider ¶
type Provider interface {
// Provide returns the data for the requested ObjectID.
Provide(id res.ObjectID) ObjectData
}
Provider wraps the Provide method.
func NullProvider ¶
func NullProvider(descriptors []ClassDescriptor) (provider Provider)
NullProvider returns a provider that has all properties reset to zero.
type Store ¶
type Store interface {
// Get returns the data for the requested ObjectID.
Get(id res.ObjectID) ObjectData
// Put takes the provided data and associates it with the given ID.
Put(id res.ObjectID, data ObjectData)
}
Store represents a dynamically accessible container of object properties.
type SubclassDescriptor ¶
type SubclassDescriptor struct {
// TypeCount specifies how many types exist in this subclass.
TypeCount uint32
// SpecificDataLength specifies the length of one specific type entry.
SpecificDataLength uint32
}
SubclassDescriptor describes one subclass.
func (SubclassDescriptor) TotalDataLength ¶
func (desc SubclassDescriptor) TotalDataLength() uint32
TotalDataLength returns the total length the subclass requires in the properties file