Mercurial > hg > octave-lyh
diff liboctave/file-ops.h @ 2926:66ef74ee5d9f
[project @ 1997-05-05 03:20:52 by jwe]
author | jwe |
---|---|
date | Mon, 05 May 1997 03:40:21 +0000 |
parents | 8b262e771614 |
children | 9d26524e2869 |
line wrap: on
line diff
--- a/liboctave/file-ops.h +++ b/liboctave/file-ops.h @@ -25,192 +25,37 @@ #include <string> +class string_vector; + #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif -class -file_stat +struct +file_ops { -public: - - file_stat (const string& n = string (), bool fl = true) - : file_name (n), follow_links (fl), initialized (false) - { - if (! file_name.empty ()) - update_internal (); - } - - file_stat (const file_stat& f) { copy (f); } - - file_stat& operator = (const file_stat& f) - { - if (this != &f) - copy (f); - - return *this; - } - - ~file_stat (void) { } - - void get_stats (bool force = false) - { - if (! initialized || force) - update_internal (force); - } - - void get_stats (const string& n, bool force = false) - { - if (n != file_name || ! initialized || force) - { - initialized = false; - - file_name = n; - - update_internal (force); - } - } - - // File status and info. These should only be called for objects - // that are already properly initialized. + static int mkdir (const string&, mode_t); + static int mkdir (const string&, mode_t, string&); - bool is_blk (void) const; - bool is_chr (void) const; - bool is_dir (void) const; - bool is_fifo (void) const; - bool is_lnk (void) const; - bool is_reg (void) const; - bool is_sock (void) const; - - ino_t ino (void) const { return fs_ino; } - dev_t dev (void) const { return fs_dev; } - - nlink_t nlink (void) const { return fs_nlink; } - - uid_t uid (void) const { return fs_uid; } - gid_t gid (void) const { return fs_gid; } - - off_t size (void) const { return fs_size; } - - time_t atime (void) const { return fs_atime; } - time_t mtime (void) const { return fs_mtime; } - time_t ctime (void) const { return fs_ctime; } + static int mkfifo (const string&, mode_t); + static int mkfifo (const string&, mode_t, string&); -#if defined (HAVE_ST_RDEV) - dev_t rdev (void) const { return fs_rdev; } -#endif - -#if defined (HAVE_ST_BLKSIZE) - long blksize (void) const { return fs_blksize; } -#endif - -#if defined (HAVE_ST_BLOCKS) - long blocks (void) const { return fs_blocks; } -#endif - - string mode_as_string (void) const; - - bool ok (void) const { return initialized && ! fail; } - - operator void* () const - { return ok () - ? static_cast<void *> (-1) : static_cast<void *> (0); } - - bool exists (void) const { return ok (); } - - string error (void) const { return ok () ? string () : errmsg; } + static int rename (const string&, const string&); + static int rename (const string&, const string&, string&); - // Has the file referenced by this object been modified since TIME? - bool is_newer (time_t time) const { return fs_mtime > time; } - -private: - - // Name of the file. - string file_name; - - // TRUE means follow symbolic links to the ultimate file (stat). - // FALSE means get information about the link itself (lstat). - bool follow_links; - - // TRUE means we have already called stat. - bool initialized; - - // TRUE means the stat for this file failed. - bool fail; - - // If a failure occurs, this contains the system error text. - string errmsg; + static int rmdir (const string&); + static int rmdir (const string&, string&); - // file type and permissions - mode_t fs_mode; - - // serial number - ino_t fs_ino; - - // device number - dev_t fs_dev; - - // number of links - nlink_t fs_nlink; - - // user ID of owner - uid_t fs_uid; - - // group ID of owner - gid_t fs_gid; - - // size in bytes, for regular files - off_t fs_size; - - // time of last access - time_t fs_atime; + static string tempnam (void); - // time of last modification - time_t fs_mtime; - - // time of last file status change - time_t fs_ctime; - -#if defined (HAVE_ST_RDEV) - // device number for special files - dev_t fs_rdev; -#endif - -#if defined (HAVE_ST_BLKSIZE) - // best I/O block size - long fs_blksize; -#endif - -#if defined (HAVE_ST_BLOCKS) - // number of 512-byte blocks allocated - long fs_blocks; -#endif - - void update_internal (bool force = false); + static string tilde_expand (const string&); + static string_vector tilde_expand (const string_vector&); - void copy (const file_stat&); -}; - -extern int is_newer (const string&, time_t); - -extern int oct_mkdir (const string&, mode_t); -extern int oct_mkdir (const string&, mode_t, string&); - -extern int oct_mkfifo (const string&, mode_t); -extern int oct_mkfifo (const string&, mode_t, string&); + static int umask (mode_t); -extern int oct_rename (const string&, const string&); -extern int oct_rename (const string&, const string&, string&); - -extern int oct_rmdir (const string&); -extern int oct_rmdir (const string&, string&); - -extern string oct_tempnam (void); - -extern int oct_umask (mode_t); - -extern int oct_unlink (const string&); -extern int oct_unlink (const string&, string&); + static int unlink (const string&); + static int unlink (const string&, string&); +}; #endif