00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00026 #ifndef __PDF_FILE_HEADER_INCLUDED__
00027 #define __PDF_FILE_HEADER_INCLUDED__
00028 
00029 #include <boost/smart_ptr.hpp>
00030 #include <vector>
00031 
00032 #ifndef __PDF_OBJECT_HEADER_INCLUDED__
00033 #include "Object.hh"
00034 #endif
00035 
00036 namespace pdf { namespace core {
00037 
00046 class CFile
00047 {
00048 private :
00050     typedef std::vector<boost::shared_ptr<CRefObj> > CObjVec ;
00051     
00053     CObjVec m_objects ;
00054 
00055 public :
00056     typedef CObjVec::const_iterator iterator ;       
00057     typedef CObjVec::value_type     value_type ;     
00058 
00059 public :
00060     CFile( ) ;
00061     ~CFile( ) ;
00062     
00063     const CObjRef AddObj( CObject *object ) ;
00064 
00065     std::ostream& Write( std::ostream& file, const CObjRef& catalog,
00066                          const CObjRef *doc_info ) const ;
00067 
00068     CObject* operator[]( const CObjRef& ref ) ;
00069     const CObject* operator[]( const CObjRef& ref ) const ;
00070 } ;
00071 
00072 } } 
00073 
00074 #endif