135 lines
5.2 KiB
C++
135 lines
5.2 KiB
C++
#ifndef _CDEV_DEVICE_DEFINITION_H_
|
|
#define _CDEV_DEVICE_DEFINITION_H_
|
|
|
|
#ifndef _CDEV_DIRECTORY_TABLE_H_
|
|
#error "You must include cdevDirectoryTable.h to load cdevDeviceDefinition.h"
|
|
#endif
|
|
|
|
// *****************************************************************************
|
|
// * class cdevDeviceDefinition :
|
|
// * This class stores information that identifies a specific device name
|
|
// * and associates it with a class.
|
|
// *
|
|
// * This class maintains a variety of internal data items for the following
|
|
// * purposes...
|
|
// *
|
|
// * name - This is the name of the device as specified in the DDL file.
|
|
// * directory - This is the cdevDirectoryTable object where the device was
|
|
// * registered.
|
|
// * cdevClass - This is the definition object for the class that the device
|
|
// * belongs to.
|
|
// * next - This is the next device in the linked list of cdevDevice
|
|
// * Definition objects. This list is maintained as part of the
|
|
// * cdevClassDefinition object.
|
|
// *****************************************************************************
|
|
class cdevDeviceDefinition
|
|
{
|
|
private:
|
|
char * name;
|
|
char * substName;
|
|
class cdevDirectoryTable & directory;
|
|
class cdevClassDefinition & cdevClass;
|
|
cdevDeviceDefinition * next;
|
|
|
|
public:
|
|
inline cdevDeviceDefinition ( cdevDirectoryTable & Directory,
|
|
char * Name,
|
|
char * SubstName,
|
|
cdevClassDefinition & CdevClass );
|
|
inline ~cdevDeviceDefinition ( void );
|
|
|
|
// *********************************************************************
|
|
// * Member access methods.
|
|
// *********************************************************************
|
|
inline char * getName ( void );
|
|
inline char * getSubstituteName ( void );
|
|
inline cdevDirectoryTable & getDirectory ( void );
|
|
inline cdevClassDefinition & getClass ( void );
|
|
inline cdevDeviceDefinition * getNext ( void );
|
|
inline void setNext ( cdevDeviceDefinition * Next );
|
|
};
|
|
|
|
|
|
// *****************************************************************************
|
|
// * cdevDeviceDefinition::cdevDeviceDefinition :
|
|
// * This is the constructor for the cdevDeviceDefinition class.
|
|
// *****************************************************************************
|
|
inline cdevDeviceDefinition::cdevDeviceDefinition
|
|
( cdevDirectoryTable & Directory,
|
|
char * Name,
|
|
char * SubstName,
|
|
cdevClassDefinition & CdevClass )
|
|
: directory(Directory), next(NULL), name(Name),
|
|
substName(SubstName), cdevClass(CdevClass)
|
|
{
|
|
}
|
|
|
|
// *****************************************************************************
|
|
// * cdevDeviceDefinition::~cdevDeviceDefinition :
|
|
// * This is the destructor for the cdevDeviceDefinition class.
|
|
// *****************************************************************************
|
|
inline cdevDeviceDefinition::~cdevDeviceDefinition ( void )
|
|
{
|
|
if(name) delete name;
|
|
if(substName) delete substName;
|
|
}
|
|
|
|
|
|
// *****************************************************************************
|
|
// * cdevDeviceDefinition::getName :
|
|
// * This method allows the caller to retrieve the device name.
|
|
// *****************************************************************************
|
|
inline char * cdevDeviceDefinition::getName ( void )
|
|
{
|
|
return name;
|
|
}
|
|
|
|
// *****************************************************************************
|
|
// * cdevDeviceDefinition::getSubstituteName :
|
|
// * This method allows the caller to retrieve the device name.
|
|
// *****************************************************************************
|
|
inline char * cdevDeviceDefinition::getSubstituteName ( void )
|
|
{
|
|
return substName==NULL?name:substName;
|
|
}
|
|
|
|
// *****************************************************************************
|
|
// * cdevDeviceDefinition::getDirectory :
|
|
// * This method allows the caller to retrieve the directory object that
|
|
// * owns this device.
|
|
// *****************************************************************************
|
|
inline cdevDirectoryTable & cdevDeviceDefinition::getDirectory ( void )
|
|
{
|
|
return directory;
|
|
}
|
|
|
|
// *****************************************************************************
|
|
// * cdevDeviceDefinition::getClass :
|
|
// * This method allows the caller to retrieve the class object that
|
|
// * owns this device.
|
|
// *****************************************************************************
|
|
inline cdevClassDefinition & cdevDeviceDefinition::getClass ( void )
|
|
{
|
|
return cdevClass;
|
|
}
|
|
|
|
// *****************************************************************************
|
|
// * cdevDeviceDefinition::getNext :
|
|
// * This method allows the caller to retrieve the next device in the list.
|
|
// *****************************************************************************
|
|
inline cdevDeviceDefinition * cdevDeviceDefinition::getNext ( void )
|
|
{
|
|
return next;
|
|
}
|
|
|
|
// *****************************************************************************
|
|
// * cdevDeviceDefinition::setNext :
|
|
// * This method allows the caller to set the next device in the list.
|
|
// *****************************************************************************
|
|
inline void cdevDeviceDefinition::setNext ( cdevDeviceDefinition * Next )
|
|
{
|
|
next = Next;
|
|
}
|
|
|
|
#endif
|