|
@@ -201,24 +201,30 @@ Type
|
|
FAfterCreate: TJSONRPCHandlerEvent;
|
|
FAfterCreate: TJSONRPCHandlerEvent;
|
|
FArgumentCount: Integer;
|
|
FArgumentCount: Integer;
|
|
FBeforeCreate: TBeforeCreateJSONRPCHandlerEvent;
|
|
FBeforeCreate: TBeforeCreateJSONRPCHandlerEvent;
|
|
|
|
+ FParamDefs: TJSONParamDefs;
|
|
FPClass: TCustomJSONRPCHandlerClass;
|
|
FPClass: TCustomJSONRPCHandlerClass;
|
|
FDataModuleClass : TDataModuleClass;
|
|
FDataModuleClass : TDataModuleClass;
|
|
FHandlerMethodName: TJSONStringType;
|
|
FHandlerMethodName: TJSONStringType;
|
|
FHandlerClassName: TJSONStringType;
|
|
FHandlerClassName: TJSONStringType;
|
|
procedure CheckNames(const AClassName, AMethodName: TJSONStringType);
|
|
procedure CheckNames(const AClassName, AMethodName: TJSONStringType);
|
|
|
|
+ function GetParamDefs: TJSONParamDefs;
|
|
procedure SetFPClass(const AValue: TCustomJSONRPCHandlerClass);
|
|
procedure SetFPClass(const AValue: TCustomJSONRPCHandlerClass);
|
|
procedure SetHandlerClassName(const AValue: TJSONStringType);
|
|
procedure SetHandlerClassName(const AValue: TJSONStringType);
|
|
procedure SetHandlerMethodName(const AValue: TJSONStringType);
|
|
procedure SetHandlerMethodName(const AValue: TJSONStringType);
|
|
|
|
+ procedure SetParamDefs(AValue: TJSONParamDefs);
|
|
protected
|
|
protected
|
|
Function CreateInstance(AOwner : TComponent; Out AContainer : TComponent) : TCustomJSONRPCHandler; virtual;
|
|
Function CreateInstance(AOwner : TComponent; Out AContainer : TComponent) : TCustomJSONRPCHandler; virtual;
|
|
Property DataModuleClass : TDataModuleClass Read FDataModuleClass;
|
|
Property DataModuleClass : TDataModuleClass Read FDataModuleClass;
|
|
Public
|
|
Public
|
|
|
|
+ Destructor Destroy; override;
|
|
|
|
+ Function HaveParamDefs : Boolean;
|
|
Property HandlerClassName : TJSONStringType Read FHandlerClassName Write SetHandlerClassName;
|
|
Property HandlerClassName : TJSONStringType Read FHandlerClassName Write SetHandlerClassName;
|
|
Property HandlerMethodName : TJSONStringType Read FHandlerMethodName Write SetHandlerMethodName;
|
|
Property HandlerMethodName : TJSONStringType Read FHandlerMethodName Write SetHandlerMethodName;
|
|
Property HandlerClass : TCustomJSONRPCHandlerClass Read FPClass Write SetFPClass;
|
|
Property HandlerClass : TCustomJSONRPCHandlerClass Read FPClass Write SetFPClass;
|
|
Property BeforeCreate : TBeforeCreateJSONRPCHandlerEvent Read FBeforeCreate Write FBeforeCreate;
|
|
Property BeforeCreate : TBeforeCreateJSONRPCHandlerEvent Read FBeforeCreate Write FBeforeCreate;
|
|
Property AfterCreate : TJSONRPCHandlerEvent Read FAfterCreate Write FAfterCreate;
|
|
Property AfterCreate : TJSONRPCHandlerEvent Read FAfterCreate Write FAfterCreate;
|
|
Property ArgumentCount : Integer Read FArgumentCount Write FArgumentCount;
|
|
Property ArgumentCount : Integer Read FArgumentCount Write FArgumentCount;
|
|
|
|
+ Property ParamDefs : TJSONParamDefs Read GetParamDefs Write SetParamDefs;
|
|
end;
|
|
end;
|
|
|
|
|
|
{ TJSONRPCHandlerDefs }
|
|
{ TJSONRPCHandlerDefs }
|
|
@@ -976,7 +982,8 @@ begin
|
|
FPClass:=AValue;
|
|
FPClass:=AValue;
|
|
end;
|
|
end;
|
|
|
|
|
|
-procedure TJSONRPCHandlerDef.CheckNames(Const AClassName,AMethodName : TJSONStringType);
|
|
|
|
|
|
+procedure TJSONRPCHandlerDef.CheckNames(const AClassName,
|
|
|
|
+ AMethodName: TJSONStringType);
|
|
|
|
|
|
Var
|
|
Var
|
|
I : Integer;
|
|
I : Integer;
|
|
@@ -993,6 +1000,13 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONRPCHandlerDef.GetParamDefs: TJSONParamDefs;
|
|
|
|
+begin
|
|
|
|
+ IF (FParamDefs=Nil) then
|
|
|
|
+ FParamDefs:=TJSONParamDefs.Create(TJSONParamDef);
|
|
|
|
+ Result:=FParamDefs;
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TJSONRPCHandlerDef.SetHandlerClassName(const AValue: TJSONStringType);
|
|
procedure TJSONRPCHandlerDef.SetHandlerClassName(const AValue: TJSONStringType);
|
|
begin
|
|
begin
|
|
if FHandlerClassName=AValue then exit;
|
|
if FHandlerClassName=AValue then exit;
|
|
@@ -1008,6 +1022,17 @@ begin
|
|
FHandlerMethodName:=AValue;
|
|
FHandlerMethodName:=AValue;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TJSONRPCHandlerDef.SetParamDefs(AValue: TJSONParamDefs);
|
|
|
|
+begin
|
|
|
|
+ if FParamDefs=AValue then Exit;
|
|
|
|
+ IF (FParamDefs=Nil) then
|
|
|
|
+ FParamDefs:=TJSONParamDefs.Create(TJSONParamDef);
|
|
|
|
+ if (AValue<>Nil) then
|
|
|
|
+ FParamDefs.Assign(AValue)
|
|
|
|
+ else
|
|
|
|
+ FreeAndNil(FParamDefs);
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONRPCHandlerDef.CreateInstance(AOwner: TComponent; out
|
|
function TJSONRPCHandlerDef.CreateInstance(AOwner: TComponent; out
|
|
AContainer: TComponent): TCustomJSONRPCHandler;
|
|
AContainer: TComponent): TCustomJSONRPCHandler;
|
|
|
|
|
|
@@ -1048,6 +1073,17 @@ begin
|
|
FAfterCreate(Self,Result);
|
|
FAfterCreate(Self,Result);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+destructor TJSONRPCHandlerDef.Destroy;
|
|
|
|
+begin
|
|
|
|
+ FreeAndNil(FParamDefs);
|
|
|
|
+ inherited Destroy;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSONRPCHandlerDef.HaveParamDefs: Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(FParamDefs);
|
|
|
|
+end;
|
|
|
|
+
|
|
{ TJSONRPCHandlerDefs }
|
|
{ TJSONRPCHandlerDefs }
|
|
|
|
|
|
function TJSONRPCHandlerDefs.GetH(Index: Integer): TJSONRPCHandlerDef;
|
|
function TJSONRPCHandlerDefs.GetH(Index: Integer): TJSONRPCHandlerDef;
|
|
@@ -1158,6 +1194,7 @@ begin
|
|
JSONRPCError(SErrDuplicateRPCCLassMethodHandler,[CN,C.Name]);
|
|
JSONRPCError(SErrDuplicateRPCCLassMethodHandler,[CN,C.Name]);
|
|
D:=AddHandlerDef(CN,C.Name);
|
|
D:=AddHandlerDef(CN,C.Name);
|
|
D.ArgumentCount:=TCustomJSONRPCHandler(C).ParamDefs.Count;
|
|
D.ArgumentCount:=TCustomJSONRPCHandler(C).ParamDefs.Count;
|
|
|
|
+ D.ParamDefs:=TCustomJSONRPCHandler(C).ParamDefs;
|
|
{$ifdef wmdebug}SendDebug('Registering provider '+C.Name);{$endif}
|
|
{$ifdef wmdebug}SendDebug('Registering provider '+C.Name);{$endif}
|
|
D.FDataModuleClass:=TDataModuleClass(DM.ClassType);
|
|
D.FDataModuleClass:=TDataModuleClass(DM.ClassType);
|
|
end;
|
|
end;
|