File: dnetfile.h

package info (click to toggle)
dnprogs 2.52
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 3,644 kB
  • ctags: 4,021
  • sloc: ansic: 26,737; cpp: 10,666; makefile: 832; sh: 537; awk: 13
file content (97 lines) | stat: -rw-r--r-- 2,976 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include "file.h"

class dnetfile: public file
{
public:

// Is this one of my filenames?
    static bool   isMine(const char *name);

// Constructor and destructor
    dnetfile(const char *name, int verbosity);
    ~dnetfile();

// Stuff overriden from file.
    virtual int   setup_link(unsigned int bufsize, int rfm, int rat, int xfer_mode, int flags, int timeout);
    virtual int   open(const char *mode);
    virtual int   open(const char *basename, const char *mode);
    virtual int   close();
    virtual int   read(char *buf,  int len);
    virtual int   write(char *buf, int len);
    virtual int   next();
    virtual void  perror(const char *);
    virtual char *get_basename(int keep_version);
    virtual char *get_printname();
    virtual char *get_printname(char *filename);
    virtual const char *get_format_name();
    virtual int   get_umask();
    virtual int   set_umask(int mask);
    virtual bool  eof();
    virtual bool  isdirectory();
    virtual bool  iswildcard();
    virtual int   max_buffersize(int biggest);
    virtual void  set_protection(char *prot);

 private:
/* Parameters */
    static const int MAX_NODE      = 6;
    static const int MAX_USER      = 12;
    static const int MAX_PASSWORD  = 12;
    static const int MAX_ACCOUNT   = 12;
    static const int MAX_NAME      = MAX_PATH;
    static const int MAX_BASENAME  = 76;

/* Misc class-globals */
    bool  wildcard; // Is a wildcard file name
    bool  isOpen;   // Set when we have an open connection
    bool  writing;  // if FALSE then we are reading.
    const char *lasterror;
    char  errstring[80];
    int   verbose;

/* File attributes, requested and actual */
    int          file_rat, file_rfm;
    int          user_rat, user_rfm;
    int          user_flags;
    int          transfer_mode;
    int          file_fsz; // Size of VFC fixed part.
    unsigned int user_bufsize;
    dap_connection conn;

/* Connection attribute strings */
    char  fname[MAX_NAME+1]; // Full name as supplied by the user
    char  node[MAX_NODE+1];
    char  user[MAX_USER+1];
    char  password[MAX_PASSWORD+1];
    char  name[MAX_NAME+1];
    char  basename[MAX_BASENAME+1];

    bool  ateof;
    unsigned int prot;
    char *protection; /* VMS style protection string from cmdline */

    char  filname[80];
    char  volname[80];
    char  dirname[80];

/* Filename handling */
    void make_basename(int keep_version);

/* DAP protocol functions */
    void  dap_close_link();
    int   dap_send_access();
    int   dap_get_reply();
    int   dap_get_file_entry(int *rfm, int *rat);
    int   dap_send_connect();
    int   dap_send_get_or_put();
    int   dap_send_accomp();
    int   dap_get_record(char *rec,int reclen);
    int   dap_put_record(char *rec,int reclen);
    int   dap_send_attributes();
    int   dap_send_name();
    int   dap_get_status();
    int   dap_check_status(dap_message *m, int status);
    int   dap_send_skip();
    char *dap_error(int code);

};