forward.h

Go to the documentation of this file.
00001 
00007 /*
00008  *  Copyright (c) 2003, Matt Beard
00009  *
00010  *  This software is provided 'as-is', without any express or implied warranty.
00011  *  In no event will the authors be held liable for any damages arising from
00012  *  the use of this software.
00013  *
00014  *  Permission is granted to anyone to use this software for any purpose,
00015  *  including commercial applications, and to alter it and redistribute it
00016  *  freely, subject to the following restrictions:
00017  *
00018  *    1. The origin of this software must not be misrepresented; you must
00019  *       not claim that you wrote the original software. If you use this
00020  *       software in a product, an acknowledgment in the product
00021  *       documentation would be appreciated but is not required.
00022  *  
00023  *    2. Altered source versions must be plainly marked as such, and must
00024  *       not be misrepresented as being the original software.
00025  *  
00026  *    3. This notice may not be removed or altered from any source
00027  *       distribution.
00028  */
00029 
00030 #ifndef MXFLIB__FORWARD_H
00031 #define MXFLIB__FORWARD_H
00032 
00033 // Many of the declarations are of smart pointers
00034 #include <mxflib/smartptr.h>
00035 
00036 // STL includes
00037 #include <list>
00038 
00039 
00040 namespace mxflib 
00041 {
00042     class MXFFile;
00043     typedef SmartPtr<MXFFile> MXFFilePtr;                   
00044     typedef ParentPtr<MXFFile> MXFFileParent;               
00045 
00046     // Forward declare so the class can include pointers to itself
00047     class KLVObject;
00048 
00050     typedef SmartPtr<KLVObject> KLVObjectPtr;
00051 
00052     // We need access to the MDValue class
00053     class MDValue;
00054 //
00055 //  //! A smart pointer to an MDValue object
00056 //  typedef SmartPtr<MDValue> MDValuePtr;
00057 
00059     class MDValuePtr : public SmartPtr<MDValue>
00060     {
00061     public:
00062         MDValuePtr() : SmartPtr<MDValue>() {};
00063         MDValuePtr(IRefCount<MDValue> * ptr) : SmartPtr<MDValue>(ptr) {};
00064 
00066         MDValuePtr operator[](int Index);
00067 
00069         MDValuePtr operator[](const std::string ChildName);
00070     };
00071 
00073     typedef std::list<MDValuePtr> MDValueList;
00074 
00075     /* Forward refs for index tables */
00076     
00077     class IndexTable;
00078 
00080     typedef SmartPtr<IndexTable> IndexTablePtr;
00081     
00083     typedef ParentPtr<IndexTable> IndexTableParent;
00084 
00085     class IndexSegment;
00086 
00088     typedef SmartPtr<IndexSegment> IndexSegmentPtr;
00089 
00091     typedef std::list<IndexSegmentPtr> IndexSegmentList;
00092 
00093 
00094     /* SymbolSpace pointer types */
00095 
00096     class SymbolSpace;
00097 
00099     typedef SmartPtr<SymbolSpace> SymbolSpacePtr;
00100 
00102     typedef ParentPtr<SymbolSpace> SymbolSpaceParent;
00103 
00105     typedef std::list<SymbolSpacePtr> SymbolSpaceList;
00106 
00108     typedef std::list<SymbolSpaceParent> SymbolSpaceParentList;
00109 
00111     typedef std::map<std::string, SymbolSpacePtr> SymbolSpaceMap;
00112 
00114     extern SymbolSpacePtr MXFLibSymbols;
00115 }
00116 
00117 
00118 #endif // MXFLIB__FORWARD_H

Generated on Mon Apr 2 15:20:53 2007 for MXFLib by  doxygen 1.5.1-p1