ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/fbintf/client/3.0/FB30Events.pas
(Generate patch)

Comparing ibx/trunk/fbintf/client/3.0/FB30Events.pas (file contents):
Revision 55 by tony, Mon Jan 9 15:31:51 2017 UTC vs.
Revision 56 by tony, Mon Mar 6 10:20:02 2017 UTC

# Line 25 | Line 25
25   *
26   *)
27   unit FB30Events;
28 + {$IFDEF MSWINDOWS}
29 + {$DEFINE WINDOWS}
30 + {$ENDIF}
31  
32   {$IFDEF FPC}
33 < {$mode objfpc}{$H+}
33 > {$mode delphi}
34   {$interfaces COM}
35   {$ENDIF}
36  
# Line 45 | Line 48 | type
48    TEventhandlerInterface = class(Firebird.IEventCallbackImpl)
49    private
50      FOwner: TFB30Events;
51 <    FName: string;
51 >    FName: AnsiString;
52      FRef: integer;
53      {$IFDEF WINDOWS}
54      {Make direct use of Windows API as TEventObject don't seem to work under
# Line 55 | Line 58 | type
58      FEventWaiting: TEventObject;
59      {$ENDIF}
60    public
61 <    constructor Create(aOwner: TFB30Events; aName: string);
61 >    constructor Create(aOwner: TFB30Events; aName: AnsiString);
62      destructor Destroy; override;
63      procedure addRef();  override;
64      function release(): Integer; override;
# Line 105 | Line 108 | type
108      procedure Terminate;
109    end;
110  
111 < constructor TEventhandlerInterface.Create(aOwner: TFB30Events; aName: string);
111 > constructor TEventhandlerInterface.Create(aOwner: TFB30Events; aName: AnsiString);
112   var
113    PSa : PSecurityAttributes;
114   {$IFDEF WINDOWS}
# Line 162 | Line 165 | end;
165   procedure TEventhandlerInterface.eventCallbackFunction(length: Cardinal;
166    events: BytePtr);
167   begin
168 + //  writeln('TEventhandlerInterface: Event Callback');
169    FOwner.FCriticalSection.Enter;
170    try
171      if FOwner.FResultBuffer <> nil then
172 <      Move(events[0], FOwner.FResultBuffer[0], Length);
172 >      Move(events^, FOwner.FResultBuffer^, Length);
173    finally
174      FOwner.FCriticalSection.Leave
175    end;
176 < //  writeln('Set Event');
176 >  //writeln('TEventhandlerInterface: Set Event Called');
177    {$IFDEF WINDOWS}
178    SetEvent(FEventHandler);
179    {$ELSE}
# Line 179 | Line 183 | end;
183  
184   procedure TEventhandlerInterface.WaitForEvent;
185   begin
186 + //  writeln('TEventhandlerInterface: Start Event Wait');
187    {$IFDEF WINDOWS}
188    WaitForSingleObject(FEventHandler,INFINITE);
189    {$ELSE}
190    FEventWaiting.WaitFor(INFINITE);
191    {$ENDIF}
192 < //  writeln('Event Wait Ends');
192 > //  writeln('TEventhandlerInterface: Event Wait Ends');
193   end;
194  
195   procedure TEventhandlerInterface.CancelWait;
# Line 212 | Line 217 | end;
217   constructor TEventHandlerThread.Create(Owner: TFB30Events;
218    EventHandler: TEventhandlerInterface);
219   begin
220 <  inherited Create(true);
220 >  inherited Create(false);
221    FOwner := Owner;
222    FEventHandler := EventHandler;
223    FreeOnTerminate := true;
219  Start;
224   end;
225  
226   procedure TEventHandlerThread.Terminate;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines