00001 #ifndef __OUC_TLIST__
00002 #define __OUC_TLIST__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include <stdlib.h>
00034 #include <string.h>
00035 #include <strings.h>
00036
00037 class XrdOucTList
00038 {
00039 public:
00040
00041 XrdOucTList *next;
00042 char *text;
00043 union
00044 {
00045 long long dval;
00046 int ival[2];
00047 short sval[4];
00048 char cval[8];
00049 int val;
00050 };
00051
00052 XrdOucTList(const char *tval, long long *dv,XrdOucTList *np=0)
00053 {next=np; text = (tval ? strdup(tval) : 0); dval=*dv;}
00054
00055 XrdOucTList(const char *tval=0, int num=0, XrdOucTList *np=0)
00056 {next=np; text = (tval ? strdup(tval) : 0); val=num;}
00057
00058 XrdOucTList(const char *tval, int iv[2], XrdOucTList *np=0)
00059 {next=np; text = (tval ? strdup(tval) : 0);
00060 memcpy(sval, iv, sizeof(ival));}
00061
00062 XrdOucTList(const char *tval, short sv[4], XrdOucTList *np=0)
00063 {next=np; text = (tval ? strdup(tval) : 0);
00064 memcpy(sval, sv, sizeof(sval));}
00065
00066 XrdOucTList(const char *tval, char cv[8], XrdOucTList *np=0)
00067 {text = (tval ? strdup(tval) : 0); next=np;
00068 memcpy(cval, cv, sizeof(cval));}
00069
00070 ~XrdOucTList() {if (text) free(text);}
00071 };
00072
00073 class XrdOucTListHelper
00074 {
00075 public:
00076
00077 XrdOucTList **Anchor;
00078
00079 XrdOucTListHelper(XrdOucTList **p) : Anchor(p) {}
00080 ~XrdOucTListHelper() {XrdOucTList *tp;
00081 while((tp = *Anchor))
00082 {*Anchor = tp->next; delete tp;}
00083 }
00084 };
00085 #endif