/* * This is the gopher back end structures. * * eventually this will provide a nice pseudo o-o interface to * gopher. It will make writing gopher programs even easier. * * I expect to use this in version .6 or .7 */ struct GophObj { char Type; char Name[256]; char Selector[256]; char Host[128]; int Port; }; typedef (struct GophObj *) GophObj; struct DirGophObj { GophObj GophDir; /* LinkedList Direntries; */ }; typedef (struct DirGophObj *) DirGophObj; struct TextGophObj { GophObj GophText; FILE *TheFile; char filename[128]; }; typedef (struct TextGophObj *) TextGophObj; struct SoundGophObj { GophObj GophSound; int soundsock; }; typedef (struct SoundGophObj *) SoundGophObj; /* * This is how normal programs access GophObjs. */ #define GetGophObjType(x) ((x)->Type) #define GetGophObjName(x) ((x)->Name) #define GetGophObjPath(x) ((x)->Selector) #define GetGophObjHost(x) ((x)->Host) #define GetGophObjPort(x) ((x)->Port) /* * Member functions */ GopherObj *NewGophObj();