Files
cdev-1.7.2n/include/cdevDeviceDefinition.h
2022-12-13 12:44:04 +01:00

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