123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
/*---------------------------------------------------------------------------* * * BinkleyTerm * * (C) Copyright 1987-96, Bit Bucket Software Co. * For license and contact information see /doc/orig_260/license.260. * * This version was modified by the BinkleyTerm XE Team. * For contact information see /doc/team.lst and /doc/join.us. * For a complete list of changes see /doc/xe_user.doc and /doc/xe_hist.doc. * * Filename : $Source: /cvsroot/btxe/btnt/sources/cache.h,v $ * Revision : $Revision: 1.1 $ * Tagname : $Name: $ * Last updated: $Date: 2005/01/01 15:18:12 $ * State : $State: Exp $ * * Description : Cache definitions * *---------------------------------------------------------------------------*/ #ifdef CACHE #ifndef CACHE_H #define CACHE_H #define BLOCKSIZE 50 /* Allocation unit size */ #define HASHSIZE 41 /* Size of hash table */ #define KEEPORDER /* Keep directory order */ #ifdef __BORLANDC__ /* jl 960729: DIRECTORY is already defined in dir.h */ # undef DIRECTORY #endif typedef struct FILEINFO DTA; typedef struct _DIRECTORY DIRECTORY; typedef struct _DIRENTRY DIRENTRY; typedef struct _DIRBUF DIRBUF; typedef struct _FLOWFILE FLOWFILE; typedef struct _FLOWENT FLOWENT; struct _DIRECTORY { DIRECTORY *next; /* -> Next in directory chain */ FLOWFILE *flow; /* -> Cached flow files */ #ifdef KEEPORDER DIRENTRY *list; /* List of entries */ #endif DIRENTRY *ent[HASHSIZE]; /* Hash table with entries */ time_t loaded; /* If non-zero, time of loading */ int len; /* Length of name */ char drive; /* Upper cased drive letter */ char name[1]; /* Upper cased name, no drive */ }; struct _DIRENTRY { DIRENTRY *next; /* -> Next in hash chain */ #ifdef KEEPORDER DIRENTRY *dirnext; /* -> Next in dir listing */ #endif long time; /* Timestamp */ long size; /* Size of file in bytes */ char attr; /* Attribute */ char name[13]; /* Name of file */ }; struct _FLOWENT { FLOWENT *next; /* Next in list of files */ DIRECTORY *dir; /* -> Directory */ char name[13]; /* Name of file in directory */ int hash; /* Hash key of name */ }; struct _FLOWFILE { FLOWFILE *next; /* -> Next in chain */ long time; /* Timestamp */ long size; /* Size of file in bytes */ char attr; /* Attribute */ char name[13]; /* Name of file */ int hash; /* Hash key of name[] */ FLOWENT *files; /* List of files */ }; struct _DIRBUF { int cache; /* Flag. Using cached method? */ long time; /* New transfer area */ long size; char attr; char name[13]; union { struct { /* If not using cached method */ DTA dta; /* Next entry to be read */ int more; /* Flag. Is dta valid? */ int cleanup; /* Flag. Call dfind(,,2)? */ } slow; struct { /* Cached method */ DIRECTORY *dir; /* Directory with hash tab */ DIRENTRY *next; /* Next in hash chain */ int hash; /* Current hash key */ char mask[12]; } fast; } u; }; #endif /* CACHE_H */ #endif /* $Id: cache.h,v 1.1 2005/01/01 15:18:12 vildanov Exp $ */
About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us
©2010 Koders is a trademark of Black Duck Software, Inc. Black Duck, Know Your Code and the Black Duck logo are registered trademarks of Black Duck Software, Inc. in the United States and other jurisdictions. All other trademarks are the property of their respective holders.