1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>paintlib: plfilesrc.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Compound List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Compound Members</a></div>
<h1>plfilesrc.h</h1><div class="fragment"><pre>00001 <span class="comment">/*</span>
00002 <span class="comment">/--------------------------------------------------------------------</span>
00003 <span class="comment">|</span>
00004 <span class="comment">| $Id: plfilesrc_8h-source.html,v 1.4 2004/09/15 15:26:29 uzadow Exp $</span>
00005 <span class="comment">|</span>
00006 <span class="comment">| Copyright (c) 1996-2002 Ulrich von Zadow</span>
00007 <span class="comment">|</span>
00008 <span class="comment">\--------------------------------------------------------------------</span>
00009 <span class="comment">*/</span>
00010
00011 <span class="preprocessor">#ifndef INCL_PLFILESRC</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define INCL_PLFILESRC</span>
00013 <span class="preprocessor"></span>
00014 <span class="preprocessor">#ifndef INCL_PLDATASRC</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#include "pldatasrc.h"</span>
00016 <span class="preprocessor">#endif</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "config.h"</span>
00019
00020
00021 <span class="preprocessor">#ifdef _WINDOWS</span>
00022 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> *HANDLE;
00023 <span class="preprocessor">#endif</span>
00024 <span class="preprocessor"></span>
00025 <span class="preprocessor">#include <stdio.h></span>
00026
00027 <span class="keyword">class </span><a class="code" href="classPLIProgressNotification.html">PLIProgressNotification</a>;
00028 <span class="comment"></span>
00029 <span class="comment">//! This is a class which takes a file as a source of picture data.</span>
<a name="l00030"></a><a class="code" href="classPLFileSource.html">00030</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classPLFileSource.html">PLFileSource</a> : <span class="keyword">public</span> <a class="code" href="classPLDataSource.html">PLDataSource</a>
00031 {
00032
00033 <span class="keyword">public</span>:<span class="comment"></span>
00034 <span class="comment"> //!</span>
00035 <span class="comment"></span> <a class="code" href="classPLFileSource.html">PLFileSource</a>
00036 ( <a class="code" href="classPLIProgressNotification.html">PLIProgressNotification</a> * pNotification = NULL
00037 );
00038 <span class="comment"></span>
00039 <span class="comment"> //!</span>
00040 <span class="comment"></span> <span class="keyword">virtual</span> ~<a class="code" href="classPLFileSource.html">PLFileSource</a>
00041 ();
00042 <span class="comment"></span>
00043 <span class="comment"> //!</span>
00044 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> Open
00045 ( <span class="keyword">const</span> <span class="keywordtype">char</span> * pszFName
00046 );
00047 <span class="preprocessor">#ifdef _WINDOWS</span>
00048 <span class="preprocessor"></span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> OpenW
00049 ( <span class="keyword">const</span> <span class="keywordtype">wchar_t</span> * pszwFName
00050 );
00051 <span class="preprocessor">#endif</span>
00052 <span class="preprocessor"></span><span class="comment"></span>
00053 <span class="comment"> //!</span>
00054 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Close
00055 ();
00056
00057 <span class="keyword">virtual</span> PLBYTE * <a class="code" href="classPLFileSource.html#a4">ReadNBytes</a>
00058 ( <span class="keywordtype">int</span> n
00059 );
00060 <span class="comment"></span>
00061 <span class="comment"> //! Read but don't advance file pointer.</span>
00062 <span class="comment"></span> <span class="keyword">virtual</span> PLBYTE * <a class="code" href="classPLFileSource.html#a5">GetBufferPtr</a>
00063 ( <span class="keywordtype">int</span> MinBytesInBuffer
00064 );
00065
00066 <span class="keyword">virtual</span> PLBYTE * <a class="code" href="classPLFileSource.html#a6">ReadEverything</a>
00067 ();
00068 <span class="comment"></span>
00069 <span class="comment"> //!</span>
00070 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Seek
00071 ( <span class="keywordtype">int</span> n
00072 );
00073
00074 <span class="keyword">private</span>:
00075 <span class="keywordtype">void</span> isBufferOk (<span class="keywordtype">int</span> NumBytes);
00076 <span class="preprocessor">#ifdef _WINDOWS</span>
00077 <span class="preprocessor"></span> <span class="keywordtype">int</span> mapFileHandle();
00078 <span class="keywordtype">int</span> getLastPLError();
00079
00080 HANDLE m_hf; <span class="comment">// File handle.</span>
00081 HANDLE m_hm; <span class="comment">// Handle to file-mapping object.</span>
00082 <span class="preprocessor">#else</span>
00083 <span class="preprocessor"></span><span class="preprocessor"> #ifdef HAVE_MMAP</span>
00084 <span class="preprocessor"></span>
00085 <span class="preprocessor"> #else </span>
00086 <span class="preprocessor"></span> <span class="keywordtype">bool</span> bytesAvailable
00087 ( <span class="keywordtype">int</span> n
00088 );
00089
00090 <span class="keywordtype">void</span> fillBuffer
00091 ( <span class="keywordtype">int</span> n = 4096
00092 );
00093
00094 FILE * m_pFile;
00095 PLBYTE * m_pBuffer;
00096
00097 PLBYTE * m_pReadPos;
00098 <span class="keywordtype">int</span> m_BytesReadFromFile;
00099 <span class="preprocessor"> #endif</span>
00100 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00101 <span class="preprocessor"></span> PLBYTE * m_pStartData;
00102 PLBYTE * m_pCurPos;
00103 };
00104
00105 <span class="preprocessor">#endif</span>
00106 <span class="preprocessor"></span><span class="comment">/*</span>
00107 <span class="comment">/--------------------------------------------------------------------</span>
00108 <span class="comment">|</span>
00109 <span class="comment">| $Log: plfilesrc_8h-source.html,v $
00109 <span class="comment">| Revision 1.4 2004/09/15 15:26:29 uzadow
00109 <span class="comment">| Linux compatibility changes, doc update.
00109 <span class="comment">|</span>
00110 <span class="comment">| Revision 1.10 2004/09/11 12:41:35 uzadow</span>
00111 <span class="comment">| removed plstdpch.h</span>
00112 <span class="comment">|</span>
00113 <span class="comment">| Revision 1.9 2004/08/20 14:39:37 uzadow</span>
00114 <span class="comment">| Added rle format to sgi decoder. Doesn't work yet, though.</span>
00115 <span class="comment">|</span>
00116 <span class="comment">| Revision 1.8 2003/11/22 13:11:34 uzadow</span>
00117 <span class="comment">| Added memory-mapped file support for linux</span>
00118 <span class="comment">|</span>
00119 <span class="comment">| Revision 1.7 2003/08/03 12:36:56 uzadow</span>
00120 <span class="comment">| Added unicode support; fixed some header includes.</span>
00121 <span class="comment">|</span>
00122 <span class="comment">| Revision 1.6 2003/08/03 12:03:20 uzadow</span>
00123 <span class="comment">| Added unicode support; fixed some header includes.</span>
00124 <span class="comment">|</span>
00125 <span class="comment">| Revision 1.5 2003/04/20 22:20:49 uzadow</span>
00126 <span class="comment">| Added check for errors reading memory-mapped files.</span>
00127 <span class="comment">|</span>
00128 <span class="comment">| Revision 1.4 2002/03/31 13:36:41 uzadow</span>
00129 <span class="comment">| Updated copyright.</span>
00130 <span class="comment">|</span>
00131 <span class="comment">| Revision 1.3 2001/10/06 22:37:08 uzadow</span>
00132 <span class="comment">| Linux compatibility.</span>
00133 <span class="comment">|</span>
00134 <span class="comment">| Revision 1.2 2001/09/16 20:57:17 uzadow</span>
00135 <span class="comment">| Linux version name prefix changes</span>
00136 <span class="comment">|</span>
00137 <span class="comment">| Revision 1.1 2001/09/16 19:03:22 uzadow</span>
00138 <span class="comment">| Added global name prefix PL, changed most filenames.</span>
00139 <span class="comment">|</span>
00140 <span class="comment">| Revision 1.4 2001/09/13 20:46:45 uzadow</span>
00141 <span class="comment">| Removed 4096-byte limit for fillBuffer that was causing PLPNGEncoder</span>
00142 <span class="comment">| to fail under Linux.</span>
00143 <span class="comment">|</span>
00144 <span class="comment">|</span>
00145 <span class="comment">\--------------------------------------------------------------------</span>
00146 <span class="comment">*/</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Sep 13 16:16:40 2004 for paintlib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
</a>1.3.2 </small></address>
</body>
</html>
|