diff --git a/wst/trunk/library_protocol.pas b/wst/trunk/library_protocol.pas
index eddbdc445..e2d815d3a 100644
--- a/wst/trunk/library_protocol.pas
+++ b/wst/trunk/library_protocol.pas
@@ -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);
diff --git a/wst/trunk/library_server_intf.pas b/wst/trunk/library_server_intf.pas
index 30affaa63..6fa12ff41 100644
--- a/wst/trunk/library_server_intf.pas
+++ b/wst/trunk/library_server_intf.pas
@@ -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;
diff --git a/wst/trunk/metadata_repository.pas b/wst/trunk/metadata_repository.pas
index fccc70175..0c0774349 100644
--- a/wst/trunk/metadata_repository.pas
+++ b/wst/trunk/metadata_repository.pas
@@ -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) );
diff --git a/wst/trunk/object_serializer.pas b/wst/trunk/object_serializer.pas
index f00d9279b..a0661ce82 100644
--- a/wst/trunk/object_serializer.pas
+++ b/wst/trunk/object_serializer.pas
@@ -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
diff --git a/wst/trunk/same_process_protocol.pas b/wst/trunk/same_process_protocol.pas
index c99755d30..d60f42d30 100644
--- a/wst/trunk/same_process_protocol.pas
+++ b/wst/trunk/same_process_protocol.pas
@@ -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
diff --git a/wst/trunk/synapse_http_protocol.pas b/wst/trunk/synapse_http_protocol.pas
index 836ccd6d1..90277aaa7 100644
--- a/wst/trunk/synapse_http_protocol.pas
+++ b/wst/trunk/synapse_http_protocol.pas
@@ -163,7 +163,7 @@ procedure THTTPTransport.SendAndReceive(ARequest, AResponse: TStream);
end;
var
- s : string;
+ s : TBinaryString;
{$ENDIF}
begin
FConnection.Document.Size := 0;
diff --git a/wst/trunk/synapse_tcp_protocol.pas b/wst/trunk/synapse_tcp_protocol.pas
index 82c70d402..5c6a37838 100644
--- a/wst/trunk/synapse_tcp_protocol.pas
+++ b/wst/trunk/synapse_tcp_protocol.pas
@@ -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);
diff --git a/wst/trunk/tests/test_suite/test_suite_utils.pas b/wst/trunk/tests/test_suite/test_suite_utils.pas
index dc407eed4..07bc5e9d6 100644
--- a/wst/trunk/tests/test_suite/test_suite_utils.pas
+++ b/wst/trunk/tests/test_suite/test_suite_utils.pas
@@ -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;
diff --git a/wst/trunk/tests/test_suite/testformatter_unit.pas b/wst/trunk/tests/test_suite/testformatter_unit.pas
index 4e4ed484b..d86ad0381 100644
--- a/wst/trunk/tests/test_suite/testformatter_unit.pas
+++ b/wst/trunk/tests/test_suite/testformatter_unit.pas
@@ -41,11 +41,19 @@ type
FVal_Bool: Boolean;
FVal_Enum: TTestEnum;
FVal_String: string;
+{$IFDEF WST_UNICODESTRING}
+ FVal_UnicodeString: UnicodeString;
+{$ENDIF WST_UNICODESTRING}
+ FVal_WideString: WideString;
Published
property Val_32S : LongInt Read FVal_32S Write FVal_32S;
property Val_Enum : TTestEnum Read FVal_Enum Write FVal_Enum;
property Val_Bool : Boolean Read FVal_Bool Write FVal_Bool;
property Val_String : string Read FVal_String Write FVal_String;
+ property Val_WideString : WideString Read FVal_WideString Write FVal_WideString;
+{$IFDEF WST_UNICODESTRING}
+ property Val_UnicodeString : UnicodeString Read FVal_UnicodeString Write FVal_UnicodeString;
+{$ENDIF WST_UNICODESTRING}
End;
{ TClass_B }
@@ -58,6 +66,11 @@ type
FVal_Bool: Boolean;
FVal_Enum: TTestEnum;
FVal_String: string;
+{$IFDEF WST_UNICODESTRING}
+ FVal_UnicodeString: UnicodeString;
+{$ENDIF WST_UNICODESTRING}
+ FVal_WideString: WideString;
+ private
procedure SetObjProp(const AValue: TClass_A);
Public
constructor Create();override;
@@ -67,6 +80,10 @@ type
property Val_Enum : TTestEnum Read FVal_Enum Write FVal_Enum;
property Val_Bool : Boolean Read FVal_Bool Write FVal_Bool;
property Val_String : string Read FVal_String Write FVal_String;
+ property Val_WideString : WideString Read FVal_WideString Write FVal_WideString;
+{$IFDEF WST_UNICODESTRING}
+ property Val_UnicodeString : UnicodeString Read FVal_UnicodeString Write FVal_UnicodeString;
+{$ENDIF WST_UNICODESTRING}
property ObjProp : TClass_A Read FObjProp Write SetObjProp stored True;
property NonStored : Integer Read FNonStored Write FNonStored stored false;
End;
@@ -216,7 +233,31 @@ type
property IntSimpleAtt_Exemple : Integer read FIntSimpleAtt_Exemple write FIntSimpleAtt_Exemple;
property BoolSimpleAtt_Exemple : Boolean read FBoolSimpleAtt_Exemple write FBoolSimpleAtt_Exemple;
end;
+
+ T_ComplexWideStringContent = class(TComplexWideStringContentRemotable)
+ private
+ FBoolSimpleAtt_Exemple: Boolean;
+ FIntSimpleAtt_Exemple: Integer;
+ FStrSimpleAtt_Exemple: string;
+ published
+ property StrSimpleAtt_Exemple : string read FStrSimpleAtt_Exemple write FStrSimpleAtt_Exemple;
+ property IntSimpleAtt_Exemple : Integer read FIntSimpleAtt_Exemple write FIntSimpleAtt_Exemple;
+ property BoolSimpleAtt_Exemple : Boolean read FBoolSimpleAtt_Exemple write FBoolSimpleAtt_Exemple;
+ end;
+{$IFDEF WST_UNICODESTRING}
+ T_ComplexUnicodeStringContent = class(TComplexUnicodeStringContentRemotable)
+ private
+ FBoolSimpleAtt_Exemple: Boolean;
+ FIntSimpleAtt_Exemple: Integer;
+ FStrSimpleAtt_Exemple: string;
+ published
+ property StrSimpleAtt_Exemple : string read FStrSimpleAtt_Exemple write FStrSimpleAtt_Exemple;
+ property IntSimpleAtt_Exemple : Integer read FIntSimpleAtt_Exemple write FIntSimpleAtt_Exemple;
+ property BoolSimpleAtt_Exemple : Boolean read FBoolSimpleAtt_Exemple write FBoolSimpleAtt_Exemple;
+ end;
+{$ENDIF WST_UNICODESTRING}
+
{ TClass_CplxSimpleContent }
TClass_CplxSimpleContent = class(TBaseComplexRemotable)
@@ -233,6 +274,10 @@ type
FVal_CplxInt8S: T_ComplexInt8SContent;
FVal_CplxInt8U: T_ComplexInt8UContent;
FVal_CplxString: T_ComplexStringContent;
+{$IFDEF WST_UNICODESTRING}
+ FVal_CplxUnicodeString: T_ComplexUnicodeStringContent;
+{$ENDIF WST_UNICODESTRING}
+ FVal_CplxWideString: T_ComplexWideStringContent;
public
constructor Create();override;
destructor Destroy();override;
@@ -252,6 +297,10 @@ type
property Val_CplxExtended : T_ComplexFloatExtendedContent read FVal_CplxExtended write FVal_CplxExtended;
property Val_CplxDouble : T_ComplexFloatDoubleContent read FVal_CplxDouble write FVal_CplxDouble;
property Val_CplxString : T_ComplexStringContent read FVal_CplxString write FVal_CplxString;
+ property Val_CplxWideString : T_ComplexWideStringContent read FVal_CplxWideString write FVal_CplxWideString;
+{$IFDEF WST_UNICODESTRING}
+ property Val_CplxUnicodeString : T_ComplexUnicodeStringContent read FVal_CplxUnicodeString write FVal_CplxUnicodeString;
+{$ENDIF WST_UNICODESTRING}
property Elt_Exemple : string read FElt_Exemple write FElt_Exemple;
end;
@@ -322,17 +371,32 @@ type
procedure Test_Int_8;
procedure Test_Int_8_ScopeData;
procedure Test_Int_16;
+ procedure Test_Int_16_ScopeData;
procedure Test_Int_32;
+ procedure Test_Int_32_ScopeData;
procedure Test_Int_64;
+ procedure Test_Int_64_ScopeData;
procedure Test_Single_4;
+ procedure Test_Single_4_ScopeData;
procedure Test_Double_8;
+ procedure Test_Double_8_ScopeData;
procedure Test_Currency_8;
+ procedure Test_Currency_8_ScopeData;
procedure Test_Extended_10;
+ procedure Test_Extended_10_ScopeData;
- procedure Test_String;
+ procedure Test_AnsiString;
+ procedure Test_AnsiString_ScopeData;
+{$IFDEF WST_UNICODESTRING}
+ procedure Test_UnicodeString;
+{$ENDIF WST_UNICODESTRING}
+ procedure Test_WideString;
+ procedure Test_WideString_ScopeData;
procedure Test_Bool;
+ procedure Test_Bool_ScopeData;
procedure Test_Enum;
+ procedure Test_Enum_ScopeData;
end;
{ TTestFormatter }
@@ -355,6 +419,10 @@ type
procedure Test_CplxFloatExtendedSimpleContent_WithClass;
procedure Test_CplxStringSimpleContent_WithClass;
+ procedure Test_CplxWideStringSimpleContent_WithClass;
+{$IFDEF WST_UNICODESTRING}
+ procedure Test_CplxUnicodeStringSimpleContent_WithClass;
+{$ENDIF WST_UNICODESTRING}
procedure Test_Object();
procedure Test_Object_Nil();
@@ -621,7 +689,7 @@ begin
dtDouble : ok := ( A^.DoubleData = A^.DoubleData );
dtExtended : ok := ( A^.ExtendedData = A^.ExtendedData );
dtCurrency : ok := ( A^.CurrencyData = A^.CurrencyData );
- dtString : ok := ( A^.StrData = A^.StrData );
+ dtAnsiString : ok := ( A^.AnsiStrData = A^.AnsiStrData );
dtObject : ok := CompareObjectBuffers(A^.ObjectData,B^.ObjectData);
dtArray : ok := CompareObjectBuffers(A^.ArrayData,B^.ArrayData);
end;
@@ -696,7 +764,7 @@ end;
procedure TTestFormatterSimpleType.Test_Int_8_ScopeData;
const VAL_1 = 12; VAL_2 = -10;
-Var
+var
f : IFormatterBase;
s : TMemoryStream;
x : string;
@@ -788,6 +856,58 @@ begin
End;
end;
+procedure TTestFormatterSimpleType.Test_Int_16_ScopeData;
+const VAL_1 = 1210; VAL_2 : SmallInt = -1012;
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ intVal_U : WOrd; intVal_S : SmallInt;
+begin
+ s := Nil;
+ Try
+ intVal_U := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(Word),intVal_U);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ intVal_U := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(Word),intVal_U);
+ f.EndScopeRead();
+ CheckEquals(VAL_1,intVal_U);
+ ///
+ intVal_S := VAL_2;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(SmallInt),intVal_S);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ intVal_S := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(SmallInt),intVal_S);
+ f.EndScopeRead();
+ CheckEquals(VAL_2,intVal_S);
+ Finally
+ s.Free();
+ End;
+end;
+
procedure TTestFormatterSimpleType.Test_Int_32;
const VAL_1 = 121076; VAL_2 : LongInt = -101276;
Var
@@ -830,6 +950,58 @@ begin
End;
end;
+procedure TTestFormatterSimpleType.Test_Int_32_ScopeData;
+const VAL_1 = 121076; VAL_2 : LongInt = -101276;
+var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ intVal_U : LongWord; intVal_S : LongInt;
+begin
+ s := Nil;
+ Try
+ intVal_U := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(LongWord),intVal_U);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ intVal_U := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(LongWord),intVal_U);
+ f.EndScopeRead();
+ CheckEquals(VAL_1,intVal_U);
+ ///
+ intVal_S := VAL_2;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(LongInt),intVal_S);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ intVal_S := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(LongInt),intVal_S);
+ f.EndScopeRead();
+ CheckEquals(VAL_2,intVal_S);
+ Finally
+ s.Free();
+ End;
+end;
+
procedure TTestFormatterSimpleType.Test_Int_64;
const VAL_1 = 121076; VAL_2 : Int64 = -101276;
Var
@@ -872,9 +1044,61 @@ begin
End;
end;
+procedure TTestFormatterSimpleType.Test_Int_64_ScopeData;
+const VAL_1 = 121076; VAL_2 : Int64 = -101276;
+var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ intVal_U : QWord; intVal_S : Int64;
+begin
+ s := Nil;
+ Try
+ intVal_U := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(QWord),intVal_U);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ intVal_U := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(QWord),intVal_U);
+ f.EndScopeRead();
+ CheckEquals(VAL_1,intVal_U);
+ ///
+ intVal_S := VAL_2;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(Int64),intVal_S);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ intVal_S := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(Int64),intVal_S);
+ f.EndScopeRead();
+ CheckEquals(VAL_2,intVal_S);
+ Finally
+ s.Free();
+ End;
+end;
+
procedure TTestFormatterSimpleType.Test_Single_4;
const VAL_1 : single = 12.10;
-Var
+var
f : IFormatterBase;
s : TMemoryStream;
x : string;
@@ -908,6 +1132,42 @@ begin
End;
end;
+procedure TTestFormatterSimpleType.Test_Single_4_ScopeData;
+const VAL_1 : single = 12.10;
+var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ tmpVal : Single;
+begin
+ s := Nil;
+ Try
+ tmpVal := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Float));
+
+ f.BeginObject('Root',TypeInfo(TClass_Float));
+ f.PutScopeInnerValue(TypeInfo(Single),tmpVal);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);s.SaveToFile(ClassName + '.Test_Single_4.xml');
+ tmpVal := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Float));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Float));
+ x := 'tmpVal';
+ f.GetScopeInnerValue(TypeInfo(Single),tmpVal);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_1,tmpVal);//,0.00001);
+ Finally
+ s.Free();
+ End;
+end;
+
procedure TTestFormatterSimpleType.Test_Double_8;
const VAL_1 : Double = 12.10;
Var
@@ -944,6 +1204,42 @@ begin
End;
end;
+procedure TTestFormatterSimpleType.Test_Double_8_ScopeData;
+const VAL_1 : Double = 12.10;
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ tmpVal : Double;
+begin
+ s := Nil;
+ Try
+ tmpVal := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Float));
+
+ f.BeginObject('Root',TypeInfo(TClass_Float));
+ f.PutScopeInnerValue(TypeInfo(Double),tmpVal);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);s.SaveToFile(ClassName + '.Test_Double_8.xml');
+ tmpVal := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Float));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Float));
+ x := 'tmpVal';
+ f.GetScopeInnerValue(TypeInfo(Double),tmpVal);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_1,tmpVal);
+ Finally
+ s.Free();
+ End;
+end;
+
procedure TTestFormatterSimpleType.Test_Currency_8;
const VAL_1 : Currency = 12.10;
Var
@@ -980,6 +1276,42 @@ begin
End;
end;
+procedure TTestFormatterSimpleType.Test_Currency_8_ScopeData;
+const VAL_1 : Currency = 12.10;
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ tmpVal : Currency;
+begin
+ s := Nil;
+ Try
+ tmpVal := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Float));
+
+ f.BeginObject('Root',TypeInfo(TClass_Float));
+ f.PutScopeInnerValue(TypeInfo(Currency),tmpVal);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);s.SaveToFile(ClassName + '.Test_Currency_8.xml');
+ tmpVal := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Float));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Float));
+ x := 'tmpVal';
+ f.GetScopeInnerValue(TypeInfo(Currency),tmpVal);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_1,tmpVal);
+ Finally
+ s.Free();
+ End;
+end;
+
procedure TTestFormatterSimpleType.Test_Extended_10;
const VAL_1 : Extended = 12.10;
Var
@@ -1016,29 +1348,65 @@ begin
End;
end;
-procedure TTestFormatterSimpleType.Test_String;
+procedure TTestFormatterSimpleType.Test_Extended_10_ScopeData;
+const VAL_1 : Extended = 12.10;
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ tmpVal : Extended;
+begin
+ s := Nil;
+ Try
+ tmpVal := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Float));
+
+ f.BeginObject('Root',TypeInfo(TClass_Float));
+ f.PutScopeInnerValue(TypeInfo(Extended),tmpVal);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);s.SaveToFile(ClassName + '.Test_Extended_10.xml');
+ tmpVal := 0;
+
+ f := CreateFormatter(TypeInfo(TClass_Float));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Float));
+ x := 'tmpVal';
+ f.GetScopeInnerValue(TypeInfo(Extended),tmpVal);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_1,tmpVal);
+ Finally
+ s.Free();
+ End;
+end;
+
+procedure TTestFormatterSimpleType.Test_AnsiString;
const VAL_1 = 'AzErTy'; VAL_2 = 'QwErTy';
Var
f : IFormatterBase;
s : TMemoryStream;
x : string;
- intVal_1 : string; intVal_3 : string;
+ locVal_1 : ansistring; locVal_3 : ansistring;
begin
s := Nil;
Try
- intVal_1 := VAL_1;
- intVal_3 := VAL_2;
+ locVal_1 := VAL_1;
+ locVal_3 := VAL_2;
f := CreateFormatter(TypeInfo(TClass_Int));
f.BeginObject('Root',TypeInfo(TClass_Int));
- f.Put('intVal_1',TypeInfo(string),intVal_1);
- f.Put('intVal_3',TypeInfo(string),intVal_3);
+ f.Put('intVal_1',TypeInfo(ansistring),locVal_1);
+ f.Put('intVal_3',TypeInfo(ansistring),locVal_3);
f.EndScope();
s := TMemoryStream.Create();
f.SaveToStream(s);
- intVal_1 := '';
- intVal_3 := 'yyyyyyyy';
+ locVal_1 := '';
+ locVal_3 := 'yyyyyyyy';
f := CreateFormatter(TypeInfo(TClass_Int));
s.Position := 0;
@@ -1046,13 +1414,169 @@ begin
x := 'Root';
f.BeginObjectRead(x,TypeInfo(TClass_Int));
x := 'intVal_1';
- f.Get(TypeInfo(string),x,intVal_1);
+ f.Get(TypeInfo(ansistring),x,locVal_1);
x := 'intVal_3';
- f.Get(TypeInfo(string),x,intVal_3);
+ f.Get(TypeInfo(ansistring),x,locVal_3);
f.EndScopeRead();
- CheckEquals(VAL_1,intVal_1);
- CheckEquals(VAL_2,intVal_3);
+ CheckEquals(VAL_1,locVal_1);
+ CheckEquals(VAL_2,locVal_3);
+ Finally
+ s.Free();
+ End;
+end;
+
+procedure TTestFormatterSimpleType.Test_AnsiString_ScopeData;
+const VAL_1 = 'AzErTy1234';
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ locVal_1 : ansistring;
+begin
+ s := Nil;
+ Try
+ locVal_1 := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(ansistring),locVal_1);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ locVal_1 := '';
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(ansistring),locVal_1);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_1,locVal_1);
+ Finally
+ s.Free();
+ End;
+end;
+
+{$IFDEF WST_UNICODESTRING}
+procedure TTestFormatterSimpleType.Test_UnicodeString;
+//var VAL_1 : UnicodeString = 'AzErTy123'; VAL_2 : UnicodeString = 'QwErTy85';
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string; VAL_1, VAL_2 : UnicodeString;
+ locVal_1 : UnicodeString; locVal_3 : UnicodeString;
+begin
+ VAL_1 := WideString('AzErTy123'); VAL_2 := 'QwErTy85';
+ s := Nil;
+ Try
+ locVal_1 := VAL_1;
+ locVal_3 := VAL_2;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.Put('intVal_1',TypeInfo(UnicodeString),locVal_1);
+ f.Put('intVal_3',TypeInfo(UnicodeString),locVal_3);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s); s.SaveToFile(Self.ClassName + '.' + 'Test_UnicodeString.xml');
+ locVal_1 := '';
+ locVal_3 := 'yyyyyyyy';
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ x := 'intVal_1';
+ f.Get(TypeInfo(UnicodeString),x,locVal_1);
+ x := 'intVal_3';
+ f.Get(TypeInfo(UnicodeString),x,locVal_3);
+ f.EndScopeRead();
+ Check(VAL_1 = locVal_1, 'Expected : "'+VAL_1+'", actual : "'+locVal_1+'"');
+ Check(VAL_2 = locVal_3, Format('Expected : "%s", actual : "%s"',[VAL_2,locVal_3]));
+ Finally
+ s.Free();
+ End;
+end;
+{$ENDIF WST_UNICODESTRING}
+
+procedure TTestFormatterSimpleType.Test_WideString;
+const VAL_1 : WideString = 'AzErTy123'; VAL_2 : WideString = 'QwErTy85';
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ locVal_1 : WideString; locVal_3 : WideString;
+begin
+ s := Nil;
+ Try
+ locVal_1 := VAL_1;
+ locVal_3 := VAL_2;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.Put('intVal_1',TypeInfo(WideString),locVal_1);
+ f.Put('intVal_3',TypeInfo(WideString),locVal_3);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s); s.SaveToFile(Self.ClassName + '.' + 'Test_WideString.xml');
+ locVal_1 := '';
+ locVal_3 := 'yyyyyyyy';
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ x := 'intVal_1';
+ f.Get(TypeInfo(WideString),x,locVal_1);
+ x := 'intVal_3';
+ f.Get(TypeInfo(WideString),x,locVal_3);
+ f.EndScopeRead();
+
+ Check(VAL_1 = locVal_1);
+ Check(VAL_2 = locVal_3);
+ Finally
+ s.Free();
+ End;
+end;
+
+procedure TTestFormatterSimpleType.Test_WideString_ScopeData;
+const VAL_1 = 'AzErTy1234';
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ locVal_1 : widestring;
+begin
+ s := Nil;
+ Try
+ locVal_1 := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(widestring),locVal_1);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ locVal_1 := '';
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(widestring),locVal_1);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_1,locVal_1);
Finally
s.Free();
End;
@@ -1100,6 +1624,62 @@ begin
End;
end;
+procedure TTestFormatterSimpleType.Test_Bool_ScopeData;
+const VAL_1 = True; VAL_2 = False;
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ locVal_1 : Boolean;
+begin
+ s := Nil;
+ Try
+ locVal_1 := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(Boolean),locVal_1);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ locVal_1 := not locVal_1;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(Boolean),locVal_1);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_1,locVal_1);
+ //-----------
+ locVal_1 := VAL_2;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.PutScopeInnerValue(TypeInfo(Boolean),locVal_1);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ locVal_1 := not locVal_1;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(Boolean),locVal_1);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_2,locVal_1);
+ Finally
+ s.Free();
+ End;
+end;
+
procedure TTestFormatterSimpleType.Test_Enum;
const VAL_1 = teTwo; VAL_2 = teFour;
Var
@@ -1142,6 +1722,41 @@ begin
End;
end;
+procedure TTestFormatterSimpleType.Test_Enum_ScopeData;
+const VAL_1 = teTwo;
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ x : string;
+ intVal_1 : TTestEnum;
+begin
+ s := Nil;
+ Try
+ intVal_1 := VAL_1;
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Enum));
+ f.PutScopeInnerValue(TypeInfo(TTestEnum),intVal_1);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ intVal_1 := teOne;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ f.GetScopeInnerValue(TypeInfo(TTestEnum),intVal_1);
+ f.EndScopeRead();
+
+ CheckEquals(Ord(VAL_1),Ord(intVal_1));
+ Finally
+ s.Free();
+ End;
+end;
+
class function TTestFormatter.SupportNamedArrayItem() : Boolean;
begin
Result := False;
@@ -1736,6 +2351,134 @@ begin
end;
end;
+procedure TTestFormatter.Test_CplxWideStringSimpleContent_WithClass;
+const VAL_S = 'web services toolkit';
+ VAL_STR_S = 'Test Attribute S';
+var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ a : TClass_CplxSimpleContent;
+ ns : TComplexWideStringContentRemotable;
+ x : string;
+begin
+ if not Support_ComplextType_with_SimpleContent() then
+ Exit;
+
+ s := nil;
+ ns := TComplexWideStringContentRemotable.Create();
+ a := TClass_CplxSimpleContent.Create();
+ try
+ a.Val_CplxWideString := T_ComplexWideStringContent.Create();
+ a.Val_CplxWideString.Value := VAL_S;
+ a.Val_CplxInt32S.Free();
+ a.Val_CplxInt32S := nil;
+ a.Val_CplxInt32U.Free();
+ a.Val_CplxInt32U := nil;
+
+ ns.Value := VAL_STR_S;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.Put('o1',TypeInfo(TClass_CplxSimpleContent),a);
+ f.Put('ns',TypeInfo(TComplexWideStringContentRemotable),ns);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s); s.SaveToFile(ClassName + '.txt');
+ FreeAndNil(a);
+
+ a := TClass_CplxSimpleContent.Create();
+ a.Val_CplxInt32S.Free();
+ a.Val_CplxInt32S := nil;
+ a.Val_CplxInt32U.Free();
+ a.Val_CplxInt32U := nil;
+ a.Val_CplxWideString := T_ComplexWideStringContent.Create();
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ x := 'o1';
+ f.Get(TypeInfo(TClass_CplxSimpleContent),x,a);
+ x := 'ns';
+ f.Get(TypeInfo(TComplexWideStringContentRemotable),x,ns);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_S,a.Val_CplxWideString.Value,'VAL_S <> a.Val_CplxWideString.Value');
+ CheckEquals(VAL_STR_S,ns.Value,'VAL_STR_S <> ns.Value');
+ finally
+ FreeAndNil(ns);
+ a.Free();
+ s.Free();
+ end;
+end;
+
+{$IFDEF WST_UNICODESTRING}
+procedure TTestFormatter.Test_CplxUnicodeStringSimpleContent_WithClass;
+const VAL_S = 'web services toolkit';
+ VAL_STR_S = 'Test Attribute S';
+var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ a : TClass_CplxSimpleContent;
+ ns : TComplexUnicodeStringContentRemotable;
+ x : string;
+begin
+ if not Support_ComplextType_with_SimpleContent() then
+ Exit;
+
+ s := nil;
+ ns := TComplexUnicodeStringContentRemotable.Create();
+ a := TClass_CplxSimpleContent.Create();
+ try
+ a.Val_CplxUnicodeString := T_ComplexUnicodeStringContent.Create();
+ a.Val_CplxUnicodeString.Value := VAL_S;
+ a.Val_CplxInt32S.Free();
+ a.Val_CplxInt32S := nil;
+ a.Val_CplxInt32U.Free();
+ a.Val_CplxInt32U := nil;
+
+ ns.Value := VAL_STR_S;
+
+ f := CreateFormatter(TypeInfo(TClass_Int));
+
+ f.BeginObject('Root',TypeInfo(TClass_Int));
+ f.Put('o1',TypeInfo(TClass_CplxSimpleContent),a);
+ f.Put('ns',TypeInfo(TComplexUnicodeStringContentRemotable),ns);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s); s.SaveToFile(ClassName + '.txt');
+ FreeAndNil(a);
+
+ a := TClass_CplxSimpleContent.Create();
+ a.Val_CplxInt32S.Free();
+ a.Val_CplxInt32S := nil;
+ a.Val_CplxInt32U.Free();
+ a.Val_CplxInt32U := nil;
+ a.Val_CplxUnicodeString := T_ComplexUnicodeStringContent.Create();
+ f := CreateFormatter(TypeInfo(TClass_Int));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_Int));
+ x := 'o1';
+ f.Get(TypeInfo(TClass_CplxSimpleContent),x,a);
+ x := 'ns';
+ f.Get(TypeInfo(TComplexUnicodeStringContentRemotable),x,ns);
+ f.EndScopeRead();
+
+ CheckEquals(VAL_S,a.Val_CplxUnicodeString.Value,'VAL_S <> a.Val_CplxUnicodeString.Value');
+ CheckEquals(VAL_STR_S,ns.Value,'VAL_STR_S <> ns.Value');
+ finally
+ FreeAndNil(ns);
+ a.Free();
+ s.Free();
+ end;
+end;
+{$ENDIF WST_UNICODESTRING}
+
procedure TTestFormatter.Test_Object();
Var
f : IFormatterBase;
@@ -1749,7 +2492,15 @@ begin
a.Val_Bool := False;
a.Val_Enum := teThree;
a.Val_String := '123';
+ a.Val_WideString := 'wide123';
+{$IFDEF WST_UNICODESTRING}
+ a.Val_UnicodeString := 'unicode123';
+{$ENDIF WST_UNICODESTRING}
a.ObjProp.Val_String := '456';
+ a.ObjProp.Val_WideString := 'wide456';
+{$IFDEF WST_UNICODESTRING}
+ a.ObjProp.Val_UnicodeString := 'unicode456';
+{$ENDIF WST_UNICODESTRING}
a.ObjProp.Val_Enum := teFour;
a.ObjProp.Val_Bool := True;
a.ObjProp.Val_32S := 121076;
@@ -1778,10 +2529,18 @@ begin
CheckEquals(False,a.Val_Bool);
CheckEquals(Ord(teThree),Ord(a.Val_Enum));
CheckEquals('123',a.Val_String);
+ CheckEquals('wide123',a.Val_WideString);
+{$IFDEF WST_UNICODESTRING}
+ CheckEquals('unicode123',a.Val_UnicodeString);
+{$ENDIF WST_UNICODESTRING}
CheckEquals(True,a.ObjProp.Val_Bool);
CheckEquals(Ord(teFour),Ord(a.ObjProp.Val_Enum));
CheckEquals('456',a.ObjProp.Val_String);
+ CheckEquals('wide456',a.ObjProp.Val_WideString);
+{$IFDEF WST_UNICODESTRING}
+ CheckEquals('unicode456',a.ObjProp.Val_UnicodeString);
+{$ENDIF WST_UNICODESTRING}
CheckEquals(121076,a.ObjProp.Val_32S);
CheckEquals(0,a.NonStored);
@@ -2895,7 +3654,7 @@ begin
Check( ls.IndexOf('intv') >= 0 );
x := 'a';
f.BeginObjectRead(x,TypeInfo(TClass_A));
- CheckEquals(4, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(a)');
+ CheckEquals(5{$IFDEF WST_UNICODESTRING}+1{$ENDIF}, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(a)');
Check( ls.IndexOf('Val_Bool') >= 0 );
Check( ls.IndexOf('Val_Enum') >= 0 );
Check( ls.IndexOf('Val_String') >= 0 );
@@ -2904,7 +3663,7 @@ begin
x := 'b';
f.BeginObjectRead(x,TypeInfo(TClass_A));
- CheckEquals(4, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(b)');
+ CheckEquals(5{$IFDEF WST_UNICODESTRING}+1{$ENDIF}, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(b)');
Check( ls.IndexOf('Val_Bool') >= 0 );
Check( ls.IndexOf('Val_Enum') >= 0 );
Check( ls.IndexOf('Val_String') >= 0 );
@@ -2952,11 +3711,11 @@ var
locBuffer : string;
begin
a := CreateObjBuffer(dtObject,'a',nil);
- CreateObjBuffer(dtString,'aa',a)^.StrData^.Data := 'val_aa';
+ CreateObjBuffer(dtAnsiString,'aa',a)^.AnsiStrData^.Data := 'val_aa';
tmp := CreateObjBuffer(dtObject,'b',a);
tmp := CreateObjBuffer(dtObject,'c',tmp);
CreateObjBuffer(dtInt32U,'i',tmp)^.Int32S := 1210;
- CreateObjBuffer(dtString,'s',tmp)^.StrData^.Data := 's string sample';
+ CreateObjBuffer(dtAnsiString,'s',tmp)^.AnsiStrData^.Data := 's string sample';
b := nil;
strm := TStringStream.Create('');
try
@@ -4156,14 +4915,14 @@ begin
tmpNode := loc_FindObj(faultNode,'faultcode');
Check(Assigned(tmpNode),'faultcode');
- CheckEquals(Ord(dtString), Ord(tmpNode^.DataType),'faultcode.DataType');
- excpt_code := tmpNode^.StrData^.Data;
+ CheckEquals(Ord(dtAnsiString), Ord(tmpNode^.DataType),'faultcode.DataType');
+ excpt_code := tmpNode^.AnsiStrData^.Data;
CheckEquals(VAL_CODE,excpt_code,'faultCode');
tmpNode := loc_FindObj(faultNode,'faultstring');
Check(Assigned(tmpNode),'faultstring');
- CheckEquals(Ord(dtString), Ord(tmpNode^.DataType),'faultstring.DataType');
- excpt_msg := tmpNode^.StrData^.Data;
+ CheckEquals(Ord(dtAnsiString), Ord(tmpNode^.DataType),'faultstring.DataType');
+ excpt_msg := tmpNode^.AnsiStrData^.Data;
CheckEquals(VAL_MSG,excpt_msg,'faultString');
finally
FreeAndNil(strm);
@@ -4187,8 +4946,8 @@ begin
try
bodyNode := CreateObjBuffer(dtObject,'Body',root);
faultNode := CreateObjBuffer(dtObject,'Fault',bodyNode);
- CreateObjBuffer(dtString,'faultCode',faultNode)^.StrData^.Data := VAL_CODE;
- CreateObjBuffer(dtString,'faultString',faultNode)^.StrData^.Data := VAL_MSG;
+ CreateObjBuffer(dtAnsiString,'faultCode',faultNode)^.AnsiStrData^.Data := VAL_CODE;
+ CreateObjBuffer(dtAnsiString,'faultString',faultNode)^.AnsiStrData^.Data := VAL_MSG;
f := CreateFormatterClient();
strm := TMemoryStream.Create();
try
diff --git a/wst/trunk/tests/test_suite/wst_test_suite.lpi b/wst/trunk/tests/test_suite/wst_test_suite.lpi
index 8e90c0678..29b627831 100644
--- a/wst/trunk/tests/test_suite/wst_test_suite.lpi
+++ b/wst/trunk/tests/test_suite/wst_test_suite.lpi
@@ -21,11 +21,6 @@
-
-
-
-
-
@@ -225,7 +220,7 @@
-
+
@@ -246,7 +241,6 @@
-
diff --git a/wst/trunk/tests/test_suite/wst_test_suite_gui.lpi b/wst/trunk/tests/test_suite/wst_test_suite_gui.lpi
index b77d35c92..54dbd1b8b 100644
--- a/wst/trunk/tests/test_suite/wst_test_suite_gui.lpi
+++ b/wst/trunk/tests/test_suite/wst_test_suite_gui.lpi
@@ -128,7 +128,7 @@
-
+
@@ -143,7 +143,6 @@
-
diff --git a/wst/trunk/ws_helper/metadata_generator.pas b/wst/trunk/ws_helper/metadata_generator.pas
index 000416d38..561b7447e 100644
--- a/wst/trunk/ws_helper/metadata_generator.pas
+++ b/wst/trunk/ws_helper/metadata_generator.pas
@@ -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;
diff --git a/wst/trunk/wst_global.inc b/wst/trunk/wst_global.inc
index 7541c7581..36e5c6c32 100644
--- a/wst/trunk/wst_global.inc
+++ b/wst/trunk/wst_global.inc
@@ -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)}