177 lines
2.4 KiB
C++
177 lines
2.4 KiB
C++
|
/*++
|
||
|
|
||
|
Copyright (c) 1998-1999 Microsoft Corporation
|
||
|
All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
dbgdev.hxx
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Debug Device interface class. All debug devices
|
||
|
must derive from this class
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Steve Kiraly (SteveKi) 7-Apr-1995
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
#ifndef _DBGDEV_HXX_
|
||
|
#define _DBGDEV_HXX_
|
||
|
|
||
|
DEBUG_NS_BEGIN
|
||
|
|
||
|
class TDebugDevice : public TDebugNodeDouble {
|
||
|
|
||
|
public:
|
||
|
|
||
|
enum ECharType
|
||
|
{
|
||
|
kAnsi,
|
||
|
kUnicode,
|
||
|
kUnknown,
|
||
|
};
|
||
|
|
||
|
TDebugDevice::
|
||
|
TDebugDevice(
|
||
|
IN LPCTSTR pszConfiguration,
|
||
|
IN EDebugType eDebugType
|
||
|
);
|
||
|
|
||
|
virtual
|
||
|
TDebugDevice::
|
||
|
~TDebugDevice(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
virtual
|
||
|
BOOL
|
||
|
TDebugDevice::
|
||
|
bValid(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
virtual
|
||
|
BOOL
|
||
|
TDebugDevice::
|
||
|
bOutput (
|
||
|
IN UINT uSize,
|
||
|
IN LPBYTE pBuffer
|
||
|
) = 0;
|
||
|
|
||
|
TDebugDevice::ECharType
|
||
|
TDebugDevice::
|
||
|
eGetCharType(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
EDebugType
|
||
|
TDebugDevice::
|
||
|
eGetDebugType(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
LPCTSTR
|
||
|
TDebugDevice::
|
||
|
pszGetConfigurationString(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
UINT
|
||
|
MapStringTypeToDevice(
|
||
|
IN LPCTSTR pszDeviceString
|
||
|
) const;
|
||
|
|
||
|
protected:
|
||
|
|
||
|
class TIterator {
|
||
|
|
||
|
public:
|
||
|
|
||
|
TIterator(
|
||
|
IN TDebugDevice *DbgDevice
|
||
|
);
|
||
|
|
||
|
~TIterator(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
bValid(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
VOID
|
||
|
First(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
Next(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
IsDone(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
LPCTSTR
|
||
|
Current(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
UINT
|
||
|
Index(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
private:
|
||
|
|
||
|
LPTSTR _pStr;
|
||
|
LPTSTR _pCurrent;
|
||
|
LPTSTR _pEnd;
|
||
|
BOOL _bValid;
|
||
|
UINT _uIndex;
|
||
|
|
||
|
};
|
||
|
|
||
|
friend class TIterator;
|
||
|
|
||
|
private:
|
||
|
|
||
|
struct DeviceMap
|
||
|
{
|
||
|
UINT Id;
|
||
|
LPCTSTR Name;
|
||
|
};
|
||
|
|
||
|
//
|
||
|
// Copying and assignment are not defined.
|
||
|
//
|
||
|
TDebugDevice::
|
||
|
TDebugDevice(
|
||
|
const TDebugDevice &rhs
|
||
|
);
|
||
|
|
||
|
const TDebugDevice &
|
||
|
TDebugDevice::
|
||
|
operator=(
|
||
|
const TDebugDevice &rhs
|
||
|
);
|
||
|
|
||
|
LPTSTR _pszConfiguration;
|
||
|
ECharType _eCharType;
|
||
|
EDebugType _eDebugType;
|
||
|
|
||
|
};
|
||
|
|
||
|
DEBUG_NS_END
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|