From 614d5e485859f963b83104e1d9c67702268591bd Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 14 Jul 2010 14:26:09 +0000 Subject: [PATCH] * Added support for modules that do not have a stream associated with them; they are created with CreateNew git-svn-id: trunk@15565 - --- packages/fcl-web/src/base/custweb.pp | 5 ++++- packages/fcl-web/src/base/fphttp.pp | 11 +++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/fcl-web/src/base/custweb.pp b/packages/fcl-web/src/base/custweb.pp index 319bb927fc..f7e2e9a8c1 100644 --- a/packages/fcl-web/src/base/custweb.pp +++ b/packages/fcl-web/src/base/custweb.pp @@ -264,7 +264,10 @@ begin end; M:=FindModule(MC); // Check if a module exists already If (M=Nil) then - M:=MC.Create(Self); + if Mi.SkipStreaming then + M:=MC.CreateNew(Self) + else + M:=MC.Create(Self); SetBaseURL(M,MN,ARequest); if M.Kind=wkOneShot then begin diff --git a/packages/fcl-web/src/base/fphttp.pp b/packages/fcl-web/src/base/fphttp.pp index 77073977a4..314333403d 100644 --- a/packages/fcl-web/src/base/fphttp.pp +++ b/packages/fcl-web/src/base/fphttp.pp @@ -120,9 +120,11 @@ Type private FModuleClass: TCustomHTTPModuleClass; FModuleName: String; + FSkipStreaming: Boolean; Public Property ModuleClass : TCustomHTTPModuleClass Read FModuleClass Write FModuleClass; Property ModuleName : String Read FModuleName Write FModuleName; + Property SkipStreaming : Boolean Read FSkipStreaming Write FSkipStreaming; end; { TModuleFactory } @@ -140,8 +142,8 @@ Type EFPHTTPError = Class(Exception); -Procedure RegisterHTTPModule(ModuleClass : TCustomHTTPModuleClass); -Procedure RegisterHTTPModule(Const ModuleName : String; ModuleClass : TCustomHTTPModuleClass); +Procedure RegisterHTTPModule(ModuleClass : TCustomHTTPModuleClass; SkipStreaming : Boolean = False); +Procedure RegisterHTTPModule(Const ModuleName : String; ModuleClass : TCustomHTTPModuleClass; SkipStreaming : Boolean = False); Var ModuleFactory : TModuleFactory; @@ -202,13 +204,13 @@ begin end; -procedure RegisterHTTPModule(ModuleClass: TCustomHTTPModuleClass); +procedure RegisterHTTPModule(ModuleClass: TCustomHTTPModuleClass; SkipStreaming : Boolean = False); begin RegisterHTTPModule(ModuleClass.ClassName,ModuleClass); end; procedure RegisterHTTPModule(const ModuleName: String; - ModuleClass: TCustomHTTPModuleClass); + ModuleClass: TCustomHTTPModuleClass; SkipStreaming : Boolean = False); Var I : Integer; @@ -224,6 +226,7 @@ begin else MI:=ModuleFactory[I]; MI.ModuleClass:=ModuleClass; + MI.SkipStreaming:=SkipStreaming; end; { THTTPContentProducer }