Part 2
FPC UnicodeString support (+ test cases) WideString support (+ test cases) git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@556 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
812edb945c
commit
5a497d957a
@ -20,7 +20,7 @@ interface
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
service_intf, imp_utils, base_service_intf, library_base_intf,
|
||||
library_imp_utils;
|
||||
library_imp_utils, wst_types;
|
||||
|
||||
const
|
||||
sTRANSPORT_NAME = 'LIB';
|
||||
@ -105,11 +105,11 @@ procedure TLIBTransport.SendAndReceive(ARequest, AResponse: TStream);
|
||||
Var
|
||||
wrtr : IDataStore;
|
||||
buffStream : TMemoryStream;
|
||||
strBuff : string;
|
||||
strBuff : TBinaryString;
|
||||
intfBuffer : IwstStream;
|
||||
bl : LongInt;
|
||||
{$IFDEF WST_DBG}
|
||||
s : string;
|
||||
s : TBinaryString;
|
||||
i : Int64;
|
||||
{$ENDIF WST_DBG}
|
||||
begin
|
||||
@ -118,9 +118,9 @@ begin
|
||||
try
|
||||
wrtr := CreateBinaryWriter(buffStream);
|
||||
wrtr.WriteInt32S(0);
|
||||
wrtr.WriteStr(Target);
|
||||
wrtr.WriteStr(ContentType);
|
||||
wrtr.WriteStr(Self.Format);
|
||||
wrtr.WriteAnsiStr(Target);
|
||||
wrtr.WriteAnsiStr(ContentType);
|
||||
wrtr.WriteAnsiStr(Self.Format);
|
||||
SetLength(strBuff,ARequest.Size);
|
||||
ARequest.Position := 0;
|
||||
ARequest.Read(strBuff[1],Length(strBuff));
|
||||
@ -128,7 +128,7 @@ begin
|
||||
if IsConsole then
|
||||
WriteLn(strBuff);
|
||||
{$ENDIF WST_DBG}
|
||||
wrtr.WriteStr(strBuff);
|
||||
wrtr.WriteAnsiStr(strBuff);
|
||||
buffStream.Position := 0;
|
||||
wrtr.WriteInt32S(buffStream.Size-4);
|
||||
|
||||
|
@ -17,10 +17,7 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
library_base_intf;
|
||||
|
||||
{$INCLUDE wst.inc}
|
||||
{$INCLUDE wst_delphi.inc}
|
||||
library_base_intf, wst_types;
|
||||
|
||||
function wstHandleRequest(
|
||||
ARequestBuffer : IwstStream;
|
||||
@ -42,7 +39,7 @@ function wstHandleRequest(
|
||||
j,m : Integer;
|
||||
begin
|
||||
m := AErrorBufferLen;
|
||||
j := Length(AMsg);
|
||||
j := Length(AMsg) * SizeOf(Char);
|
||||
if ( j > 0 ) then begin
|
||||
if ( j > m ) then
|
||||
j := m;
|
||||
@ -54,7 +51,7 @@ function wstHandleRequest(
|
||||
end;
|
||||
|
||||
Var
|
||||
buff, trgt,ctntyp, frmt : string;
|
||||
buff, trgt,ctntyp, frmt : TBinaryString;
|
||||
rqst : IRequestBuffer;
|
||||
rdr : IDataStoreReader;
|
||||
inStream, bufStream : TMemoryStream;
|
||||
@ -82,10 +79,10 @@ begin
|
||||
rdr := CreateBinaryReader(bufStream);
|
||||
if ( rdr.ReadInt32S() <> ( bs - 4 ) ) then
|
||||
wstCheck(RET_FALSE,'Invalid buffer.');
|
||||
trgt := rdr.ReadStr();
|
||||
ctntyp := rdr.ReadStr();
|
||||
frmt := rdr.ReadStr();
|
||||
buff := rdr.ReadStr();
|
||||
trgt := rdr.ReadAnsiStr();
|
||||
ctntyp := rdr.ReadAnsiStr();
|
||||
frmt := rdr.ReadAnsiStr();
|
||||
buff := rdr.ReadAnsiStr();
|
||||
rdr := nil;
|
||||
bufStream.Size := 0;
|
||||
bufStream.Position := 0;
|
||||
|
@ -320,8 +320,8 @@ var
|
||||
|
||||
procedure LoadParam(APrm : POperationParam);
|
||||
begin
|
||||
APrm^.Name := rdr.ReadStr();
|
||||
APrm^.TypeName := rdr.ReadStr();
|
||||
APrm^.Name := rdr.ReadAnsiStr();
|
||||
APrm^.TypeName := rdr.ReadAnsiStr();
|
||||
APrm^.Modifier := TOperationParamFlag(rdr.ReadEnum());
|
||||
end;
|
||||
|
||||
@ -329,7 +329,7 @@ var
|
||||
ii, cc : LongInt;
|
||||
pp : POperationParam;
|
||||
begin
|
||||
AOperation^.Name := rdr.ReadStr();
|
||||
AOperation^.Name := rdr.ReadAnsiStr();
|
||||
AOperation^.Properties := nil;
|
||||
cc := rdr.ReadInt8U();
|
||||
if ( cc > 0 ) then begin
|
||||
@ -349,7 +349,7 @@ var
|
||||
j, k : LongInt;
|
||||
po : PServiceOperation;
|
||||
begin
|
||||
AService^.Name := rdr.ReadStr();
|
||||
AService^.Name := rdr.ReadAnsiStr();
|
||||
AService^.Properties := nil;
|
||||
k := rdr.ReadInt8U();
|
||||
if ( k > 0 ) then begin
|
||||
@ -372,14 +372,14 @@ var
|
||||
begin
|
||||
ARepository := nil;
|
||||
rdr := CreateBinaryReader(AStream);
|
||||
buf := rdr.ReadStr();
|
||||
buf := rdr.ReadAnsiStr();
|
||||
if ( sWST_SIGNATURE <> buf ) then
|
||||
raise EMetadataException.CreateFmt('Invalid Metadata signature : "%s"',[buf]);
|
||||
c := SizeOf(TServiceRepository);
|
||||
ARepository := wst_GetMem(c);
|
||||
try
|
||||
FillChar(ARepository^,c,#0);
|
||||
ARepository^.Name := rdr.ReadStr();
|
||||
ARepository^.Name := rdr.ReadAnsiStr();
|
||||
c := rdr.ReadInt8U();
|
||||
if ( c > 0 ) then begin
|
||||
ARepository^.Services := wst_GetMem( c * SizeOf(TService) );
|
||||
|
@ -346,6 +346,38 @@ begin
|
||||
SetStrProp(AObject,APropInfo.PropInfo,locData);
|
||||
end;
|
||||
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
procedure UnicodeStringReader(
|
||||
AObject : TObject;
|
||||
APropInfo : TPropSerializationInfo;
|
||||
AStore : IFormatterBase
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
locData : UnicodeString;
|
||||
begin
|
||||
locData := '';
|
||||
locName := APropInfo.ExternalName;
|
||||
AStore.Get(APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},locName,locData);
|
||||
SetUnicodeStrProp(AObject,APropInfo.PropInfo,locData);
|
||||
end;
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
|
||||
procedure WideStringReader(
|
||||
AObject : TObject;
|
||||
APropInfo : TPropSerializationInfo;
|
||||
AStore : IFormatterBase
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
locData : WideString;
|
||||
begin
|
||||
locData := '';
|
||||
locName := APropInfo.ExternalName;
|
||||
AStore.Get(APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},locName,locData);
|
||||
SetWideStrProp(AObject,APropInfo.PropInfo,locData);
|
||||
end;
|
||||
|
||||
// Qualified readers
|
||||
{$IFDEF HAS_TKBOOL}
|
||||
procedure BoolReaderQualifier(
|
||||
@ -524,6 +556,38 @@ begin
|
||||
SetStrProp(AObject,APropInfo.PropInfo,locData);
|
||||
end;
|
||||
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
procedure UnicodeStringReaderQualified(
|
||||
AObject : TObject;
|
||||
APropInfo : TPropSerializationInfo;
|
||||
AStore : IFormatterBase
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
locData : UnicodeString;
|
||||
begin
|
||||
locData := '';
|
||||
locName := APropInfo.ExternalName;
|
||||
AStore.Get(APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},APropInfo.NameSpace,locName,locData);
|
||||
SetUnicodeStrProp(AObject,APropInfo.PropInfo,locData);
|
||||
end;
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
|
||||
procedure WideStringReaderQualified(
|
||||
AObject : TObject;
|
||||
APropInfo : TPropSerializationInfo;
|
||||
AStore : IFormatterBase
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
locData : WideString;
|
||||
begin
|
||||
locData := '';
|
||||
locName := APropInfo.ExternalName;
|
||||
AStore.Get(APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},APropInfo.NameSpace,locName,locData);
|
||||
SetWideStrProp(AObject,APropInfo.PropInfo,locData);
|
||||
end;
|
||||
|
||||
// Simple Writers
|
||||
{$IFDEF HAS_TKBOOL}
|
||||
procedure BoolWriter(
|
||||
@ -687,6 +751,35 @@ begin
|
||||
AStore.Put(locName,APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},locData);
|
||||
end;
|
||||
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
procedure UnicodeStringWriter(
|
||||
AObject : TObject;
|
||||
APropInfo : TPropSerializationInfo;
|
||||
AStore : IFormatterBase
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
locData : UnicodeString;
|
||||
begin
|
||||
locName := APropInfo.ExternalName;
|
||||
locData := GetUnicodeStrProp(AObject,APropInfo.PropInfo);
|
||||
AStore.Put(locName,APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},locData);
|
||||
end;
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
|
||||
procedure WideStringWriter(
|
||||
AObject : TObject;
|
||||
APropInfo : TPropSerializationInfo;
|
||||
AStore : IFormatterBase
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
locData : WideString;
|
||||
begin
|
||||
locName := APropInfo.ExternalName;
|
||||
locData := GetWideStrProp(AObject,APropInfo.PropInfo);
|
||||
AStore.Put(locName,APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},locData);
|
||||
end;
|
||||
|
||||
// Qualified writers
|
||||
{$IFDEF HAS_TKBOOL}
|
||||
@ -851,6 +944,35 @@ begin
|
||||
AStore.Put(APropInfo.NameSpace,locName,APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},locData);
|
||||
end;
|
||||
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
procedure UnicodeStringWriterQualified(
|
||||
AObject : TObject;
|
||||
APropInfo : TPropSerializationInfo;
|
||||
AStore : IFormatterBase
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
locData : UnicodeString;
|
||||
begin
|
||||
locName := APropInfo.ExternalName;
|
||||
locData := GetUnicodeStrProp(AObject,APropInfo.PropInfo);
|
||||
AStore.Put(APropInfo.NameSpace,locName,APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},locData);
|
||||
end;
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
|
||||
procedure WideStringWriterQualified(
|
||||
AObject : TObject;
|
||||
APropInfo : TPropSerializationInfo;
|
||||
AStore : IFormatterBase
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
locData : WideString;
|
||||
begin
|
||||
locName := APropInfo.ExternalName;
|
||||
locData := GetWideStrProp(AObject,APropInfo.PropInfo);
|
||||
AStore.Put(APropInfo.NameSpace,locName,APropInfo.PropInfo^.PropType{$IFDEF WST_DELPHI}^{$ENDIF},locData);
|
||||
end;
|
||||
|
||||
|
||||
type
|
||||
@ -863,54 +985,68 @@ var
|
||||
{$IFDEF FPC}
|
||||
ReaderWriterInfoMap : array[0..1] of array[TTypeKind] of TReaderWriterInfo = (
|
||||
( // Readers
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkUnknown
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}IntEnumReader; Qualified : {$IFDEF FPC}@{$ENDIF}IntEnumReaderQualified ;) , //tkInteger
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkChar
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}IntEnumReader; Qualified : {$IFDEF FPC}@{$ENDIF}IntEnumReaderQualified ;) , //tkEnumeration
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}FloatReader; Qualified : {$IFDEF FPC}@{$ENDIF}FloatReaderQualified ;) , //tkFloat
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkSet
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkMethod
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}StringReader; Qualified : {$IFDEF FPC}@{$ENDIF}StringReaderQualified ;) , //tkSString
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}StringReader; Qualified : {$IFDEF FPC}@{$ENDIF}StringReaderQualified ;) , //tkLString
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}StringReader; Qualified : {$IFDEF FPC}@{$ENDIF}StringReaderQualified ;) , //tkAString
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkWString
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkVariant
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkArray
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkRecord
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkInterface
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ClassReader; Qualified : {$IFDEF FPC}@{$ENDIF}ClassReaderQualified ;) , //tkClass
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkObject
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkWChar
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}BoolReader; Qualified : {$IFDEF FPC}@{$ENDIF}BoolReaderQualifier ;) , //tkBool
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}Int64Reader; Qualified : {$IFDEF FPC}@{$ENDIF}Int64ReaderQualified ;) , //tkInt64
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}Int64Reader; Qualified : {$IFDEF FPC}@{$ENDIF}Int64ReaderQualified ;) , //tkQWord
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkDynArray
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) //tkInterfaceRaw
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkUnknown
|
||||
( Simple : @IntEnumReader; Qualified : @IntEnumReaderQualified ;) , //tkInteger
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkChar
|
||||
( Simple : @IntEnumReader; Qualified : @IntEnumReaderQualified ;) , //tkEnumeration
|
||||
( Simple : @FloatReader; Qualified : @FloatReaderQualified ;) , //tkFloat
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkSet
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkMethod
|
||||
( Simple : @StringReader; Qualified : @StringReaderQualified ;) , //tkSString
|
||||
( Simple : @StringReader; Qualified : @StringReaderQualified ;) , //tkLString
|
||||
( Simple : @StringReader; Qualified : @StringReaderQualified ;) , //tkAString
|
||||
( Simple : @WideStringReader; Qualified : @WideStringReaderQualified ;) , //tkWString
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkVariant
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkArray
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkRecord
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkInterface
|
||||
( Simple : @ClassReader; Qualified : @ClassReaderQualified ;) , //tkClass
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkObject
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkWChar
|
||||
( Simple : @BoolReader; Qualified : @BoolReaderQualifier ;) , //tkBool
|
||||
( Simple : @Int64Reader; Qualified : @Int64ReaderQualified ;) , //tkInt64
|
||||
( Simple : @Int64Reader; Qualified : @Int64ReaderQualified ;) , //tkQWord
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkDynArray
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) //tkInterfaceRaw
|
||||
{$IFDEF WST_TKPROCVAR}
|
||||
,( Simple : @ErrorProc; Qualified : @ErrorProc ;) //tkProcVar
|
||||
{$ENDIF WST_TKPROCVAR}
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
,( Simple : @UnicodeStringReader; Qualified : @UnicodeStringReaderQualified ;) //tkUString
|
||||
,( Simple : @ErrorProc; Qualified : @ErrorProc ;) //tkUChar
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
),
|
||||
( // Writers
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkUnknown
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}IntEnumWriter; Qualified : {$IFDEF FPC}@{$ENDIF}IntEnumWriterQualified ;) , //tkInteger
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkChar
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}IntEnumWriter; Qualified : {$IFDEF FPC}@{$ENDIF}IntEnumWriterQualified ;) , //tkEnumeration
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}FloatWriter; Qualified : {$IFDEF FPC}@{$ENDIF}FloatWriterQualified ;) , //tkFloat
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkSet
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkMethod
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}StringWriter; Qualified : {$IFDEF FPC}@{$ENDIF}StringWriterQualified ;) , //tkSString
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}StringWriter; Qualified : {$IFDEF FPC}@{$ENDIF}StringWriterQualified ;) , //tkLString
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}StringWriter; Qualified : {$IFDEF FPC}@{$ENDIF}StringWriterQualified ;) , //tkAString
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkWString
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkVariant
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkArray
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkRecord
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkInterface
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ClassWriter; Qualified : {$IFDEF FPC}@{$ENDIF}ClassWriterQualified ;) , //tkClass
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkObject
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkWChar
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}BoolWriter; Qualified : {$IFDEF FPC}@{$ENDIF}BoolWriterQualified ;) , //tkBool
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}Int64Writer; Qualified : {$IFDEF FPC}@{$ENDIF}Int64WriterQualified ;) , //tkInt64
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}Int64Writer; Qualified : {$IFDEF FPC}@{$ENDIF}Int64WriterQualified ;) , //tkQWord
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) , //tkDynArray
|
||||
( Simple : {$IFDEF FPC}@{$ENDIF}ErrorProc; Qualified : {$IFDEF FPC}@{$ENDIF}ErrorProc ;) //tkInterfaceRaw
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkUnknown
|
||||
( Simple : @IntEnumWriter; Qualified : @IntEnumWriterQualified ;) , //tkInteger
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkChar
|
||||
( Simple : @IntEnumWriter; Qualified : @IntEnumWriterQualified ;) , //tkEnumeration
|
||||
( Simple : @FloatWriter; Qualified : @FloatWriterQualified ;) , //tkFloat
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkSet
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkMethod
|
||||
( Simple : @StringWriter; Qualified : @StringWriterQualified ;) , //tkSString
|
||||
( Simple : @StringWriter; Qualified : @StringWriterQualified ;) , //tkLString
|
||||
( Simple : @StringWriter; Qualified : @StringWriterQualified ;) , //tkAString
|
||||
( Simple : @WideStringWriter; Qualified : @WideStringWriterQualified ;) , //tkWString
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkVariant
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkArray
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkRecord
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkInterface
|
||||
( Simple : @ClassWriter; Qualified : @ClassWriterQualified ;) , //tkClass
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkObject
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkWChar
|
||||
( Simple : @BoolWriter; Qualified : @BoolWriterQualified ;) , //tkBool
|
||||
( Simple : @Int64Writer; Qualified : @Int64WriterQualified ;) , //tkInt64
|
||||
( Simple : @Int64Writer; Qualified : @Int64WriterQualified ;) , //tkQWord
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) , //tkDynArray
|
||||
( Simple : @ErrorProc; Qualified : @ErrorProc ;) //tkInterfaceRaw
|
||||
{$IFDEF WST_TKPROCVAR}
|
||||
,( Simple : @ErrorProc; Qualified : @ErrorProc ;) //tkProcVar
|
||||
{$ENDIF WST_TKPROCVAR}
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
,( Simple : @UnicodeStringWriter; Qualified : @UnicodeStringWriterQualified ;) //tkUString
|
||||
,( Simple : @ErrorProc; Qualified : @ErrorProc ;) //tkUChar
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
)
|
||||
);
|
||||
{$ENDIF FPC}
|
||||
@ -929,7 +1065,7 @@ var
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkMethod
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkWChar
|
||||
( Simple : StringReader; Qualified : StringReaderQualified ;) , //tkLString
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkWString
|
||||
( Simple : WideStringReader; Qualified : WideStringReaderQualified ;) , //tkWString
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkVariant
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkArray
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkRecord
|
||||
@ -949,7 +1085,7 @@ var
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkMethod
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkWChar
|
||||
( Simple : StringWriter; Qualified : StringWriterQualified ;) , //tkLString
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkWString
|
||||
( Simple : WideStringWriter; Qualified : WideStringWriterQualified ;) , //tkWString
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkVariant
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkArray
|
||||
( Simple : ErrorProc; Qualified : ErrorProc ;) , //tkRecord
|
||||
|
@ -18,7 +18,7 @@ interface
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
service_intf, imp_utils,
|
||||
server_service_intf, server_service_imputils, base_service_intf;
|
||||
server_service_intf, server_service_imputils, base_service_intf, wst_types;
|
||||
|
||||
Const
|
||||
sTRANSPORT_NAME = 'SAME_PROCESS';
|
||||
@ -73,7 +73,7 @@ procedure TInProcessTransport.SendAndReceive(ARequest, AResponse: TStream);
|
||||
Var
|
||||
bffr : IRequestBuffer;
|
||||
{$IFDEF WST_DBG}
|
||||
s : string;
|
||||
s : TBinaryString;
|
||||
i : Int64;
|
||||
{$ENDIF WST_DBG}
|
||||
begin
|
||||
|
@ -163,7 +163,7 @@ procedure THTTPTransport.SendAndReceive(ARequest, AResponse: TStream);
|
||||
end;
|
||||
|
||||
var
|
||||
s : string;
|
||||
s : TBinaryString;
|
||||
{$ENDIF}
|
||||
begin
|
||||
FConnection.Document.Size := 0;
|
||||
|
@ -119,13 +119,13 @@ begin
|
||||
Try
|
||||
wrtr := CreateBinaryWriter(buffStream);
|
||||
wrtr.WriteInt32S(0);
|
||||
wrtr.WriteStr(Target);
|
||||
wrtr.WriteStr(ContentType);
|
||||
wrtr.WriteStr(Self.Format);
|
||||
wrtr.WriteAnsiStr(Target);
|
||||
wrtr.WriteAnsiStr(ContentType);
|
||||
wrtr.WriteAnsiStr(Self.Format);
|
||||
SetLength(strBuff,ARequest.Size);
|
||||
ARequest.Position := 0;
|
||||
ARequest.Read(strBuff[1],Length(strBuff));
|
||||
wrtr.WriteStr(strBuff);
|
||||
wrtr.WriteAnsiStr(strBuff);
|
||||
buffStream.Position := 0;
|
||||
wrtr.WriteInt32S(buffStream.Size-4);
|
||||
|
||||
|
@ -27,6 +27,7 @@ const
|
||||
|
||||
function CompareNodes(const A,B : TDOMNode) : Boolean;overload;
|
||||
function wstExpandLocalFileName(const AFileName : string) : string;
|
||||
function DumpMemory(AMem : Pointer; const ALength : PtrInt) : ansistring;
|
||||
|
||||
implementation
|
||||
|
||||
@ -35,6 +36,17 @@ begin
|
||||
Result := AFileName;
|
||||
end;
|
||||
|
||||
function DumpMemory(AMem : Pointer; const ALength : PtrInt) : ansistring;
|
||||
var
|
||||
i : PtrInt;
|
||||
begin
|
||||
Result := '';
|
||||
for i := 0 to Pred(ALength) do begin
|
||||
Result := Result + '[' + IntToStr(Ord(PAnsiChar(AMem)^)) + ']';
|
||||
Inc(PAnsiChar(AMem));
|
||||
end;
|
||||
end;
|
||||
|
||||
function CompareNodes(const A,B : TDOMNode) : Boolean;overload;
|
||||
var
|
||||
ca, cb : TDOMNode;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -21,11 +21,6 @@
|
||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="FPCUnitTestRunner"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="39">
|
||||
<Unit0>
|
||||
<Filename Value="wst_test_suite.lpr"/>
|
||||
@ -225,7 +220,7 @@
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
<Version Value="8"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="wst_test_suite.exe"/>
|
||||
@ -246,7 +241,6 @@
|
||||
<RangeChecks Value="True"/>
|
||||
<OverflowChecks Value="True"/>
|
||||
</Checks>
|
||||
<Generate Value="Faster"/>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
|
@ -128,7 +128,7 @@
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
<Version Value="8"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="wst_test_suite_gui.exe"/>
|
||||
@ -143,7 +143,6 @@
|
||||
<RangeChecks Value="True"/>
|
||||
<OverflowChecks Value="True"/>
|
||||
</Checks>
|
||||
<Generate Value="Faster"/>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
|
@ -58,8 +58,8 @@ var
|
||||
typeList : TList;
|
||||
elt : TPasElement;
|
||||
begin
|
||||
FStream.WriteStr(sWST_META);
|
||||
FStream.WriteStr(FSymbolTable.CurrentModule.Name);
|
||||
FStream.WriteAnsiStr(sWST_META);
|
||||
FStream.WriteAnsiStr(FSymbolTable.CurrentModule.Name);
|
||||
k := 0;
|
||||
typeList := FSymbolTable.CurrentModule.InterfaceSection.Declarations;
|
||||
c := typeList.Count;
|
||||
@ -77,15 +77,15 @@ procedure TMetadataGenerator.GenerateIntfMetadata(AIntf: TPasClassType);
|
||||
|
||||
procedure WriteParam(APrm : TPasArgument);
|
||||
begin
|
||||
FStream.WriteStr(APrm.Name);
|
||||
FStream.WriteStr(APrm.ArgType.Name);
|
||||
FStream.WriteAnsiStr(APrm.Name);
|
||||
FStream.WriteAnsiStr(APrm.ArgType.Name);
|
||||
FStream.WriteEnum(Ord(APrm.Access));
|
||||
end;
|
||||
|
||||
procedure WriteResult(ARes : TPasResultElement);
|
||||
begin
|
||||
FStream.WriteStr(ARes.Name);
|
||||
FStream.WriteStr(ARes.ResultType.Name);
|
||||
FStream.WriteAnsiStr(ARes.Name);
|
||||
FStream.WriteAnsiStr(ARes.ResultType.Name);
|
||||
FStream.WriteEnum(Ord(argOut));
|
||||
end;
|
||||
|
||||
@ -95,7 +95,7 @@ procedure TMetadataGenerator.GenerateIntfMetadata(AIntf: TPasClassType);
|
||||
begin
|
||||
argLst := AMeth.ProcType.Args;
|
||||
k := argLst.Count;
|
||||
FStream.WriteStr(AMeth.Name);
|
||||
FStream.WriteAnsiStr(AMeth.Name);
|
||||
if AMeth.InheritsFrom(TPasFunction) then begin
|
||||
FStream.WriteInt8U(k + 1);
|
||||
end else begin
|
||||
@ -114,7 +114,7 @@ var
|
||||
mbrs : TList;
|
||||
elt : TPasElement;
|
||||
begin
|
||||
FStream.WriteStr(AIntf.Name);
|
||||
FStream.WriteAnsiStr(AIntf.Name);
|
||||
c := GetElementCount(AIntf.Members,TPasProcedure);
|
||||
FStream.WriteInt8U(c);
|
||||
mbrs := AIntf.Members;
|
||||
|
@ -1,5 +1,7 @@
|
||||
{$DEFINE USE_SERIALIZE}
|
||||
{$UNDEF TRemotableTypeInitializer_Initialize}
|
||||
{$UNDEF WST_TKPROCVAR}
|
||||
{$UNDEF WST_UNICODESTRING}
|
||||
|
||||
{$WARNINGS OFF}
|
||||
|
||||
@ -10,8 +12,14 @@
|
||||
{$UNDEF WST_INTF_DOM}
|
||||
//{$DEFINE USE_INLINE}
|
||||
{$IF Defined(FPC_VERSION) and (FPC_VERSION = 2) }
|
||||
{$IF Defined(FPC_RELEASE) and (FPC_RELEASE > 0) }
|
||||
{$define FPC_211}
|
||||
{$IF Defined(FPC_RELEASE) }
|
||||
{$IF Defined(FPC_VERSION) and (FPC_RELEASE > 0) }
|
||||
{$define FPC_211}
|
||||
{$IF Defined(FPC_VERSION) and (FPC_RELEASE > 2) }
|
||||
{$DEFINE WST_TKPROCVAR}
|
||||
{$DEFINE WST_UNICODESTRING}
|
||||
{$IFEND}
|
||||
{$IFEND}
|
||||
{$IFEND}
|
||||
{$IFEND}
|
||||
{$IF Defined(FPC_211)}
|
||||
|
Loading…
Reference in New Issue
Block a user