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

git-svn-id: trunk@15565 -
This commit is contained in:
michael 2010-07-14 14:26:09 +00:00
parent 7e2f713d09
commit 614d5e4858
2 changed files with 11 additions and 5 deletions

View File

@ -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

View File

@ -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 }