Coda Distributed File System
ruletypes.h
Go to the documentation of this file.
1/* BLURB gpl
2
3 Coda File System
4 Release 6
5
6 Copyright (c) 1987-2003 Carnegie Mellon University
7 Additional copyrights listed below
8
9This code is distributed "AS IS" without warranty of any kind under
10the terms of the GNU General Public Licence Version 2, as shown in the
11file LICENSE. The technical and financial contributors to Coda are
12listed in the file CREDITS.
13
14 Additional copyrights
15 none currently
16
17#*/
18
19#ifndef _RULETYPES_H_
20#define _RULETYPES_H_
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#ifdef HAVE_CONFIG_H
27#include <config.h>
28#endif
29
30#include <stdio.h>
31#include <stdlib.h>
32#include <sys/param.h>
33#include <unistd.h>
34#include "coda_string.h"
35#include <vcrcommon.h>
36
37#ifdef __cplusplus
38}
39#endif
40
41//C++ include files
42#include <olist.h>
43#include <inconsist.h>
44
45class objname_t : public olink {
46 char dname[CODA_MAXPATHLEN]; /* dir name cannot have any * in it */
47 char fname[CODA_MAXNAMLEN]; /* file name can have *s */
48public:
49 objname_t(char *);
50 ~objname_t();
51 int match(char *, char *);
52 void GetPrefix(char *name, char *prefix);
53 void print();
54 void print(FILE *);
55 void print(int);
56};
57
58class depname_t : public olink {
59 char dname[CODA_MAXPATHLEN];
60 char fname[CODA_MAXNAMLEN];
61 ViceFid fid; /* initialized only by application */
62public:
63 depname_t(char *);
64 ~depname_t();
65 void print();
66 void print(FILE *);
67 void print(int);
68};
69
70#define NOREPLICAID -1
71#define ALLREPLICAS 9
72class arg_t {
73 friend class command_t;
75 int replicaid;
76
77public:
78 arg_t(char *);
79 ~arg_t();
80 void addreplicaid(char *);
81 void expandname(char *, char *, char *);
82 int expandall(); // returns true if [all] was in the arg
83 void appendname(char *, char *);
84 void expandreplicas(int, char **);
85 void print();
86 void print(FILE *);
87 void print(int);
88};
89
90class command_t : public olink {
91 char cmddname[CODA_MAXPATHLEN];
92 char cmdfname[CODA_MAXNAMLEN];
93 ViceFid fid;
94 int argc;
95 arg_t **arglist;
96
97public:
98 command_t(char *);
99 ~command_t();
100 arg_t *addarg(char *);
101 void addreplicaid(char *);
102 void expandname(char *, char *dirname, char *fname);
103 void expandreplicas(int, char **replicanames);
104 int execute();
105 void print();
106 void print(FILE *);
107 void print(int);
108};
109
110class rule_t : public olink {
112 olist deplist;
113 olist cmdlist;
114 // the following are filled only after this rule is matched for an inc object
115 char prefix[CODA_MAXNAMLEN]; // common prefix from obj name (eg. *.c)
116 char *repnames[VSG_MEMBERS]; // canonical ordering of rep names
117 int nreplicas; // number of replicas of the inc object
118 ViceFid incfid; // fid of inc object causing the asr invocation
119 char increalm[MAXHOSTNAMELEN]; // realm of inc object
120 char idname[CODA_MAXPATHLEN]; // name of inc object
121 char ifname[CODA_MAXNAMLEN];
122 int GetReplicaNames(); // gets name of individual replicas
123 //int GetIFid(); // gets fid of inc. object
124public:
125 rule_t();
126 ~rule_t();
127 void addobject(char *);
128 void adddep(char *);
129 void addcmd(command_t *);
130 int match(char *, char *);
131 void GetRepInfo(char *, char *);
132 void expand();
133 int enablerepair();
134 int execute();
135 void disablerepair();
136 void print();
137 void print(FILE *);
138 void print(int);
139};
140
141// exportable routines
142extern void expandstring(char *, const char *, char *);
143#endif /* _RULETYPES_H_ */
Definition: ruletypes.h:72
void print()
Definition: ruletypes.cc:635
void expandname(char *, char *, char *)
Definition: ruletypes.cc:599
void appendname(char *, char *)
Definition: ruletypes.cc:630
void expandreplicas(int, char **)
Definition: ruletypes.cc:607
void addreplicaid(char *)
Definition: ruletypes.cc:586
int expandall()
Definition: ruletypes.cc:624
arg_t(char *)
Definition: ruletypes.cc:577
~arg_t()
Definition: ruletypes.cc:584
Definition: ruletypes.h:90
command_t(char *)
Definition: ruletypes.cc:143
~command_t()
Definition: ruletypes.cc:159
void addreplicaid(char *)
Definition: ruletypes.cc:183
void expandname(char *, char *dirname, char *fname)
Definition: ruletypes.cc:189
void expandreplicas(int, char **replicanames)
Definition: ruletypes.cc:196
arg_t * addarg(char *)
Definition: ruletypes.cc:168
int execute()
Definition: ruletypes.cc:237
void print()
Definition: ruletypes.cc:284
Definition: ruletypes.h:58
depname_t(char *)
Definition: ruletypes.cc:118
void print()
Definition: ruletypes.cc:125
~depname_t()
Definition: ruletypes.cc:124
Definition: ruletypes.h:45
objname_t(char *)
Definition: ruletypes.cc:54
int match(char *, char *)
Definition: ruletypes.cc:60
~objname_t()
Definition: ruletypes.cc:59
void GetPrefix(char *name, char *prefix)
Definition: ruletypes.cc:72
void print()
Definition: ruletypes.cc:102
Definition: olist.h:47
Definition: ruletypes.h:110
void expand()
Definition: ruletypes.cc:497
void addobject(char *)
Definition: ruletypes.cc:350
int execute()
Definition: ruletypes.cc:507
int match(char *, char *)
Definition: ruletypes.cc:367
int enablerepair()
Definition: ruletypes.cc:431
void adddep(char *)
Definition: ruletypes.cc:356
void addcmd(command_t *)
Definition: ruletypes.cc:362
~rule_t()
Definition: ruletypes.cc:321
void print()
Definition: ruletypes.cc:523
rule_t()
Definition: ruletypes.cc:309
void disablerepair()
Definition: ruletypes.cc:449
void GetRepInfo(char *, char *)
Definition: ruletypes.cc:462
#define CODA_MAXNAMLEN
Definition: coda.h:114
#define CODA_MAXPATHLEN
Definition: coda.h:115
name
Definition: pwdtopdbtool.py:40
void expandstring(char *, const char *, char *)
Definition: ruletypes.cc:660
Definition: objlist.h:51