#include <stdlib.h>
#include <stdio.h>
#include <memory.h>
#include <assert.h>
#include "stl.h"
#include "xmltkobj.h"
Go to the source code of this file.
Defines | |
#define | ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0])) |
#define | min(a, b) (((a) < (b)) ? (a) : (b)) |
#define | max(a, b) (((a) > (b)) ? (a) : (b)) |
#define | ATOMICRELEASE(punk) { if (punk) { (punk)->Release(); (punk) = NULL; } } |
#define | myassert(b) |
Functions | |
bool | CreateFileStream (RCLIID rcliid, void **ppvObj) |
bool | CreateMemoryStream (RCLIID rcliid, void **ppvObj) |
bool | CreateTypeFilter (RCLIID rcliid, void **ppvObj) |
bool | CreateTSAX2Nil (RCLIID rcliid, void **ppvObj) |
IClassFactoryCL * | CreateXPathSMFactory (char *pszXPath) |
BOOL | IsEqualCLIID (const CLIID *riid1, const CLIID *riid2) |
bool | freadMultiByteUINT (IStream *pstm, unsigned int *puInt) |
void | fwriteMultiByteUINT (IStream *pstm, unsigned int uInt) |
void | funread (void *buffer, size_t size, size_t count, FILE *stream) |
int | mystrcmp (char *psz1, char *psz2) |
char * | mystrdup (char *psz) |
size_t | mystrlen (char *psz) |
int | QueryProcessMemoryUsage () |
void | ParseUnknownStream (IStream *pstm, ITSAXContentHandler *pch) |
ITSAXContentHandler * | CreateStdoutStream (bool bBinary) |
IFileStream * | _CreateFileStream (char *psz) |
bool | IUnknownCL_SetHandler (IUnknownCL *punk, IUnknownCL *punkHandler) |
Variables | |
ITokenTable * | g_ptt |
|
Definition at line 25 of file xmltk.h. Referenced by QueryProcessMemoryUsage(), and fwriteMultiByteUINT().
|
|
|
|
Definition at line 27 of file xmltk.h. Referenced by BXMLOutput::characters().
|
|
|
|
Definition at line 68 of file xmltk.h. Referenced by CTokenMap::AddMapping(), and QueryProcessMemoryUsage().
|
|
Definition at line 189 of file filestream.cpp. Referenced by BXMLOutput::BXMLOutput(), _CreateFileStream(), and _PointToStdout().
00190 { 00191 bool bRet = false; 00192 00193 CFileStream* pfs = new CFileStream(); 00194 if (pfs) 00195 { 00196 bRet = pfs->QueryInterface(riid, ppvObj); 00197 pfs->Release(); 00198 } 00199 00200 return bRet; 00201 } |
|
Definition at line 250 of file memstream.cpp. 00251 { 00252 bool bRet = false; 00253 CMemoryStream* pms = new CMemoryStream(); 00254 if (pms) 00255 { 00256 bRet = pms->QueryInterface(riid, ppvObj); 00257 pms->Release(); 00258 } 00259 00260 return bRet; 00261 } |
|
|
|
|
|
|
|
|
|
Definition at line 238 of file util.cpp. 00239 { 00240 ISetHandler* psh; 00241 bool bRet = punk->QueryInterface(&IID_ISetHandler, (void**)&psh); 00242 if (bRet) 00243 { 00244 bRet = psh->SetHandler(punkHandler); 00245 psh->Release(); 00246 } 00247 return bRet; 00248 } |
|
Definition at line 9 of file util.cpp. 00010 { 00011 return (memcmp(riid1, riid2, sizeof(*riid1)) == 0); 00012 } |
|
|
|
Definition at line 149 of file util.cpp. 00150 { 00151 int cbUsed = 0; 00152 00153 #ifdef WIN32 00154 myassert(0); // to be implemented 00155 #else 00156 00157 char szBuf[4096]; 00158 sprintf(szBuf, "/proc/%d/stat", getpid()); 00159 szBuf[ARRAYSIZE(szBuf)-1] = 0; 00160 00161 FILE *pfile = fopen(szBuf, "r"); 00162 if (pfile) 00163 { 00164 // 00165 // my psychic powers tell me that the memory usage stat 00166 // is the 23rd token 00167 // 00168 fread(szBuf, sizeof(szBuf)-1, 1, pfile); 00169 szBuf[ARRAYSIZE(szBuf)-1] = 0; 00170 00171 char *psz = szBuf; 00172 int i; 00173 for (i = 0; i < 22; i++) 00174 { 00175 psz = strchr(psz, ' ') + 1; 00176 } 00177 00178 cbUsed = bytetok(strtoul(psz, NULL, 10)); 00179 00180 fclose(pfile); 00181 } 00182 #endif 00183 00184 return cbUsed; 00185 } |
|
Definition at line 213 of file util.cpp. 00214 { 00215 // 00216 // create a file stream object for this file 00217 // 00218 IFileStream *pstm = NULL; 00219 if (CreateFileStream(&IID_IFileStream, (void**)&pstm)) 00220 { 00221 if (psz) 00222 { 00223 if (pstm->OpenFile(psz, "r") == false) 00224 { 00225 fprintf(stderr, "error opening %s for read\n", psz); 00226 pstm->Release(); 00227 pstm = NULL; 00228 } 00229 } 00230 else 00231 { 00232 pstm->SetFile(stdin); 00233 } 00234 } 00235 return pstm; 00236 } |
|
Definition at line 41 of file util.cpp. 00042 { 00043 *puInt = 0; 00044 int i; 00045 00046 // 00047 // use a loop to guard against overflow 00048 // 00049 for (i = 0; i < 5; i++) // 5 = ceil(32/7) 00050 { 00051 int ch = pstm->ReadChar(); 00052 if (ch == EOF) 00053 { 00054 return false; 00055 } 00056 else 00057 { 00058 *puInt <<= 7; 00059 *puInt |= (ch & c_chMask); 00060 if (!(ch & c_chContinue)) 00061 { 00062 return true; 00063 } 00064 } 00065 } 00066 00067 return false; 00068 } |
|
Definition at line 70 of file util.cpp. 00071 { 00072 for (int i = count - 1; i >= 0; i--) 00073 { 00074 for (int j = (size/sizeof(char)) - 1; j >= 0; j--) 00075 { 00076 void *bufferT = (void*)((size_t)buffer + (size*i)); 00077 int ch = ((char*)bufferT)[j]; 00078 ungetc(ch, stream); 00079 } 00080 } 00081 } |
|
Definition at line 18 of file util.cpp. 00019 { 00020 unsigned char rgch[5]; // 5 = ceil(32/7) 00021 int i; 00022 00023 for (i = 0; i < ARRAYSIZE(rgch); i++) 00024 { 00025 rgch[i] = (uInt & c_chMask) | c_chContinue; 00026 uInt >>= 7; 00027 if (uInt <= 0) 00028 { 00029 break; 00030 } 00031 } 00032 00033 rgch[0] &= ~c_chContinue; 00034 00035 for ( ; i >= 0; i--) 00036 { 00037 pstm->WriteChar(rgch[i]); 00038 } 00039 } |
|
Definition at line 100 of file util.cpp. Referenced by tokeninfo_cmpeq::operator()().
00101 { 00102 if (psz1 == NULL) 00103 { 00104 return psz2 == NULL ? 0 : 1; 00105 } 00106 else if (psz2 == NULL) 00107 { 00108 return -1; 00109 } 00110 else 00111 { 00112 return strcmp(psz1, psz2); 00113 } 00114 } |
|
Definition at line 116 of file util.cpp. 00117 { 00118 if (psz == NULL) 00119 { 00120 return NULL; 00121 } 00122 else 00123 { 00124 return strdup(psz); 00125 } 00126 } |
|
Definition at line 128 of file util.cpp. 00129 { 00130 if (psz) 00131 { 00132 return strlen(psz); 00133 } 00134 else 00135 { 00136 return 0; 00137 } 00138 } |
|
|