Browse Source

* Added support for modules that do not have a stream associated with them; they are created with CreateNew

git-svn-id: trunk@15565 -
michael 15 years ago
parent
commit
614d5e4858
2 changed files with 11 additions and 5 deletions
  1. 4 1
      packages/fcl-web/src/base/custweb.pp
  2. 7 4
      packages/fcl-web/src/base/fphttp.pp

+ 4 - 1
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

+ 7 - 4
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 }