Initial check in
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
unit mr.dev.usb.pipe;
|
||||
|
||||
interface
|
||||
uses
|
||||
Windows,
|
||||
mr.drv.usb,
|
||||
mr.dev.usb.pipebase;
|
||||
|
||||
type
|
||||
TPipe = class( TPipeBase)
|
||||
|
||||
public
|
||||
function Read( var Buffer;
|
||||
BufferLength : cardinal;
|
||||
var Transferred : cardinal;
|
||||
Overlapped : POverlapped = nil) : boolean;
|
||||
|
||||
function Write( var Buffer;
|
||||
BufferLength : cardinal;
|
||||
var Transferred : cardinal;
|
||||
Overlapped : POverlapped = nil) : boolean;
|
||||
|
||||
public
|
||||
function Abort : boolean;
|
||||
function Flush : boolean;
|
||||
function Reset : boolean;
|
||||
end;
|
||||
implementation
|
||||
|
||||
{ TPipe }
|
||||
|
||||
// @@@: Construction / destruction ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
//
|
||||
// Construction / destruction
|
||||
//
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
// ================================================================================================
|
||||
// Abort
|
||||
// ================================================================================================
|
||||
function TPipe.Abort: boolean;
|
||||
begin
|
||||
if Assigned( fDriver)
|
||||
then result := fDriver.AbortPipe( fPipeInfo.PipeID)
|
||||
else result := false
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Flush
|
||||
// ================================================================================================
|
||||
function TPipe.Flush: boolean;
|
||||
begin
|
||||
if Assigned( fDriver)
|
||||
then result := fDriver.FlushPipe( fPipeInfo.PipeID)
|
||||
else result := false
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Reset
|
||||
// ================================================================================================
|
||||
function TPipe.Reset: boolean;
|
||||
begin
|
||||
if Assigned( fDriver)
|
||||
then result := fDriver.ResetPipe( fPipeInfo.PipeID)
|
||||
else result := false
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Read
|
||||
// ================================================================================================
|
||||
function TPipe.Read(var Buffer;
|
||||
BufferLength : cardinal;
|
||||
var Transferred : cardinal;
|
||||
Overlapped : POverlapped): boolean;
|
||||
begin
|
||||
if Assigned( fDriver) then
|
||||
result := fDriver.ReadPipe( fPipeInfo.PipeId,
|
||||
@Buffer,
|
||||
BufferLength,
|
||||
Transferred,
|
||||
Overlapped)
|
||||
else
|
||||
result := false;
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Write
|
||||
// ================================================================================================
|
||||
function TPipe.Write( var Buffer;
|
||||
BufferLength : cardinal;
|
||||
var Transferred : cardinal;
|
||||
Overlapped : POverlapped): boolean;
|
||||
begin
|
||||
if Assigned( fDriver) then
|
||||
result := fDriver.WritePipe( fPipeInfo.PipeId,
|
||||
@Buffer,
|
||||
BufferLength,
|
||||
Transferred,
|
||||
Overlapped)
|
||||
else
|
||||
result := false;
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user