OggDemuxPacketSourceFilter Class Reference

#include <OggDemuxPacketSourceFilter.h>

Inheritance diagram for OggDemuxPacketSourceFilter:

Inheritance graph
[legend]
Collaboration diagram for OggDemuxPacketSourceFilter:

Collaboration graph
[legend]
List of all members.

Public Types

enum  eThreadCommands { THREAD_EXIT = 0, THREAD_PAUSE = 1, THREAD_RUN = 2 }

Public Member Functions

virtual bool acceptOggPage (OggPage *inOggPage)
virtual STDMETHODIMP CheckCapabilities (DWORD *pCapabilities)
virtual STDMETHODIMP ConvertTimeFormat (LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
virtual STDMETHODIMP GetAvailable (LONGLONG *pEarliest, LONGLONG *pLatest)
virtual STDMETHODIMP GetCapabilities (DWORD *inCapabilities)
virtual STDMETHODIMP GetCurFile (LPOLESTR *outFileName, AM_MEDIA_TYPE *outMediaType)
virtual STDMETHODIMP GetCurrentPosition (LONGLONG *pCurrent)
virtual STDMETHODIMP GetDuration (LONGLONG *outDuration)
virtual __int64 getGlobalBaseTime ()
vector< OggPage * > getMatchingBufferedPages (unsigned long inSerialNo)
ULONG STDMETHODCALLTYPE GetMiscFlags (void)
virtual CBasePin * GetPin (int inPinNo)
virtual int GetPinCount ()
virtual STDMETHODIMP GetPositions (LONGLONG *pCurrent, LONGLONG *pStop)
virtual STDMETHODIMP GetPreroll (LONGLONG *pllPreroll)
virtual STDMETHODIMP GetRate (double *dRate)
virtual STDMETHODIMP GetStopPosition (LONGLONG *pStop)
virtual STDMETHODIMP GetTimeFormat (GUID *pFormat)
virtual STDMETHODIMP IsFormatSupported (const GUID *pFormat)
virtual STDMETHODIMP IsUsingTimeFormat (const GUID *pFormat)
virtual STDMETHODIMP Load (LPCOLESTR inFileName, const AM_MEDIA_TYPE *inMediaType)
DECLARE_IUNKNOWN STDMETHODIMP NonDelegatingQueryInterface (REFIID riid, void **ppv)
virtual void notifyPinConnected ()
virtual bool notifyStreamBaseTime (__int64 inStreamBaseTime)
 OggDemuxPacketSourceFilter (void)
STDMETHODIMP Pause (void)
virtual STDMETHODIMP QueryPreferredFormat (GUID *pFormat)
bool ReleaseDelegate ()
void removeMatchingBufferedPages (unsigned long inSerialNo)
STDMETHODIMP Run (REFERENCE_TIME tStart)
bool SetDelegate (IMediaSeeking *inDelegate)
virtual STDMETHODIMP SetPositions (LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
virtual STDMETHODIMP SetRate (double dRate)
virtual STDMETHODIMP SetTimeFormat (const GUID *pFormat)
STDMETHODIMP Stop (void)
CCritSec * streamLock ()
virtual DWORD ThreadProc (void)
virtual ~OggDemuxPacketSourceFilter (void)

Static Public Member Functions

CUnknown *WINAPI CreateInstance (LPUNKNOWN pUnk, HRESULT *pHr)

Protected Member Functions

HRESULT DataProcessLoop ()
void DeliverBeginFlush ()
void DeliverEndFlush ()
void DeliverEOS ()
void DeliverNewSegment (REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)
void resetStream ()
virtual HRESULT SetUpPins ()

Protected Attributes

vector< OggPage * > mBufferedPages
IFilterDataSourcemDataSource
CCritSec * mDemuxLock
wstring mFileName
__int64 mGlobalBaseTime
HRESULT mHR
bool mJustReset
OggDataBuffer mOggBuffer
OggPagemPendingPage
IMediaSeeking * mSeekDelegate
DWORD mSeekingCap
AutoOggChainGranuleSeekTablemSeekTable
bool mSeenAllBOSPages
bool mSeenPositiveGranulePos
CCritSec * mSourceFileLock
CCritSec * mStreamLock
OggStreamMappermStreamMapper

Static Protected Attributes

const unsigned long SETUP_BUFFER_SIZE = 24

Member Enumeration Documentation

enum OggDemuxPacketSourceFilter::eThreadCommands
 

Enumeration values:
THREAD_EXIT 
THREAD_PAUSE 
THREAD_RUN 

Definition at line 57 of file OggDemuxPacketSourceFilter.h.


Constructor & Destructor Documentation

OggDemuxPacketSourceFilter::OggDemuxPacketSourceFilter void   ) 
 

Definition at line 106 of file OggDemuxPacketSourceFilter.cpp.

References false, mDemuxLock, mSourceFileLock, mStreamLock, mStreamMapper, and true.

Referenced by CreateInstance().

OggDemuxPacketSourceFilter::~OggDemuxPacketSourceFilter void   )  [virtual]
 

Definition at line 128 of file OggDemuxPacketSourceFilter.cpp.

References IFilterDataSource::close(), and mDataSource.

Here is the call graph for this function:


Member Function Documentation

bool OggDemuxPacketSourceFilter::acceptOggPage OggPage inOggPage  )  [virtual]
 

All callers to acceptOggPage give away their pointer to this function. All methods implementing this interface are responsible for deleting this page. All callers should NULL their pointer immediately after calling to avoid reusing them.

Implements IOggCallback.

Definition at line 263 of file OggDemuxPacketSourceFilter.cpp.

References OggStreamMapper::acceptOggPage(), OggPageHeader::GranulePos(), OggPage::header(), OggPageHeader::isBOS(), mBufferedPages, mSeenAllBOSPages, mSeenPositiveGranulePos, and mStreamMapper.

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::CheckCapabilities DWORD *  pCapabilities  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 578 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::ConvertTimeFormat LONGLONG *  pTarget,
const GUID *  pTargetFormat,
LONGLONG  Source,
const GUID *  pSourceFormat
[virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 633 of file OggDemuxPacketSourceFilter.cpp.

CUnknown *WINAPI OggDemuxPacketSourceFilter::CreateInstance LPUNKNOWN  pUnk,
HRESULT *  pHr
[static]
 

Definition at line 62 of file OggDemuxPacketSourceFilter.cpp.

References OggDemuxPacketSourceFilter().

Here is the call graph for this function:

HRESULT OggDemuxPacketSourceFilter::DataProcessLoop  )  [protected]
 

Definition at line 485 of file OggDemuxPacketSourceFilter.cpp.

References DeliverEOS(), OggDataBuffer::feed(), IFilterDataSource::isEOF(), mDataSource, mDemuxLock, mJustReset, mOggBuffer, mSourceFileLock, and IFilterDataSource::read().

Referenced by ThreadProc().

Here is the call graph for this function:

void OggDemuxPacketSourceFilter::DeliverBeginFlush  )  [protected]
 

Definition at line 177 of file OggDemuxPacketSourceFilter.cpp.

References OggDemuxPacketSourcePin::DeliverBeginFlush(), OggStreamMapper::getPinByIndex(), mStreamMapper, OggStreamMapper::numPins(), and resetStream().

Referenced by SetPositions(), and Stop().

Here is the call graph for this function:

void OggDemuxPacketSourceFilter::DeliverEndFlush  )  [protected]
 

Definition at line 191 of file OggDemuxPacketSourceFilter.cpp.

References OggDemuxPacketSourcePin::DeliverEndFlush(), OggStreamMapper::getPinByIndex(), mStreamMapper, and OggStreamMapper::numPins().

Referenced by SetPositions(), and Stop().

Here is the call graph for this function:

void OggDemuxPacketSourceFilter::DeliverEOS  )  [protected]
 

Definition at line 216 of file OggDemuxPacketSourceFilter.cpp.

References OggDemuxPacketSourcePin::DeliverEndOfStream(), OggStreamMapper::getPinByIndex(), mStreamMapper, OggStreamMapper::numPins(), and resetStream().

Referenced by DataProcessLoop().

Here is the call graph for this function:

void OggDemuxPacketSourceFilter::DeliverNewSegment REFERENCE_TIME  tStart,
REFERENCE_TIME  tStop,
double  dRate
[protected]
 

Definition at line 229 of file OggDemuxPacketSourceFilter.cpp.

References OggDemuxPacketSourcePin::DeliverNewSegment(), OggStreamMapper::getPinByIndex(), mStreamMapper, and OggStreamMapper::numPins().

Referenced by SetPositions().

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::GetAvailable LONGLONG *  pEarliest,
LONGLONG *  pLatest
[virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 687 of file OggDemuxPacketSourceFilter.cpp.

References AutoOggChainGranuleSeekTable::enabled(), AutoOggChainGranuleSeekTable::fileDuration(), and mSeekTable.

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::GetCapabilities DWORD *  inCapabilities  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 553 of file OggDemuxPacketSourceFilter.cpp.

References AutoOggChainGranuleSeekTable::enabled(), and mSeekTable.

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::GetCurFile LPOLESTR *  outFileName,
AM_MEDIA_TYPE *  outMediaType
[virtual]
 

Definition at line 383 of file OggDemuxPacketSourceFilter.cpp.

References mFileName, and outFileName.

STDMETHODIMP OggDemuxPacketSourceFilter::GetCurrentPosition LONGLONG *  pCurrent  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 626 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::GetDuration LONGLONG *  outDuration  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 565 of file OggDemuxPacketSourceFilter.cpp.

References AutoOggChainGranuleSeekTable::enabled(), AutoOggChainGranuleSeekTable::fileDuration(), and mSeekTable.

Here is the call graph for this function:

__int64 OggDemuxPacketSourceFilter::getGlobalBaseTime  )  [virtual]
 

Implements IOggBaseTime.

Definition at line 741 of file OggDemuxPacketSourceFilter.cpp.

vector< OggPage * > OggDemuxPacketSourceFilter::getMatchingBufferedPages unsigned long  inSerialNo  ) 
 

Definition at line 342 of file OggDemuxPacketSourceFilter.cpp.

References mBufferedPages.

Referenced by OggDemuxPacketSourcePin::CompleteConnect().

ULONG OggDemuxPacketSourceFilter::GetMiscFlags void   ) 
 

Definition at line 439 of file OggDemuxPacketSourceFilter.cpp.

CBasePin * OggDemuxPacketSourceFilter::GetPin int  inPinNo  )  [virtual]
 

Definition at line 374 of file OggDemuxPacketSourceFilter.cpp.

References OggStreamMapper::getPinByIndex(), and mStreamMapper.

Referenced by notifyPinConnected().

Here is the call graph for this function:

int OggDemuxPacketSourceFilter::GetPinCount  )  [virtual]
 

Definition at line 369 of file OggDemuxPacketSourceFilter.cpp.

References mStreamMapper, and OggStreamMapper::numPins().

Referenced by notifyPinConnected().

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::GetPositions LONGLONG *  pCurrent,
LONGLONG *  pStop
[virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 681 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::GetPreroll LONGLONG *  pllPreroll  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 713 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::GetRate double *  dRate  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 707 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::GetStopPosition LONGLONG *  pStop  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 612 of file OggDemuxPacketSourceFilter.cpp.

References AutoOggChainGranuleSeekTable::enabled(), AutoOggChainGranuleSeekTable::fileDuration(), and mSeekTable.

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::GetTimeFormat GUID *  pFormat  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 608 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::IsFormatSupported const GUID *  pFormat  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 585 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::IsUsingTimeFormat const GUID *  pFormat  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 720 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::Load LPCOLESTR  inFileName,
const AM_MEDIA_TYPE *  inMediaType
[virtual]
 

Definition at line 395 of file OggDemuxPacketSourceFilter.cpp.

References mFileName, and SetUpPins().

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::NonDelegatingQueryInterface REFIID  riid,
void **  ppv
 

Definition at line 71 of file OggDemuxPacketSourceFilter.cpp.

void OggDemuxPacketSourceFilter::notifyPinConnected  )  [virtual]
 

Definition at line 466 of file OggDemuxPacketSourceFilter.cpp.

References AutoOggChainGranuleSeekTable::addStream(), OggStreamMapper::allStreamsReady(), AutoOggChainGranuleSeekTable::buildTable(), OggDemuxPacketSourcePin::getDecoderInterface(), GetPin(), GetPinCount(), OggDemuxPacketSourcePin::getSerialNo(), mFileName, mSeekTable, and mStreamMapper.

Referenced by OggDemuxPacketSourcePin::CompleteConnect().

Here is the call graph for this function:

bool OggDemuxPacketSourceFilter::notifyStreamBaseTime __int64  inStreamBaseTime  )  [virtual]
 

Definition at line 734 of file OggDemuxPacketSourceFilter.cpp.

References mGlobalBaseTime.

STDMETHODIMP OggDemuxPacketSourceFilter::Pause void   ) 
 

Definition at line 150 of file OggDemuxPacketSourceFilter.cpp.

References THREAD_RUN.

STDMETHODIMP OggDemuxPacketSourceFilter::QueryPreferredFormat GUID *  pFormat  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 599 of file OggDemuxPacketSourceFilter.cpp.

bool BasicSeekPassThrough::ReleaseDelegate  )  [inherited]
 

Definition at line 75 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

Referenced by AbstractTransformOutputPin::BreakConnect(), AbstractTransformInputPin::BreakConnect(), OggMuxInputPin::BreakConnect(), TheoraDecodeOutputPin::BreakConnect(), TheoraDecodeInputPin::BreakConnect(), and AbstractTransformOutputPin::~AbstractTransformOutputPin().

void OggDemuxPacketSourceFilter::removeMatchingBufferedPages unsigned long  inSerialNo  ) 
 

Definition at line 352 of file OggDemuxPacketSourceFilter.cpp.

References mBufferedPages.

Referenced by OggDemuxPacketSourcePin::CompleteConnect().

void OggDemuxPacketSourceFilter::resetStream  )  [protected]
 

Definition at line 237 of file OggDemuxPacketSourceFilter.cpp.

References IFilterDataSource::clear(), OggDataBuffer::clearData(), IFilterDataSource::close(), DataSourceFactory::createDataSource(), mDataSource, mDemuxLock, mFileName, mJustReset, mOggBuffer, mSourceFileLock, IFilterDataSource::open(), and IFilterDataSource::seek().

Referenced by DeliverBeginFlush(), and DeliverEOS().

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::Run REFERENCE_TIME  tStart  ) 
 

Definition at line 142 of file OggDemuxPacketSourceFilter.cpp.

bool BasicSeekPassThrough::SetDelegate IMediaSeeking *  inDelegate  )  [inherited]
 

Definition at line 83 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

Referenced by AnxMuxFilter::AnxMuxFilter(), AbstractTransformOutputPin::CompleteConnect(), AbstractTransformInputPin::CompleteConnect(), OggMuxInputPin::CompleteConnect(), AnxMuxInputPin::CompleteConnect(), TheoraDecodeOutputPin::CompleteConnect(), TheoraDecodeInputPin::CompleteConnect(), NativeFLACSourcePin::NativeFLACSourcePin(), OggDemuxPacketSourcePin::OggDemuxPacketSourcePin(), OggDemuxSourcePin::OggDemuxSourcePin(), OggMuxFilter::OggMuxFilter(), NativeFLACSourcePin::~NativeFLACSourcePin(), OggDemuxPacketSourcePin::~OggDemuxPacketSourcePin(), and OggMuxFilter::~OggMuxFilter().

STDMETHODIMP OggDemuxPacketSourceFilter::SetPositions LONGLONG *  pCurrent,
DWORD  dwCurrentFlags,
LONGLONG *  pStop,
DWORD  dwStopFlags
[virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 637 of file OggDemuxPacketSourceFilter.cpp.

References DeliverBeginFlush(), DeliverEndFlush(), DeliverNewSegment(), AutoOggChainGranuleSeekTable::enabled(), AutoOggChainGranuleSeekTable::fileDuration(), mDataSource, mSeekTable, mSourceFileLock, IFilterDataSource::seek(), AutoOggChainGranuleSeekTable::seekPos(), and OggGranuleSeekTable::tSeekPair.

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::SetRate double  dRate  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 701 of file OggDemuxPacketSourceFilter.cpp.

STDMETHODIMP OggDemuxPacketSourceFilter::SetTimeFormat const GUID *  pFormat  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 604 of file OggDemuxPacketSourceFilter.cpp.

HRESULT OggDemuxPacketSourceFilter::SetUpPins  )  [protected, virtual]
 

Definition at line 284 of file OggDemuxPacketSourceFilter.cpp.

References OggDataBuffer::clearData(), DataSourceFactory::createDataSource(), OggDataBuffer::feed(), IFilterDataSource::isEOF(), IFilterDataSource::isError(), mDataSource, mDemuxLock, mFileName, mOggBuffer, mSourceFileLock, IFilterDataSource::open(), IFilterDataSource::read(), OggDataBuffer::registerVirtualCallback(), IFilterDataSource::seek(), SETUP_BUFFER_SIZE, and IFilterDataSource::shouldRetryAt().

Referenced by Load().

Here is the call graph for this function:

STDMETHODIMP OggDemuxPacketSourceFilter::Stop void   ) 
 

Definition at line 164 of file OggDemuxPacketSourceFilter.cpp.

References DeliverBeginFlush(), DeliverEndFlush(), and THREAD_EXIT.

Here is the call graph for this function:

CCritSec* OggDemuxPacketSourceFilter::streamLock  )  [inline]
 

Definition at line 114 of file OggDemuxPacketSourceFilter.h.

DWORD OggDemuxPacketSourceFilter::ThreadProc void   )  [virtual]
 

Definition at line 445 of file OggDemuxPacketSourceFilter.cpp.

References DataProcessLoop(), THREAD_EXIT, and THREAD_RUN.

Here is the call graph for this function:


Member Data Documentation

vector<OggPage*> OggDemuxPacketSourceFilter::mBufferedPages [protected]
 

Definition at line 145 of file OggDemuxPacketSourceFilter.h.

Referenced by acceptOggPage(), getMatchingBufferedPages(), and removeMatchingBufferedPages().

IFilterDataSource* OggDemuxPacketSourceFilter::mDataSource [protected]
 

Definition at line 148 of file OggDemuxPacketSourceFilter.h.

Referenced by DataProcessLoop(), resetStream(), SetPositions(), SetUpPins(), and ~OggDemuxPacketSourceFilter().

CCritSec* OggDemuxPacketSourceFilter::mDemuxLock [protected]
 

Definition at line 137 of file OggDemuxPacketSourceFilter.h.

Referenced by DataProcessLoop(), OggDemuxPacketSourceFilter(), resetStream(), and SetUpPins().

wstring OggDemuxPacketSourceFilter::mFileName [protected]
 

Definition at line 140 of file OggDemuxPacketSourceFilter.h.

Referenced by GetCurFile(), Load(), notifyPinConnected(), resetStream(), and SetUpPins().

__int64 OggDemuxPacketSourceFilter::mGlobalBaseTime [protected]
 

Definition at line 157 of file OggDemuxPacketSourceFilter.h.

Referenced by notifyStreamBaseTime().

HRESULT BasicSeekPassThrough::mHR [protected, inherited]
 

Reimplemented in FLACEncodeInputPin, OggRawAudioInserterInputPin, SpeexEncodeInputPin, TheoraEncodeInputPin, VorbisDecodeInputPin, VorbisEncodeInputPin, OggMuxFilter, AbstractTransformInputPin, and AbstractTransformOutputPin.

Definition at line 76 of file BasicSeekPassThrough.h.

bool OggDemuxPacketSourceFilter::mJustReset [protected]
 

Definition at line 154 of file OggDemuxPacketSourceFilter.h.

Referenced by DataProcessLoop(), and resetStream().

OggDataBuffer OggDemuxPacketSourceFilter::mOggBuffer [protected]
 

Definition at line 147 of file OggDemuxPacketSourceFilter.h.

Referenced by DataProcessLoop(), resetStream(), and SetUpPins().

OggPage* OggDemuxPacketSourceFilter::mPendingPage [protected]
 

Definition at line 144 of file OggDemuxPacketSourceFilter.h.

IMediaSeeking* BasicSeekPassThrough::mSeekDelegate [protected, inherited]
 

Definition at line 75 of file BasicSeekPassThrough.h.

Referenced by BasicSeekPassThrough::BasicSeekPassThrough(), BasicSeekPassThrough::CheckCapabilities(), BasicSeekPassThrough::ConvertTimeFormat(), BasicSeekPassThrough::GetAvailable(), BasicSeekPassThrough::GetCapabilities(), BasicSeekPassThrough::GetCurrentPosition(), BasicSeekPassThrough::GetDuration(), BasicSeekPassThrough::GetPositions(), BasicSeekPassThrough::GetPreroll(), BasicSeekPassThrough::GetRate(), BasicSeekPassThrough::GetStopPosition(), BasicSeekPassThrough::GetTimeFormat(), BasicSeekPassThrough::IsFormatSupported(), BasicSeekPassThrough::IsUsingTimeFormat(), BasicSeekPassThrough::QueryPreferredFormat(), BasicSeekPassThrough::ReleaseDelegate(), BasicSeekPassThrough::SetDelegate(), BasicSeekPassThrough::SetPositions(), BasicSeekPassThrough::SetRate(), BasicSeekPassThrough::SetTimeFormat(), and BasicSeekPassThrough::~BasicSeekPassThrough().

DWORD BasicSeekPassThrough::mSeekingCap [protected, inherited]
 

Definition at line 77 of file