メインページ | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcStream.h

#include "dkcOSIndependent.h"
#include "dkcMemoryStream.h"

dkcStream.hのインクルード依存関係図

Include dependency graph

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

Included by dependency graph

ソースコードを見る。

構成

struct  dkc_Stream
 汎用型ストリーム [詳細]


型定義

typedef dkc_Stream DKC_STREAM
 汎用型ストリーム

typedef int(WINAPI * DKC_STREAM_PROCESS_TYPE )(DKC_STREAM *p, void *buffer, size_t size, void *data)

列挙型

enum  edkcStream {
  edkcStreamSeekCurrent = SEEK_CUR, edkcStreamSeekEnd = SEEK_END, edkcStreamSeekSet = SEEK_SET, edkcStreamInitMemory = 1,
  edkcStreamInitFile = 2, edkcStreamDefaultEndian = 4, edkcStreamBigEndian = 8, edkcStreamLittleEndian = 16,
  edkcStreamProcessDefault = 32, edkcStreamProcessAsOrdered = 64, edkcStreamWriteErrorWhenEndianChange = 128
}

関数

DKC_EXTERN DKC_STREAM *WINAPI dkcAllocStream (UINT flag, const void *default_data, size_t size, const char *filename, const char *mode)
 ストリーム領域を得る。

DKC_EXTERN DKC_STREAM *WINAPI dkcAllocStreamMemoryType (UINT flag, const void *default_data, size_t size)
DKC_EXTERN DKC_STREAM *WINAPI dkcAllocStreamFileType (UINT flag, const char *filename, const char *mode)
DKC_EXTERN int WINAPI dkcFreeStream (DKC_STREAM **ptr)
 dkcAllocNewStream()で確保したストリーム領域を開放する

DKC_EXTERN int WINAPI dkcStreamSeek (DKC_STREAM *ptr, int offset, int origin)
 streamをシークする。fseekみたいなもの

DKC_EXTERN long WINAPI dkcStreamTell (DKC_STREAM *ptr)
 streamの位置を取得する。

DKC_EXTERN int WINAPI dkcStreamRead (DKC_STREAM *ptr, void *buffer, size_t size, size_t *readsize)
 streamをリードする。freadみたいなもの

DKC_EXTERN int WINAPI dkcStreamSwapRead16 (DKC_STREAM *ptr, void *buffer, size_t size, UINT flag, size_t *readsize)
DKC_EXTERN int WINAPI dkcStreamSwapRead32 (DKC_STREAM *ptr, void *buffer, size_t size, UINT flag, size_t *readsize)
DKC_EXTERN int WINAPI dkcStreamSwapRead64 (DKC_STREAM *ptr, void *buffer, size_t size, UINT flag, size_t *readsize)
DKC_EXTERN int WINAPI dkcStreamWrite (DKC_STREAM *ptr, const void *buffer, size_t size)
 streamをライトする。fwriteみたいなもの

DKC_EXTERN int WINAPI dkcStreamWrite16 (DKC_STREAM *ptr, const void *buffer, size_t size)
DKC_EXTERN int WINAPI dkcStreamWrite32 (DKC_STREAM *ptr, const void *buffer, size_t size)
DKC_EXTERN int WINAPI dkcStreamWrite64 (DKC_STREAM *ptr, const void *buffer, size_t size)
DKC_EXTERN int WINAPI dkcStreamProcess (DKC_STREAM *ptr, void *buffer, size_t size, DKC_STREAM_PROCESS_TYPE write_t, void *data)
DKC_EXTERN int WINAPI dkcStreamProcess16 (DKC_STREAM *ptr, void *buffer, size_t size, DKC_STREAM_PROCESS_TYPE write_t, void *data)
DKC_EXTERN int WINAPI dkcStreamProcess32 (DKC_STREAM *ptr, void *buffer, size_t size, DKC_STREAM_PROCESS_TYPE write_t, void *data)
DKC_EXTERN int WINAPI dkcStreamProcess64 (DKC_STREAM *ptr, void *buffer, size_t size, DKC_STREAM_PROCESS_TYPE write_t, void *data)
DKC_EXTERN int WINAPI dkcStreamClear (DKC_STREAM *ptr)
 stream内をmemset(0)する。(seek位置も最初に戻される。


型定義

typedef struct dkc_Stream DKC_STREAM
 

汎用型ストリーム

参照元 dkcAllocStream(), dkcAllocStreamFileType(), dkcAllocStreamMemoryType(), dkcCircularStreamToBuffer(), dkcFreeStream(), dkcOpenFileWithSignature(), dkcStreamClear(), dkcStreamProcess(), dkcStreamProcess16(), dkcStreamProcess32(), dkcStreamProcess64(), dkcStreamRead(), dkcStreamReadObayAnOrder(), dkcStreamSeek(), dkcStreamTell(), dkcStreamWrite(), dkcStreamWrite16(), dkcStreamWrite32(), dkcStreamWrite64(), dkcStreamWriteObayAnOrder(), HeaderWrite(), ReadCallback(), SetStreamInfo(), StreamWrite(), と WriteCallback().

typedef int(WINAPI * DKC_STREAM_PROCESS_TYPE)(DKC_STREAM *p,void *buffer,size_t size,void *data)
 

引数:
p[in] DKC_STREAM *が入る
buffer[in][out] 場合によってin、outになる。バッファへのポインタ
size[in] bufferのサイズ
data[in] 独自データへのポインタを受け取る

dkcStream.h145 行で定義されています。

参照元 dkcStreamProcess(), dkcStreamProcess16(), dkcStreamProcess32(), と dkcStreamProcess64().


列挙型

enum edkcStream
 

列挙型の値:
edkcStreamSeekCurrent  今の位置からシーク
edkcStreamSeekEnd  最後の位置からシーク
edkcStreamSeekSet  最初の位置からシーク
edkcStreamInitMemory  バッファとして初期化
edkcStreamInitFile  バッファはfopenで初期化
edkcStreamDefaultEndian  エンディアンデフォルト
edkcStreamBigEndian  ビッグエンディアンモード
edkcStreamLittleEndian  リトルエンディアンモード
edkcStreamProcessDefault  dkcStreamRead() dkcStreamWrite()の挙動 指定したサイズ分読み込めない場合は返す
edkcStreamProcessAsOrdered  dkcStreamRead() dkcStreamWrite()の挙動 指定したサイズ分 処理を実行する (エラーの時だけ返す)
edkcStreamWriteErrorWhenEndianChange  dkcStreamRead() dkcStreamWrite()の挙動 明示的なエンディアンチェンジが出来ない書き込み、系関数にて エンディアンチェンジが必要だった時の場合はedk_Not_Satisfactoryを返すように指定

dkcStream.h38 行で定義されています。

00038                {
00040     edkcStreamSeekCurrent = SEEK_CUR,
00042     edkcStreamSeekEnd = SEEK_END,
00044     edkcStreamSeekSet = SEEK_SET,
00046     edkcStreamInitMemory = 1,
00048     edkcStreamInitFile = 2,
00050     edkcStreamDefaultEndian = 4,
00052     edkcStreamBigEndian = 8,
00054     edkcStreamLittleEndian = 16,
00056     edkcStreamProcessDefault = 32,
00058     edkcStreamProcessAsOrdered = 64,
00062     edkcStreamWriteErrorWhenEndianChange = 128,
00063 
00064 
00065 };


関数

DKC_EXTERN DKC_STREAM* WINAPI dkcAllocStream UINT  flag,
const void *  default_data,
size_t  size,
const char *  filename,
const char *  mode
 

ストリーム領域を得る。

引数:
flag[in] edkcStreamにある、初期化指定系のフラグを渡す(ストリームの種類とストリームのエンディアン)
default_data[in] ストリームに詰め込むバッファ別にNULLでもOK
size[in] ストリームの初期化時のサイズ
filename[in] edkcStreamInitFileをflagに渡した場合、その保存するファイルの名前 flagにedkcStreamInitFile以外の値を渡した場合はNULLでOK
mode[in] fopenのモード flagにedkcStreamInitFile以外の値を渡した場合はNULLでOK
戻り値:
DKC_STREAM *のストリームデータ。

dkcStream.c89 行で定義されています。

参照先 DKC_STREAM, dkcAllocate(), dkcAllocMemoryStream(), dkcFOpen(), dkcFree(), dkcStreamWrite(), DKUTIL_FAILED, edkcStreamInitFile, edkcStreamInitMemory, dkc_Stream::mMode, dkc_Stream::mSig, NULL, と SetStreamInfo().

00092 {
00093     
00094     DKC_STREAM *p;
00095     void *psig;
00096 
00097 
00098     p = dkcAllocate(sizeof(DKC_STREAM));
00099     if(NULL==p){
00100         return NULL;
00101     }
00102 
00103     if(DKUTIL_FAILED(SetStreamInfo(p,flag))){
00104         goto Error;
00105     }
00106 
00107     switch(p->mMode){
00108     case edkcStreamInitMemory:
00109         psig = (void *)dkcAllocMemoryStream(size);
00110         if(NULL==psig){
00111             goto Error;
00112         }
00113         //update    
00114         p->mSig = psig;
00115         //write default data
00116         dkcStreamWrite(p,default_data,size);
00117         break;
00118     case edkcStreamInitFile:
00119         psig = (void *)dkcFOpen(filename,mode);
00120         if(NULL==psig){
00121             goto Error;
00122         }
00123         //update
00124         p->mSig = psig;
00125         
00126         break;
00127     default:
00128         goto Error;
00129     }
00130 
00131     
00132     //p->mEndianMode = endianmode
00133 
00134     return p;
00135 Error:
00136     dkcFree(&p);
00137     return NULL;
00138 }

DKC_EXTERN DKC_STREAM* WINAPI dkcAllocStreamFileType UINT  flag,
const char *  filename,
const char *  mode
 

dkcStream.c83 行で定義されています。

参照先 DKC_STREAM, dkcAllocStream(), DKUTIL_FLAG_DOWN, DKUTIL_FLAG_UP, edkcStreamInitFile, edkcStreamInitMemory, と NULL.

参照元 dkcOpenFileWithSignature().

00083                                                                                           {
00084     DKUTIL_FLAG_DOWN(flag,edkcStreamInitMemory);
00085     DKUTIL_FLAG_UP(flag,edkcStreamInitFile);
00086     return dkcAllocStream(flag,NULL,0,filename,mode);
00087 }

DKC_EXTERN DKC_STREAM* WINAPI dkcAllocStreamMemoryType UINT  flag,
const void *  default_data,
size_t  size
 

dkcStream.c76 行で定義されています。

参照先 DKC_STREAM, dkcAllocStream(), DKUTIL_FLAG_DOWN, DKUTIL_FLAG_UP, edkcStreamInitFile, edkcStreamInitMemory, と NULL.

00076                                                                                            {
00077     DKUTIL_FLAG_DOWN(flag,edkcStreamInitFile);
00078     DKUTIL_FLAG_UP(flag,edkcStreamInitMemory);
00079     return dkcAllocStream(flag,default_data,size,NULL,NULL);
00080 
00081 }

DKC_EXTERN int WINAPI dkcFreeStream DKC_STREAM **  ptr  ) 
 

dkcAllocNewStream()で確保したストリーム領域を開放する

引数:
ptr[in][out] 削除するストリームデータ。入れたデータはNULLになる。
覚え書き:

dkcStream.c141 行で定義されています。

00141                                         {
00142     DKC_STREAM *t;
00143     if(NULL==p){
00144         return edk_FAILED;
00145     }
00146     t = *p;
00147     if(NULL==t){
00148         return edk_FAILED;
00149     }
00150 
00151     switch(t->mMode){
00152     case edkcStreamInitMemory:
00153         dkcFreeMemoryStream((DKC_MEMORYSTREAM **)&(t->mSig));
00154         break;
00155     case edkcStreamInitFile:
00156         dkcFClose((FILE **)&(t->mSig));
00157         break;
00158 #ifdef DEBUG
00159         default:
00160             dkcmNOT_ASSERT("dkcFreeStream FAILED");
00161 #endif
00162     }
00163     return dkcFree(p);
00164 }

DKC_EXTERN int WINAPI dkcStreamClear DKC_STREAM ptr  ) 
 

stream内をmemset(0)する。(seek位置も最初に戻される。

dkcStream.c531 行で定義されています。

00531                                           {
00532     //file size
00533     size_t fsize;
00534     //temp size
00535     size_t tsize;
00536     size_t write_size;
00537     FILE *fp;
00538     int r = edk_FAILED;
00539     char null_array[1024];
00540 
00541 
00542     switch(ptr->mMode){
00543     case edkcStreamInitMemory:
00544         r = dkcMemoryStreamClear( ptr->mSig );
00545         break;
00546     case edkcStreamInitFile:
00547         
00548         memset(null_array,0,sizeof(null_array));
00549         fp = ptr->mSig;
00550 
00551 
00552         fseek( fp, 0, SEEK_END ) ;
00553         fsize = ftell( fp ) ;
00554         fseek( fp, 0, SEEK_SET ) ;
00555         
00556         if(fsize > sizeof(null_array))
00557         {//ファイルのサイズがNULL配列より大きい場合
00558             
00559             tsize = 0;
00560             write_size = sizeof(null_array);
00561             for(;;){
00562                 
00563                 r = dkcStreamWrite(ptr,null_array,write_size);
00564                 
00565                 if(DKUTIL_FAILED(r)){
00566                     return r;
00567                 }
00568                 if(tsize >= fsize){
00569                     r = edk_SUCCEEDED;
00570                     break;
00571                 }
00572 
00573                 if(tsize + write_size > fsize){
00574                     write_size = fsize - tsize;
00575                 }else{
00576                     tsize += write_size;
00577 
00578                     //こいつはいらないけど一応・・・
00579                     write_size = sizeof(null_array);
00580                 }
00581             }
00582         }else{//ちっこいなら上書き上書き・・・
00583             r = dkcStreamWrite(ptr,null_array,fsize);
00584         }
00585 
00586         break;
00587     }
00588     return r;
00589 }

DKC_EXTERN int WINAPI dkcStreamProcess DKC_STREAM ptr,
void *  buffer,
size_t  size,
DKC_STREAM_PROCESS_TYPE  write_t,
void *  data
 

dkcStream.c408 行で定義されています。

参照先 DKC_STREAM, と DKC_STREAM_PROCESS_TYPE.

参照元 dkcFileWithSignatureWrite(), dkcFileWithSignatureWrite16(), dkcFileWithSignatureWrite32(), dkcFileWithSignatureWrite64(), と FileWithSignatureReadLogic().

00410 {
00411     return write_t(ptr,buffer,size,data);
00412 }

DKC_EXTERN int WINAPI dkcStreamProcess16 DKC_STREAM ptr,
void *  buffer,
size_t  size,
DKC_STREAM_PROCESS_TYPE  write_t,
void *  data
 

dkcStream.c416 行で定義されています。

参照先 DKC_STREAM, DKC_STREAM_PROCESS_TYPE, dkcReverseEndian16(), edk_ArgumentException, edk_FAILED, dkc_Stream::mChangeEndian, と NULL.

参照元 dkcStreamWrite16().

00417                                                                                                                         {
00418     int r;
00419     USHORT *pb;
00420     size_t elem_num,pause = 16;
00421     size_t i;
00422 
00423     if(size % pause != 0){
00424         return edk_ArgumentException;
00425     }
00426     if(ptr->mChangeEndian)
00427     {//エンディアンチェンジが必要
00428         pb = (USHORT *)malloc(size);
00429         if(NULL==pb){
00430             return edk_FAILED;
00431         }
00432         
00433         //メモリコピー
00434         memcpy(pb,buffer,size);
00435         elem_num = size / pause;
00436 
00437         //エンディアンをチェンジさせる。
00438         for(i=0;i<elem_num;i++){
00439             pb[i] = dkcReverseEndian16(pb[i]);
00440         }
00441         //書き込む
00442         r = write_t(ptr,pb,size,data);
00443 
00444         free(pb);
00445     }else{
00446         r = write_t(ptr,buffer,size,data);
00447     }
00448     return r;
00449 }

DKC_EXTERN int WINAPI dkcStreamProcess32 DKC_STREAM ptr,
void *  buffer,
size_t  size,
DKC_STREAM_PROCESS_TYPE  write_t,
void *  data
 

dkcStream.c450 行で定義されています。

参照先 DKC_STREAM, DKC_STREAM_PROCESS_TYPE, dkcReverseEndian32(), edk_ArgumentException, edk_FAILED, dkc_Stream::mChangeEndian, と NULL.

参照元 dkcStreamWrite32().

00451                                                                                                                         {
00452     int r;
00453     ULONG *pb;
00454     size_t elem_num,pause = 32;
00455     size_t i;
00456 
00457     if(size % pause != 0){
00458         return edk_ArgumentException;
00459     }
00460     if(ptr->mChangeEndian)
00461     {//エンディアンチェンジが必要
00462         pb = (ULONG *)malloc(size);
00463         if(NULL==pb){
00464             return edk_FAILED;
00465         }
00466         
00467         //メモリコピー
00468         memcpy(pb,buffer,size);
00469         elem_num = size / pause;
00470 
00471         //エンディアンをチェンジさせる。
00472         for(i=0;i<elem_num;i++){
00473             pb[i] = dkcReverseEndian32(pb[i]);
00474         }
00475         //書き込む
00476         r = write_t(ptr,pb,size,data);
00477 
00478         free(pb);
00479     }else{
00480         r = write_t(ptr,buffer,size,data);
00481     }
00482     return r;
00483 
00484 }

DKC_EXTERN int WINAPI dkcStreamProcess64 DKC_STREAM ptr,
void *  buffer,
size_t  size,
DKC_STREAM_PROCESS_TYPE  write_t,
void *  data
 

dkcStream.c493 行で定義されています。

参照先 DKC_STREAM, DKC_STREAM_PROCESS_TYPE, dkcReverseEndian64(), edk_ArgumentException, edk_FAILED, dkc_Stream::mChangeEndian, NULL, と ULONGLONG.

参照元 dkcStreamWrite64().

00494                                                                                                                         {
00495     int r;
00496     ULONGLONG *pb;
00497     size_t elem_num,pause = 64;
00498     size_t i;
00499 
00500     if(size % pause != 0){
00501         return edk_ArgumentException;
00502     }
00503     if(ptr->mChangeEndian)
00504     {//エンディアンチェンジが必要
00505         pb = (ULONGLONG *)malloc(size);
00506         if(NULL==pb){
00507             return edk_FAILED;
00508         }
00509         
00510         //メモリコピー
00511         memcpy(pb,buffer,size);
00512         elem_num = size / pause;
00513 
00514         //エンディアンをチェンジさせる。
00515         for(i=0;i<elem_num;i++){
00516             pb[i] = dkcReverseEndian64(pb[i]);
00517         }
00518         //書き込む
00519         r = write_t(ptr,pb,size,data);
00520 
00521         free(pb);
00522     }else{
00523         r = write_t(ptr,buffer,size,data);
00524     }
00525     return r;
00526 }

DKC_EXTERN int WINAPI dkcStreamRead DKC_STREAM ptr,
void *  buffer,
size_t  size,
size_t *  readsize
 

streamをリードする。freadみたいなもの

引数:
readsize[out] 実際に読んだサイズを返す。NULLを渡してもOK.
覚え書き:
指定したサイズ(size)よりもストリームバッファのサイズが小さかった場合 readsizeに実際に読んだサイズを入れます。
戻り値:
edkcStreamInitMemoryが指定されていた場合、 dkcMemoryStreamRead()を見てください。 edkcStreamInitFileが指定されていた場合、 ferror()だったらedk_FAILED , feof()だったらedk_BufferOverFlow,

dkcStream.c257 行で定義されています。

00257                                                                                               {
00258     int r = edk_FAILED;
00259     FILE *fp = ptr->mSig;
00260     size_t redsize = 0;
00261     if(NULL==readsize){
00262         readsize = &redsize;
00263     }
00264 
00265     //エンディアンチェンジ指定されているよ~~。
00266     /*if(flag & edkcStreamReadErrorWhenEndianChange){
00267         if(ptr->mChangeEndian){
00268             return edk_Not_Satisfactory;
00269         }
00270     }*/
00271 
00272     switch(ptr->mMode){
00273     case edkcStreamInitMemory:
00274         r = dkcMemoryStreamRead(ptr->mSig,
00275             buffer,size,readsize);
00276         break;
00277     case edkcStreamInitFile:
00278 
00279         if(ptr->mProcessMode & edkcStreamProcessDefault){
00280             *readsize = fread(buffer,1,size,fp);
00281             if(!ferror(fp)){
00282                 r = edk_SUCCEEDED;
00283             }
00284         }else{
00285             r = dkcStreamReadObayAnOrder(ptr,buffer,size,readsize);
00286         }
00287 
00288 
00289         break;
00290     }
00291     return r;
00292 }

DKC_EXTERN int WINAPI dkcStreamSeek DKC_STREAM ptr,
int  offset,
int  origin
 

streamをシークする。fseekみたいなもの

dkcStream.c169 行で定義されています。

00169                                                                {
00170     int r = edk_FAILED;
00171     switch(ptr->mMode){
00172     case edkcStreamInitMemory:
00173         r = dkcMemoryStreamSeek(ptr->mSig,offset,origin);
00174         break;
00175     case edkcStreamInitFile:
00176         r = fseek(ptr->mSig,offset,origin);
00177         break;
00178     }
00179     return r;
00180 
00181 }

DKC_EXTERN int WINAPI dkcStreamSwapRead16 DKC_STREAM ptr,
void *  buffer,
size_t  size,
UINT  flag,
size_t *  readsize
 

DKC_EXTERN int WINAPI dkcStreamSwapRead32 DKC_STREAM ptr,
void *  buffer,
size_t  size,
UINT  flag,
size_t *  readsize
 

DKC_EXTERN int WINAPI dkcStreamSwapRead64 DKC_STREAM ptr,
void *  buffer,
size_t  size,
UINT  flag,
size_t *  readsize
 

DKC_EXTERN long WINAPI dkcStreamTell DKC_STREAM ptr  ) 
 

streamの位置を取得する。

dkcStream.c184 行で定義されています。

参照先 DKC_STREAM, dkcMemoryStreamTell, edk_FAILED, edkcStreamInitFile, edkcStreamInitMemory, dkc_Stream::mMode, と dkc_Stream::mSig.

参照元 dkcCloseFileWithSignature(), dkcFileWithSignatureCheckCheat(), dkcFileWithSignatureRead(), と ReadEOFCheck().

00184                                           {
00185     int r = edk_FAILED;
00186     switch(ptr->mMode){
00187     case edkcStreamInitMemory:
00188         r =  dkcMemoryStreamTell(ptr->mSig);
00189     case edkcStreamInitFile:
00190         r = ftell(ptr->mSig);
00191     }
00192     return r;
00193     //dkcmNOT_ASSERT("dkcStreamTell failed");
00194 }

DKC_EXTERN int WINAPI dkcStreamWrite DKC_STREAM ptr,
const void *  buffer,
size_t  size
 

streamをライトする。fwriteみたいなもの

書き込み指定がこうなっているので・・・。

dkcStream.c340 行で定義されています。

00341 {
00342     int r = edk_FAILED;
00343 
00344     UINT proc_flag = ptr->mProcessMode;
00346     if(proc_flag & edkcStreamWriteErrorWhenEndianChange){
00347         if(ptr->mChangeEndian){
00348             return edk_Not_Satisfactory;
00349         }
00350     }
00351 
00352     switch(ptr->mMode){
00353     case edkcStreamInitMemory:
00354         r =  dkcMemoryStreamWrite(ptr->mSig,buffer,size);
00355         break;
00356     case edkcStreamInitFile:
00357         r = dkcStreamWriteObayAnOrder(ptr,buffer,size);
00358         break;
00359     }
00360 
00361     return r;
00362 }

DKC_EXTERN int WINAPI dkcStreamWrite16 DKC_STREAM ptr,
const void *  buffer,
size_t  size
 

dkcStream.c390 行で定義されています。

参照先 DKC_STREAM, dkcStreamProcess16(), NULL, と StreamWrite().

参照元 dkcFileWithSignatureWrite16().

00390                                                                             {
00391     return dkcStreamProcess16(ptr,(void *)buffer,size,StreamWrite,NULL);
00392 }

DKC_EXTERN int WINAPI dkcStreamWrite32 DKC_STREAM ptr,
const void *  buffer,
size_t  size
 

dkcStream.c394 行で定義されています。

参照先 DKC_STREAM, dkcStreamProcess32(), NULL, と StreamWrite().

参照元 dkcFileWithSignatureWrite32().

00394                                                                             {
00395     return dkcStreamProcess32(ptr,(void *)buffer,size,StreamWrite,NULL);
00396 
00397 }

DKC_EXTERN int WINAPI dkcStreamWrite64 DKC_STREAM ptr,
const void *  buffer,
size_t  size
 

dkcStream.c401 行で定義されています。

参照先 DKC_STREAM, dkcStreamProcess64(), NULL, と StreamWrite().

参照元 dkcFileWithSignatureWrite64().

00401                                                                             {
00402     return dkcStreamProcess64(ptr,(void *)buffer,size,StreamWrite,NULL);        
00403 }


dkutil_cに対してSun Jul 18 22:46:26 2004に生成されました。 doxygen 1.3.6