zoukankan      html  css  js  c++  java
  • mormot2 TRawByteStringStream

    mormot2 TRawByteStringStream

    mormot.core.base.pas

      /// TStream using a RawByteString as internal storage
      // - default TStringStream uses WideChars since Delphi 2009, so it is
      // not compatible with previous versions, and it does make sense to
      // work with RawByteString/RawUTF8 in our UTF-8 oriented framework
      // - just like TStringStream, is designed for appending data, not modifying
      // in-place, as requested e.g. by TTextWriter or TBufferWriter classes
      TRawByteStringStream = class(TStream)
      protected
        fPosition: integer;
        fDataString: RawByteString;
        {$ifdef FPC}
        function GetPosition: Int64; override;
        {$endif FPC}
        function  GetSize: Int64; override;
        procedure SetSize(NewSize: Longint); override;
      public
        /// initialize a void storage
        constructor Create; overload;
        /// initialize the storage, optionally with some RawByteString content
        constructor Create(const aString: RawByteString); overload;
        /// read some bytes from the internal storage
        // - returns the number of bytes filled into Buffer (<=Count)
        function Read(var Buffer; Count: Longint): Longint; override;
        /// change the current Read/Write position, within current stored range
        function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
        /// change the current Read/Write position, within current stored range
        function Seek(Offset: Longint; Origin: Word): Longint; override;
        /// append some data to the buffer
        // - will resize the buffer, i.e. will replace the end of the string from
        // the current position with the supplied data
        function Write(const Buffer; Count: Longint): Longint; override;
        /// retrieve the stored content from a given position, as UTF-8 text
        procedure GetAsText(StartPos, Len: PtrInt; var Text: RawUTF8);
        /// direct low-level access to the internal RawByteString storage
        property DataString: RawByteString
          read fDataString write fDataString;
      end;
    

      

  • 相关阅读:
    DataGrip连接MySql数据库
    IDEA版本控制-Git
    IDEA关联MySql数据库
    ESXi平滑升级
    Dell服务器安装vGPU
    索引
    数据类型
    部署Zabbix监控平台
    部署Cacti监控平台
    常用系统监控命令
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/14055758.html
Copyright © 2011-2022 走看看