 
#ifndef fileentry_DEFINED
#define fileentry_DEFINED 1
 
#include <class.h>
/* 
 * This file was generated by the Andrew class system preprocessor.
 * Don't make changes to this file as it is created from fileent.ch and will be
 * overwritten.  Make changes to fileent.ch instead.
 */ 
 
/* 
 * The following information was copied, as-is, from fileent.ch.
 */ 
 





/* 
 * End of information copied from fileent.ch.
 */ 
 
/* 
 * Include the superclass information
 */ 
/* fileentry has no super class */ 
 
 
/* 
 * Data structure for fileentry 
 */ 
struct fileentry { 
    struct {
	struct basicobject_methods *fileentry_methods;
    } header;
    char *path;

};

 
/* 
 * End of data structure for fileentry.
 */ 
 


#ifndef fileentry_PROGRAMMERVERSION
#define fileentry_PROGRAMMERVERSION 1
#endif /* fileentry_PROGRAMMERVERSION */

#ifdef fileentry_VERSION
#undef fileentry_VERSION
#endif /* fileentry_VERSION */
#define fileentry_VERSION ((((fileentry_PROGRAMMERVERSION << 16) ^ (4 << 8) ^ sizeof(struct fileentry)) & 0x7ffff) + 0x80000 + (1 << 20))

#define fileentry_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *fileentry__GetClassInfo(); \
  (void) class_EnterInfo(NULL, fileentry_classheader.name, fileentry__GetClassInfo, NULL, fileentry_classheader.namekey); } 
 
#define fileentry_StaticLoad()  \
    { \
    fileentry_StaticLoadOnlyThisClass();  \
    } 
 
#define fileentry_StaticEntry  {fileentry_StaticLoad()} 
 
static struct classheader fileentry_classheader = {
    fileentry_VERSION,
    "fileentry",
    "fileent",
    (struct basicobject_methods *) &class_RoutineStruct,
};


#endif /* fileentry_DEFINED */

#if !defined(fileentry_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_fileentry) && !defined(class_StaticEntriesOnly)
#define fileentry_ROUTINESDEFINED

#define fileentry_SetPath(self,path) \
    ((* ((void (*)())((self)->header.fileentry_methods->routines[0]))) (self,path))
#define fileentry_GetPath(self) \
    ((* ((char * (*)())((self)->header.fileentry_methods->routines[1]))) (self))
#define fileentry_CanRead(self) \
    ((* ((boolean (*)())((self)->header.fileentry_methods->routines[2]))) (self))
#define fileentry_CanWrite(self) \
    ((* ((boolean (*)())((self)->header.fileentry_methods->routines[3]))) (self))

#define fileentry_NewFromObject(self) \
    ((* ((struct fileentry * (*)())((self)->header.fileentry_methods->info->procs->routines[0]))) (&fileentry_classheader, (self)->header.fileentry_methods->info->versionnumber))
#define fileentry_New() \
    (fileentry__New(NULL, fileentry_VERSION))
#define fileentry_Initialize(self) \
    (fileentry__Initialize(NULL, self, fileentry_VERSION))

#define fileentry_Destroy(self) \
    ((* ((void (*)()) ((self)->header.fileentry_methods->info->procs->routines[1]))) (&fileentry_classheader, self))
#define fileentry_Finalize(self) \
    (fileentry__Finalize(NULL, self))

#define fileentry_InitializeObject(self) \
    ((boolean) fileentry__InitializeObject(NULL, self))
#define fileentry_FinalizeObject(self) \
    ((void) fileentry__FinalizeObject(NULL, self))


#endif /* !defined(fileentry_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_fileentry ) && !defined(class_StaticEntriesOnly)*/



#ifndef AUXMODULE

struct fileentry_methods {
    struct classinfo *info;
    long (*routines[4])();
};

struct fileentry_classprocedures {
    struct classinfo *info;
    long (*routines[6])();
};

void fileentry__SetPath();
char * fileentry__GetPath();
boolean fileentry__CanRead();
boolean fileentry__CanWrite();

static struct fileentry_methods fileentry_methodtable = {
    NULL,
    (long (*)()) fileentry__SetPath,
    (long (*)()) fileentry__GetPath,
    (long (*)()) fileentry__CanRead,
    (long (*)()) fileentry__CanWrite
};

struct fileentry *fileentry__New();
void fileentry__Destroy();
boolean fileentry__Initialize();
void fileentry__Finalize();
boolean fileentry__InitializeObject();
void fileentry__FinalizeObject();

static struct fileentry_classprocedures fileentry_classproceduretable = {
    NULL,
    (long (*)()) fileentry__New,
    (long (*)()) fileentry__Destroy,
    (long (*)()) fileentry__Initialize,
    (long (*)()) fileentry__Finalize,
    (long (*)()) fileentry__InitializeObject,
    (long (*)()) fileentry__FinalizeObject
};


static struct classinfo fileentry_classinfo = {
    (struct basicobject_methods *) &fileentry_methodtable,
    (struct basicobject_methods *) &fileentry_classproceduretable,
    "fileentry",
    "fileent",
    fileentry_VERSION,
    NULL,
    NULL,
    NULL,
    NULL,
    &fileentry_classheader,
    NULL,
    0
};

static int classinitialized = FALSE;

boolean fileentry__Initialize(classID, self, versionnumber)
struct classheader *classID;
struct fileentry *self;
unsigned long versionnumber;
{
    if (! classinitialized)  {
	classinitialized = TRUE;
	fileentry_methodtable.info = &fileentry_classinfo;
    }
    self->header.fileentry_methods = (struct basicobject_methods *) &fileentry_methodtable;
    if(!fileentry__InitializeObject(classID, self)){
	return FALSE;
    }
    return TRUE;
}

struct fileentry *fileentry__New(classID, versionnumber)
struct classheader *classID;
unsigned long versionnumber;
{
    struct fileentry *self;
    if (versionnumber != class_VERSIONNOTKNOWN && versionnumber != fileentry_VERSION)  {
	(void) fprintf(stderr, "Incompatible version of fileentry requested!\n");
    }
    self = (struct fileentry *) malloc (sizeof(struct fileentry));
    if (! self)  {
	(void) fprintf(stderr, "Could not allocate fileentry object!\n");
	return NULL;
    }
    if(!fileentry__Initialize(classID, self, versionnumber)){
	free((char *)self);
	return NULL;
    }
    return self;
}

void fileentry__Finalize(classID, self)
struct classheader *classID;
struct fileentry *self;
{
    fileentry__FinalizeObject(classID, self);
}

void fileentry__Destroy(classID, self)
struct classheader *classID;
struct fileentry *self;
{
    fileentry__Finalize(classID, self);
    free(self);
}

struct classinfo *fileentry__GetClassInfo(classID, versionnumber)
struct classheader *classID;
unsigned long versionnumber;
{
    if (versionnumber != class_VERSIONNOTKNOWN && versionnumber != fileentry_VERSION)  {
	(void) fprintf(stderr, "Incompatible version of fileentry requested!\n");
    }
    fileentry_classproceduretable.info = &fileentry_classinfo;
    return &fileentry_classinfo;
}

/* 
 * THIS IS NEEDED BECAUSE OF THE WAY makedo WORKS.
 * HOPEFULLY, IT CAN BE REMOVED SOON.
 */ 
 
struct classinfo *fileent__GetClassInfo(classID, versionnumber)
struct classheader *classID;
unsigned long versionnumber;
{
    return fileentry__GetClassInfo(classID, versionnumber);
}
 
/* 
 * END OF THIS PATCH. 
 */ 
 
#endif /* AUXMODULE */
