|
14 | 14 | * *
|
15 | 15 | * hprose io unit for delphi. *
|
16 | 16 | * *
|
17 |
| - * LastModified: Dec 1, 2016 * |
| 17 | + * LastModified: Apr 30, 2018 * |
18 | 18 | * Author: Ma Bingyao <[email protected]> *
|
19 | 19 | * *
|
20 | 20 | \**********************************************************/
|
@@ -309,6 +309,7 @@ THproseWriter = class
|
309 | 309 | procedure WriteMapWithRef(const AMap: IMap);
|
310 | 310 | {$IFDEF SUPPORTS_GENERICS}
|
311 | 311 | procedure Serialize<T>(const Value: T); overload;
|
| 312 | + procedure WriteArray(const DynArray: TVariants); overload; |
312 | 313 | procedure WriteArray<T>(const DynArray: array of T); overload;
|
313 | 314 | procedure WriteDynArray<T>(const DynArray: TArray<T>);
|
314 | 315 | procedure WriteDynArrayWithRef<T>(const DynArray: TArray<T>); overload;
|
@@ -4291,6 +4292,20 @@ procedure THproseWriter.Serialize<T>(const Value: T);
|
4291 | 4292 | Serialize(Value, TypeInfo(T));
|
4292 | 4293 | end;
|
4293 | 4294 |
|
| 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 | + |
4294 | 4309 | procedure THproseWriter.WriteArray<T>(const DynArray: array of T);
|
4295 | 4310 | var
|
4296 | 4311 | Count, I: Integer;
|
|
0 commit comments