mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 07:08:29 +02:00
81 lines
2.6 KiB
ObjectPascal
81 lines
2.6 KiB
ObjectPascal
{***************************************************************************
|
|
* *
|
|
* This unit is distributed under the LGPL version 2 *
|
|
* *
|
|
* Additionally this unit can be used under any newer version (3 or up) *
|
|
* of the LGPL *
|
|
* *
|
|
* Users are also granted the same "linking exception" as defined *
|
|
* for the LCL. *
|
|
* See the LCL license for details *
|
|
* *
|
|
* *
|
|
***************************************************************************
|
|
@author(Martin Friebe)
|
|
}
|
|
unit uw40634a;
|
|
|
|
{$mode objfpc}{$H+}
|
|
{$INTERFACES CORBA} // no ref counting needed
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, uw40634b;
|
|
|
|
type
|
|
|
|
TNormalClass = class
|
|
strict protected
|
|
procedure SetMonitor(AMonitor: IDbgWatchesMonitorIntf); virtual; abstract;
|
|
procedure RequestData(AWatchValue: IDbgWatchValueIntf); virtual; abstract;
|
|
function Monitor:TObject;virtual; abstract;
|
|
end;
|
|
|
|
{ TInternalDbgSupplierBase }
|
|
|
|
generic TInternalDbgSupplierBase<
|
|
_BASE: TObject;
|
|
_SUPPLIER_INTF: IInternalDbgSupplierIntfType;
|
|
_MONITOR_INTF //: IInternalDbgMonitorIntfType
|
|
>
|
|
= class(_BASE)
|
|
strict private
|
|
FMonitor: _MONITOR_INTF;
|
|
|
|
|
|
// ********************************************************************************
|
|
(* "private" is CORRECTLY not working
|
|
all others should work, but have different error *)
|
|
|
|
//private
|
|
strict protected
|
|
procedure SetMonitor1(AMonitor: _MONITOR_INTF);virtual; abstract;
|
|
protected
|
|
procedure SetMonitor2(AMonitor: _MONITOR_INTF);virtual; abstract;
|
|
public
|
|
procedure SetMonitor3(AMonitor: _MONITOR_INTF);virtual; abstract;
|
|
// ********************************************************************************
|
|
protected
|
|
|
|
property Monitor: _MONITOR_INTF read FMonitor;
|
|
end;
|
|
|
|
type
|
|
|
|
{ TWatchesSupplierClassTemplate }
|
|
|
|
generic TWatchesSupplierClassTemplate<_BASE: TObject> = class(
|
|
specialize TInternalDbgSupplierBase<_BASE, IDbgWatchesSupplierIntf, IDbgWatchesMonitorIntf>,
|
|
IDbgWatchesSupplierIntf
|
|
)
|
|
protected
|
|
public
|
|
procedure RequestData(AWatchValue: IDbgWatchValueIntf); virtual; abstract;
|
|
end;
|
|
|
|
|
|
implementation
|
|
|
|
end.
|