|
|
1.1 root 1: /* attr.h - directory service interface definition */
2:
3: /*
4: * $Header: /f/osi/h/quipu/RCS/attr.h,v 7.1 90/07/09 14:38:15 mrose Exp $
5: *
6: *
7: * $Log: attr.h,v $
8: * Revision 7.1 90/07/09 14:38:15 mrose
9: * sync
10: *
11: * Revision 7.0 89/11/23 21:56:21 mrose
12: * Release 6.0
13: *
14: */
15:
16: /*
17: * NOTICE
18: *
19: * Acquisition, use, and distribution of this module and related
20: * materials are subject to the restrictions of a license agreement.
21: * Consult the Preface in the User's Manual for the full terms of
22: * this agreement.
23: *
24: */
25:
26:
27: #ifndef QUIPUATTR
28: #define QUIPUATTR
29:
30: #include "quipu/oid.h"
31: #include "manifest.h"
32:
33: #ifndef TRUE
34: #define FALSE 0
35: #define TRUE 1
36: #endif
37:
38: /* FIRST SECTION DEFINES STRUCTURES FOR ADDRESSING */
39:
40: typedef oid_table_attr * attrType;
41: typedef oid_table_attr * AttributeType;
42:
43: #define NULLAttrT (AttributeType) NULL
44: #define AttrT_alloc()
45: /*
46: #define AttrT_cmp(x,y) (x ? ( y ? ( x == y ? 0 : ( x > y ? 1 : -1 )) : 1) : -1)
47: */
48: #define AttrT_cmp(x,y) ( x == y ? 0 : ( x > y ? 1 : -1 ))
49: #define AttrT_decode(x)
50: #define AttrT_free(x)
51: #define AttrT_cpy(x) x
52: #define grab_oid(x) (x ? x->oa_ot.ot_oid : NULLOID)
53:
54: AttributeType AttrT_new();
55:
56:
57: #define str2AttrT(x) AttrT_new(x)
58:
59: typedef struct {
60: short av_syntax; /* Specifies the syntax of the */
61: /* attribute that follows. */
62: caddr_t av_struct;
63: } attrVal, * AttributeValue;
64:
65: #define AV_WRITE_FILE 256
66: #define AV_FILE 128
67: #define MAX_AV_SYNTAX 100
68:
69: #define NULLAttrV (AttributeValue) NULL
70: #define AttrV_alloc() (AttributeValue) smalloc (sizeof (attrVal));
71:
72: AttributeValue AttrV_cpy();
73: AttributeValue str_at2AttrV();
74: AttributeValue str2AttrV();
75: short str2syntax();
76: short add_attribute_syntax ();
77:
78: struct file_syntax {
79: short fs_real_syntax;
80: char * fs_name;
81: char fs_mode;
82: char fs_ref;
83: AttributeValue fs_attr;
84: };
85: #define FS_DEFAULT 0x01 /* default file name */
86: #define FS_CREATE 0x02 /* created thus remove file */
87:
88: #define EDBOUT 1
89: #define FILEOUT 2 /* for writing to files only */
90: #define READOUT 3
91: #define DIROUT 4 /* for dn and rdn print only */
92: #define RDNOUT 5
93: #define UFNOUT 6 /* user-friendly naming */
94:
95: #define ps_print(ps,data) (void)ps_write(ps,(PElementData)data,strlen(data))
96:
97: typedef struct {
98: char * s_sntx; /* String defining syntax */
99: IFP s_encode;
100: IFP s_decode;
101: IFP s_parse;
102: IFP s_print;
103: IFP s_copy;
104: IFP s_compare;
105: IFP s_free;
106: char * s_pe_print; /* process to handle raw PE */
107: IFP s_approx; /* approx match routine */
108: char s_multiline; /* if true print each value on new line */
109: } sntx_table;
110:
111: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.