Bladeren bron

* Allow to set content stream on request

Michaël Van Canneyt 1 maand geleden
bovenliggende
commit
c083d61c00
1 gewijzigde bestanden met toevoegingen van 13 en 1 verwijderingen
  1. 13 1
      packages/fcl-web/src/base/fpwebclient.pp

+ 13 - 1
packages/fcl-web/src/base/fpwebclient.pp

@@ -50,6 +50,7 @@ Type
   Protected
     function GetHeaders: TStrings;virtual;
     function GetStream: TStream;virtual;
+    procedure SetStream(aValue : TStream); virtual;
     property IsAsync : Boolean read FIsAsync;
   Public
     constructor create(aASync : Boolean; const aRequestID : String = '');
@@ -61,7 +62,9 @@ Type
     // Request headers or response headers
     Property Headers : TStrings Read GetHeaders;
     // Request content or response content
-    Property Content: TStream Read GetStream;
+    Property Content: TStream Read GetStream Write SetStream;
+    // Request/Response own the stream, i.e. free the stream when destroyed.
+    Property OwnsStream : Boolean Read FOwnsStream Write FOwnsStream;
     // SSLVersion : Which version to use
     Property SSLVersion : TSSLVersion Read FSSLVersion Write FSSLVersion;
   end;
@@ -504,6 +507,15 @@ begin
   Result:=FStream;
 end;
 
+procedure TRequestResponse.SetStream(aValue : TStream); 
+begin
+  if aValue=FStream then 
+    exit;
+  if FOwnsStream then
+    FreeAndNil(FStream);
+  FStream:=aValue;    
+end;
+
 constructor TRequestResponse.Create(aAsync: Boolean; const aRequestID : String);
 
 begin