Recognizes if input is ogg or not.
[xiph.git] / oggdsf / docs / design_patterns.txt
blob8435beb42f1f19f1b0bc93b8976a26282d230f3f
1 Examples of Design patterns in Oggdsf\r
2 =====================================\r
3 \r
4 Builder Pattern         - Used in WinCMMLParser. This builds up the tag objects(libCMMLTags) via\r
5                                 MSXML.\r
6 Prototype Pattern       - Used in libCMMLTags to provide "virtual constructors" to allow a\r
7                                 pointer to the base type (prototype) to clone the actual concrete\r
8                                 instance of itself.\r
9 Adapter Pattern         - Used in the .NET libraries to expose unmanaged code components.\r
10 Ambassador Pattern      - Used in the callback proxy classes (eg. CMMLCallbackProxy) to proxy a callback\r
11                                 from unmanaged code through to managed code.\r
12 Abstract Factory Pattern- Used in the OggStreamFactory and DataSourceFactory, to create\r
13                                 various concrete ogg streams or data sources (file, http etc)\r
14 Facade Pattern          - Used to hide complexity of directshow from .NET managed clients (DSPlay)\r
15 Template Method Pattern - used in all the AbstractAudioDecoder etc classes allowing hooks to derived\r
16                                 classes to provide their own codec specific algorithms.\r
17 Command Pattern         - Used in the StreamMappers. The client issues requests to the StreamMapper\r
18                                 which executes the request on the appropriate object (ie acceptOggPage)\r
20                                 \r
21