Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

fsnode.h

Go to the documentation of this file.
00001 
00023 #ifndef _LIBCOMPREX_FSNODE_H_
00024 #define _LIBCOMPREX_FSNODE_H_
00025 
00026 #include <sys/types.h>
00027 #include <time.h>
00028 
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032 
00033 typedef struct _CxFsNode     CxFsNode;     
00034 typedef enum   _CxFsNodeType CxFsNodeType; 
00036 #include <libcomprex/archive.h>
00037 #include <libcomprex/directory.h>
00038 #include <libcomprex/file.h>
00039 #include <libcomprex/types.h>
00040 
00044 enum _CxFsNodeType
00045 {
00046     CX_FSNODETYPE_UNKNOWN = 0, 
00047     CX_FSNODETYPE_FILE,        
00048     CX_FSNODETYPE_DIRECTORY,   
00049 };
00050 
00057 struct _CxFsNode
00058 {
00059     CxArchive *archive;      
00060     CxDirectory *parentDir;  
00062     char *name;              
00064     CxFsNodeType type;       
00070     char *path;
00071 
00072     mode_t mode;           
00073     uid_t  uid;            
00074     gid_t  gid;            
00076     time_t date;           
00078     char isLocal;          
00083     union
00084     {
00085         CxFileData      *file; 
00086         CxDirectoryData *dir;  
00088     } u;
00089 
00090     void *moduleData;         
00092     unsigned int refCount;    
00094     CxFsNode *prev;           
00095     CxFsNode *next;           
00096 };
00097 
00098 /**************************************************************************/
00100 /**************************************************************************/
00110 CxFsNode *cxNewFsNode(void);
00111 
00119 void cxDestroyFsNode(CxFsNode *node);
00120 
00123 /**************************************************************************/
00125 /**************************************************************************/
00138 void cxSetFsNodeArchive(CxFsNode *node, CxArchive *archive);
00139 
00148 void cxSetFsNodeParent(CxFsNode *node, CxDirectory *parent);
00149 
00158 void cxSetFsNodeName(CxFsNode *node, const char *name);
00159 
00168 void cxSetFsNodeType(CxFsNode *node, CxFsNodeType type);
00169 
00178 void cxSetFsNodeMode(CxFsNode *node, mode_t mode);
00179 
00188 void cxSetFsNodeUid(CxFsNode *node, uid_t uid);
00189 
00198 void cxSetFsNodeGid(CxFsNode *node, gid_t gid);
00199 
00208 void cxSetFsNodeDate(CxFsNode *node, time_t date);
00209 
00221 void cxSetFsNodeLocal(CxFsNode *node, char isLocal);
00222 
00225 /**************************************************************************/
00227 /**************************************************************************/
00239 CxArchive *cxGetFsNodeArchive(CxFsNode *node);
00240 
00250 CxDirectory *cxGetFsNodeParent(CxFsNode *node);
00251 
00261 const char *cxGetFsNodeName(CxFsNode *node);
00262 
00273 const char *cxGetFsNodePath(CxFsNode *node);
00274 
00284 CxFsNodeType cxGetFsNodeType(CxFsNode *node);
00285 
00295 mode_t cxGetFsNodeMode(CxFsNode *node);
00296 
00306 uid_t cxGetFsNodeUid(CxFsNode *node);
00307 
00317 gid_t cxGetFsNodeGid(CxFsNode *node);
00318 
00328 time_t cxGetFsNodeDate(CxFsNode *node);
00329 
00342 char cxIsFsNodeLocal(CxFsNode *node);
00343 
00346 /**************************************************************************/
00348 /**************************************************************************/
00360 CxFsNode *cxGetNextFsNode(CxFsNode *node);
00361 
00371 CxFsNode *cxGetPreviousFsNode(CxFsNode *node);
00372 
00375 /**************************************************************************/
00377 /**************************************************************************/
00387 #define CX_IS_DIRECTORY(node) \
00388     (cxGetFsNodeType(node) == CX_FSNODETYPE_DIRECTORY)
00389 
00392 #ifdef __cplusplus
00393 }
00394 #endif
00395 
00396 #endif /* _LIBCOMPREX_FSNODE_H_ */
00397 

Generated on Wed Mar 5 20:47:43 2003 for libcomprex by doxygen1.2.18-20021020