|
14 | 14 | * * |
15 | 15 | * hprose io unit for delphi. * |
16 | 16 | * * |
17 | | - * LastModified: Apr 30, 2018 * |
| 17 | + * LastModified: Dec 11, 2018 * |
18 | 18 | * Author: Ma Bingyao <[email protected]> * |
19 | 19 | * * |
20 | 20 | \**********************************************************/ |
@@ -303,13 +303,13 @@ THproseWriter = class |
303 | 303 | procedure WriteArray(const Value: Variant); overload; |
304 | 304 | procedure WriteArrayWithRef(const Value: Variant); overload; |
305 | 305 | procedure WriteArray(const Value: array of const); overload; |
| 306 | + procedure WriteArray(const Value: TVariants); overload; |
306 | 307 | procedure WriteList(const AList: IList); overload; |
307 | 308 | procedure WriteListWithRef(const AList: IList); overload; |
308 | 309 | procedure WriteMap(const AMap: IMap); overload; |
309 | 310 | procedure WriteMapWithRef(const AMap: IMap); |
310 | 311 | {$IFDEF SUPPORTS_GENERICS} |
311 | 312 | procedure Serialize<T>(const Value: T); overload; |
312 | | - procedure WriteArray(const DynArray: TVariants); overload; |
313 | 313 | procedure WriteArray<T>(const DynArray: array of T); overload; |
314 | 314 | procedure WriteDynArray<T>(const DynArray: TArray<T>); |
315 | 315 | procedure WriteDynArrayWithRef<T>(const DynArray: TArray<T>); overload; |
@@ -2946,6 +2946,19 @@ procedure THproseWriter.WriteRawBytes(const Bytes: TBytes); |
2946 | 2946 | FStream.WriteBuffer(Bytes[0], Length(Bytes)); |
2947 | 2947 | end; |
2948 | 2948 |
|
| 2949 | +procedure THproseWriter.WriteArray(const Value: TVariants); |
| 2950 | +var |
| 2951 | + Count, I: Integer; |
| 2952 | +begin |
| 2953 | + FRefer.SetRef(Null); |
| 2954 | + Count := Length(Value); |
| 2955 | + FStream.WriteBuffer(HproseTagList, 1); |
| 2956 | + if Count > 0 then WriteRawBytes(BytesOf(IntToStr(Count))); |
| 2957 | + FStream.WriteBuffer(HproseTagOpenbrace, 1); |
| 2958 | + for I := 0 to Count - 1 do Serialize(Value[I]); |
| 2959 | + FStream.WriteBuffer(HproseTagClosebrace, 1); |
| 2960 | +end; |
| 2961 | + |
2949 | 2962 | procedure THproseWriter.WriteArray(const Value: array of const); |
2950 | 2963 | var |
2951 | 2964 | I, N: Integer; |
@@ -4292,20 +4305,6 @@ procedure THproseWriter.Serialize<T>(const Value: T); |
4292 | 4305 | Serialize(Value, TypeInfo(T)); |
4293 | 4306 | end; |
4294 | 4307 |
|
4295 | | -procedure THproseWriter.WriteArray(const DynArray: TVariants); |
4296 | | -var |
4297 | | - Count, I: Integer; |
4298 | | -begin |
4299 | | - FRefer.SetRef(Null); |
4300 | | - Count := Length(DynArray); |
4301 | | - FStream.WriteBuffer(HproseTagList, 1); |
4302 | | - if Count > 0 then WriteRawBytes(BytesOf(IntToStr(Count))); |
4303 | | - FStream.WriteBuffer(HproseTagOpenbrace, 1); |
4304 | | - for I := 0 to Count - 1 do Serialize(DynArray[I]); |
4305 | | - FStream.WriteBuffer(HproseTagClosebrace, 1); |
4306 | | -end; |
4307 | | - |
4308 | | - |
4309 | 4308 | procedure THproseWriter.WriteArray<T>(const DynArray: array of T); |
4310 | 4309 | var |
4311 | 4310 | Count, I: Integer; |
|
0 commit comments