blob: a34b047faa9c18844381b65b6f8b7899db628117 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
unit svrclass_XMLRPC;
interface
uses Classes, XMLRPC, svrclass;
type
TServerClassXMLRPCServlet = class(TXMLRPCServlet)
private
FServerClass: TServerClass;
protected
procedure Dispatch(AParser: TXMLRPCParser; AWriter: TXMLRPCWriter; APath: TStrings); override;
published
property ServerClass: TServerClass read FServerClass write FServerClass;
end;
implementation
procedure TServerClassXMLRPCServlet.Dispatch(AParser: TXMLRPCParser; AWriter: TXMLRPCWriter; APath: TStrings);
var
s: String;
begin
s := APath[0];
if s = 'WRITESTRING' then
begin
AParser.ResetValueCursor;
ServerClass.WriteString(AParser.GetPrevString);
AWriter.WriteResponse(nil);
end else if s = 'ADD' then
begin
AParser.ResetValueCursor;
AWriter.WriteResponse(AWriter.CreateIntValue(ServerClass.Add(AParser.GetPrevInt, AParser.GetPrevInt)));
end else
AWriter.WriteFaultResponse(2, 'Invalid method name');
end;
end.
|