IndexSegment Class Reference

#include <index.h>

Inheritance diagram for IndexSegment:

RefCount IRefCount List of all members.

Public Member Functions

 ~IndexSegment ()
 Destructor cleans up the segment.
bool AddIndexEntry (Int8 TemporalOffset, Int8 KeyFrameOffset, UInt8 Flags, UInt64 StreamOffset, int SliceCount=0, UInt32 *SliceOffsets=NULL, int PosCount=0, Rational *PosTable=NULL)
 Add a single index entry.
bool AddIndexEntries (int Count, int Size, UInt8 *Entries)
 Add multiple - pre-formed index entries.
void Update (Position EditUnit, UInt64 StreamOffset)
 Update the Stream Offset of an index entry.

Static Public Member Functions

static IndexSegmentPtr AddIndexSegmentToIndexTable (IndexTablePtr ParentTable, Int64 IndexStartPosition)
 Index segment pseudo-constructor.

Public Attributes

IndexTableParent Parent
 Table that owns this segment.
Int64 StartPosition
 Edit unit of the first entry in this segment.
int DeltaCount
 Number of entries in DeltaArray.
DeltaEntryDeltaArray
 Deltas for this segment.
int EntryCount
 Number of entries in IndexEntryArray.
DataChunk IndexEntryArray
 Index Entries for this segment.

Private Member Functions

 IndexSegment ()
 Private constructor to force construction via AddIndexSegmentToIndexTable().

Static Private Attributes

static PrimerPtr IndexPrimer

Constructor & Destructor Documentation

IndexSegment (  )  [inline, private]

Private constructor to force construction via AddIndexSegmentToIndexTable().

~IndexSegment (  )  [inline]

Destructor cleans up the segment.


Member Function Documentation

IndexSegmentPtr AddIndexSegmentToIndexTable ( IndexTablePtr  ParentTable,
Int64  IndexStartPosition 
) [static]

Index segment pseudo-constructor.

Note:
Only call this from IndexTable::AddSegment() because it adds the segment to its SegmentMap

bool AddIndexEntry ( Int8  TemporalOffset,
Int8  KeyFrameOffset,
UInt8  Flags,
UInt64  StreamOffset,
int  SliceCount = 0,
UInt32 SliceOffsets = NULL,
int  PosCount = 0,
Rational PosTable = NULL 
)

Add a single index entry.

Returns:
true if the entry was added OK, false if an error occured or the segment would be too big (sizeof(IndexEntryArray) > 65535)

bool AddIndexEntries ( int  Count,
int  Size,
UInt8 Entries 
)

Add multiple - pre-formed index entries.

void Update ( Position  EditUnit,
UInt64  StreamOffset 
)

Update the Stream Offset of an index entry.


Member Data Documentation

PrimerPtr IndexPrimer [static, private]

IndexTableParent Parent

Table that owns this segment.

Int64 StartPosition

Edit unit of the first entry in this segment.

int DeltaCount

Number of entries in DeltaArray.

DeltaEntry* DeltaArray

Deltas for this segment.

int EntryCount

Number of entries in IndexEntryArray.

DataChunk IndexEntryArray

Index Entries for this segment.

Note:
This can't be an array of structs because they are variable length


The documentation for this class was generated from the following files:
Generated on Mon Apr 2 15:20:59 2007 for MXFLib by  doxygen 1.5.1-p1