Re: [Tuxcmd-dev-vfs] Koncepce VFS - cast 2.
Status: Beta
Brought to you by:
tbzatek
From: Radek C. <rad...@ce...> - 2004-02-21 15:51:12
|
No jdes na to trochu zhurta. Jen nejdulezitejsi informace: 1) **** Kopirovani bude stylem a) rekni modulu ze chces soubor a kam ho chces (z kama apod) nebo b) chci prvnich 4kb ze souboru, pak dalsi atd. Podle mne se priklanis k za b). Proc? Podle mne je to zalezitosti modulu. Nehlede ze nektere soubory (virtualni) nemusi mit descriptory atd. Fakt si myslim za trochu abstrakce nezaskodi. Nac to tak pitvat? 2) **** vis proc jsem tam mel napr. zde: TVFSClose =function (g:TVFSGlobs):TVFSResult;cdecl; to g? aby to bylo thread safe. Hlavni program zaalokoval pocet byte, ktere si modul zazadal. Toto se nasledne predavalo funkcim. Tim padem bych mohl modul zavest vicekrat (treba pro vice vlaken) a nemusel se bat ze si navzajem prepisou data (jelikoz data se tim padem nadileji). Jelikoz modul (jako CODE) je v pameti zaveden jen jednou a sdili globalni promenne pro vsechny instance (s tim nic nenadelas) to je zalezitosti jadra. Teda az do dnesniho dne jsem si tim byl jist. Jiste mne presvedcis o opaku :). No a modul potrebuje mit nejake globalni data (teda mozna ne jak se divam ze predavas i descriptory, no ale sem tam se neco zhodi, treba pro list). function VFSListBegin(APath: PChar; var VFSItem:PVFSItem):TVFSResult; // pretoci pozici listingu na prvni soubor - rekne se tim ze se zacina vypis a jak si to zapamatuji ? Kdyz nemuzu mit globalni promenne? > function VFSRun(const sName:String):TVFSResult; no treba jsem mel pro nektere moduly i virtualni soubory (treba pro RPM, kde jich bylo nekolik a mezi nimi i spustitelny install a unistall:), no a ono se hodi vubec nekdy treba spustit neco z archivu (pokud to ma clovek asociovane)) > function VFSList(const sDir:String; iItemID:Integer; var VFSItem:TVFSItem ):TVFSResult; no to je kombinace tech tvych tri volani v jednom > function VFSRmDir(const sDirName:PChar):TVFSResult; k tomu se jeste vratim, ted musim jit rezat drevo. > function VFSCopyOut(const sSrcName, sDstName:String):TVFSResult; viz bod 1a > function VFSCopyIn(const sSrcName, sDstName:String):TVFSResult; viz bod 1b > > > > noooo..... je toho dost a nebude to zase tak lehke implementovat jak se > tak divam... no to teda asi ne :) VFS by melo byt o abstrakci. Jinak se z toho zeserem. Radek |