![]() |
00001 //--------------------------------------------------------------------------------------- 00002 // Copyright (c) 2001-2010 by PDFTron Systems Inc. All Rights Reserved. 00003 // Consult legal.txt regarding legal and license information. 00004 //--------------------------------------------------------------------------------------- 00005 00006 #ifndef H_CPPFilterFilterWriter 00007 #define H_CPPFilterFilterWriter 00008 #include <C/Common/TRN_Types.h> 00009 #include <C/Filters/TRN_FilterWriter.h> 00010 #include <Filters/Filter.h> 00011 #include <Filters/FilterReader.h> 00012 00013 namespace pdftron { 00014 namespace Filters { 00015 00016 00029 class FilterWriter 00030 { 00031 public: 00032 00033 FilterWriter (); 00034 FilterWriter (Filter& filter); 00035 ~FilterWriter (); 00036 00041 void WriteUChar(UChar ch); 00042 00047 void WriteInt(Int16 num); 00048 void WriteInt(UInt16 num); 00049 void WriteInt(Int32 num); 00050 void WriteInt(UInt32 num); 00051 void WriteInt(Int64 num); 00052 void WriteInt(UInt64 num); 00053 00058 void WriteString(const std::string& str); 00059 00064 void WriteString(const char* str); 00065 00070 void WriteFilter(FilterReader& reader); 00071 00076 void WriteLine(const char* line, char eol = 0x0D); 00077 00082 size_t WriteBuffer(const char* buf, size_t buf_size); 00083 00087 void AttachFilter(Filter& filter); 00088 00092 Filter GetAttachedFilter(); 00093 00109 void Seek(ptrdiff_t offset, Filter::ReferencePos origin); 00110 00117 ptrdiff_t Tell (); 00118 00123 size_t Count (); 00124 00128 void Flush (); 00129 00133 void FlushAll (); 00134 00135 00136 //private: 00138 TRN_FilterWriter m_impl; 00140 }; 00141 00142 00143 00144 #include <Impl/FilterWriter.inl> 00145 00146 }; // namespace Filters 00147 }; // namespace pdftron 00148 00149 #endif 00150