zoukankan      html  css  js  c++  java
  • KbmMW 4.50.00 测试版发布

    We are happy to announce the release of kbmMW v. 4.50.00 Beta
    Professional and Enterprise Edition with XE6 support.

     4.50.00 Beta 1 May 12 2014

            New stuff
            =========
            - Added XSD parser support and code generator. A demo is
              included, showing how the XSD parser is used
              in combination with the code generator, to generate Pascal
              objects that kbmMW can use for marshalling
              to and from objects.
            - Added CaptureMode to kbmMW RemoteDesktop client/server
              classes to allow for selecting between GDI and DirectX.
              Default is GDI.
            - Added new ViewMode types including mwrdvm_Device to kbmMW
              RemoteDesktop client/server classes to allow for using
              the best fitting view mode, compared to the current screen
              bitdepth on the server end.
              By using the best fitting view mode, the RemoteDesktop server
              part use less CPU.
            - Added support in kbmMW RemoteDesktop to detect if screen
              capture is to slow to be useful (typically
              on old graphic cards like Matrox G400 with Hardware
              accelleration enabled).
            - Added new kbmMWNullable generic. If you need to define a
              simple datatype that should be nullable, you can
              define it as var myInt:kbmMWNullable<integer>; for example.
              It can be used as any regular variable.
              Use myInt.IsNull to check if its null. If you have compile
              error due to conversion problems you can
              use myInt.Value to access the value directly.
            - Added new TkbmMWDateTime type to replace TDateTime. It works
              similar to TDateTime except it is timezone and null aware,
              and knows if its being used to store a time, a date or a date
              time value, and thus can
              provide correct matching string conversion automatically.
              It supports more than 760 different timezone abbrevations,
              and has full support for ISO8601 formats.
              Internally it always store time as UTC with a timezone
              difference, depending on the chosen timezone.
              On assigning a TDateTime value to it, it always assumes not
              timezone given (and thus its UTC).
              When assigning Now to it, you will want to use the LocalTime
              property to assign now.
              Eg. mytime:TkbmMWDateTime; mytime.LocalTime:=Now. By doing
              so, it will autodetect the appropriate
              local timezone.
            - Added new very fast TkbmMWLockFreeHashArray to kbmMWGlobal.
              Its as the names imply a lock free
              hash array which stores an integer value with a uint64 key.
            - Enhanced TkbmMWLock to automatically detect lock escalation,
              and allow finetuning of spin/sleep time.
              Tests show that TkbmMWLock is now the fastest implementation
              of a MREW with lock escalation handling for
              Delphi/C++Builder. In addition it allows for checking which
              threads holds which locks at any time,
              via the kbmMWConcurrentMREWReadLocks hash array.
            - Added to kbmMWGlobal.pas
                function kbmMWExpectChars(var APChar:PChar;
                   const AChars:TSysCharSet):boolean;
                function kbmMWSearchChars(var APChar:PChar;
                   const AChars:TSysCharSet):boolean;
                function kbmMWSearchDigit(var APChar:PChar):boolean;
                function kbmMWSearchNonDigit(var APChar:PChar):boolean;
                function kbmMWGetDateFromWeek(const AYear:integer;
                   const AWeekNo:integer;
                   const ADayInWeek:integer):TDateTime;
                function kbmMWGetDateFromDayOfYear(const AYear:integer;
                   const ADayOfYear:integer):TDateTime;
                function kbmMWRoundToPowerOf2(
                   const AValue:integer):integer;
                function kbmMWMurmurHash3(const AValue:cardinal):cardinal;
                function kbmMWMurmurHash3(const AValue:int64):int64;
                function kbmMWDigestToString(
                   const ADigest:TkbmMWDigest256):string;
                procedure TkbmMWStringBuilder.Append(
                   const AStringBuilder:TkbmMWStringBuilder);
            - Added function TkbmMWRegisteredTransportStreamList.
                   ControllerClassByID(AID:string):
                   TkbmMWCustomTransportStreamControllerClass;
            - Added support for multiple statements in SQLite adapter
              function TkbmMWSQLiteConnection.Query(
                const AClass:TkbmCustomMemTableClass;
                const ASQL:string):TkbmCustomMemTable;
              Only last will however be returned.
            - Added to kbmMWXML.pas:
                TkbmMWXMLNativeDataType to handle true native XML datatype
                understanding.
                (TkbmMWDOMXMLNode) property
                  ChildrenByName[AName:string]:TkbmMWDOMXMLNodeList read
                    GetChildrenByName;
                (TkbmMWDOMXMLNode) property
                  ChildrenByID[AName:string]:TkbmMWDOMXMLNodeList read
                    GetChildrenByID;
                (TkbmMWDOMXMLNode) function GetNativeDataType(
                  AType:string = ''):TkbmMWXMLNativeDataType;
                (TkbmMWDOMXMLNode) function GetDataTypeName(
                  var ANameSpace:string; AType:string=''):string;
                (TkbmMWDOMXMLNode) property AttribByNameIsNil[
                  const AName:string]:boolean read GetAttribByNameIsNil
                  write SetAttribByNameIsNil;
            - Added support for ftShortint as parameter and field type.
            - Added support for int64/uint64 versions of CompareAndExchange
              for pre XE.
            - Added support for XE6.
            - Added new HTTP FastCGI able custom service and demo
              application.

        Changes/minor additions
            =======================
            - Updated object marshaller (incl. JSON and XML) to support new
              kbmMWNullable and TkbmMWDateTime types.
              Internally there have been made many changes to also support
              objects defined by XSD import.
            - Dropped own implementation of TkbmMWEvent, and instead
              aliases TkbmMWEvent to fastest Delphi/C++Builder
              implementation
              for given Embarcadero version.
            - Removed from kbmMWGlobal.pas
                function kbmMWDateTimeToISO8601String(
                  const AValue:TDateTime):string;
                function kbmMWISO8601StringToDateTime(
                  const AString:string):TDateTime;
                function kbmMWDateToISO8601String(
                  const AValue:TDateTime):string;
                function kbmMWISO8601StringToDate(
                  const AString:string):TDateTime;
                function kbmMWTimeToISO8601String(
                  const AValue:TDateTime):string;
                function kbmMWISO8601StringToTime(
                  const AString:string):TDateTime;
                they have been replaced with TkbmMWDateTime.
            - Removed from kbmMWXML.pas:
                function kbmMWXMLTryStringToDateTime(AValue:string;
                  var ADateTime:TDateTime):boolean;
                function kbmMWXMLDateTimeToString(AValue:TDateTime):string;
                function kbmMWXMLStringToDateTime(AString:string):TDateTime;
                function kbmMWXMLDateToString(AValue:TDateTime):string;
                function kbmMWXMLStringToDate(AString:string):TDateTime;
                function kbmMWXMLTimeToString(AValue:TDateTime):string;
                function kbmMWXMLStringToTime(AString:string):TDateTime;
                Instead use TkbmMWDateTime functionality.
            - Modified in kbmMWGlobal.pas
                class function TkbmMWPlatformMarshal.UTF8Decode(
                  const ABytes:TkbmMWBytes; ACount:TkbmNativeInt =
                    -1):string;
                   Added optional ACount.
            - Made general use of TkbmMWLock and TkbmMWDateTime internally.
            - Performance optimized XML parser.
                Large XML files now parses 20-fold faster.
                (example 165 MB XML now parsed in 7.6 secs. Before parsed
                in 3.5 minutes)

            Fixes
            =====
            - Fixed bugs in kbmMWCipherHash.pas:
                procedure TkbmMWCustomHash.UpdateString(const Str:string);
                function TkbmMWCustomCipher.EncryptString(
                  const Str:string):string;
                function TkbmMWCustomCipher.DecryptString(
                  const Str:string):string;
                function TkbmMWCustomBlockCipher.EncryptString(
                  const Str:string):string;
                function TkbmMWCustomBlockCipher.DecryptString(
                  const Str:string):string;
            - Fixed bugs in kbmMWMime.pas:
                function kbmMWMimeEncodeString(const S:string):string;
                function kbmMWMimeEncodeStringNoCRLF(const S:string):string;
                function kbmMWMimeDecodeString(const S:string):string;
                function kbmMWMimeDecodeString2Bytes(const S:string):
                  TkbmMWBytes;
                procedure kbmMWMimeEncode(const InputBuffer:TkbmMWBytes;
                  var InputBufferOffset:cardinal; const InputByteCount:
                  Cardinal; var OutputBuffer:TkbmMWBytes;
                  var OutputBufferOffset:cardinal);
                function kbmMWMimeDecodedSize(const InputSize: Cardinal):
                  Cardinal;
            - Fixed bug in SQLite adapter when query didnt result in fields.
            - Fixed function kbmMWEncodingToString(
                const AEncoding:TEncoding):string; to use correct lowercase
                encoding names.
            - Fixed bugs in kbmMWCustomClientMessagingTransport.pas
            - Fixed multi database operation on user transaction bug.
            - Fixed compilation for pre XE.
            - Fixed transport backwards compatibility support.
            - Fixed client app automatically linking in TkbmMWServer in
              kbmMW Ent Edition.

    The Professional and Enterprise Edition is available for all with a current active SAU.
    If your SAU has run out, please visit our shop to extend it with another 12 months.

    An earlier version of kbmMW CodeGear Edition is available for free for
    Delphi XE3/Win32 and includes kbmMemTable CodeGear Edition.

  • 相关阅读:
    使用javap分析Java的字符串操作
    使用javap深入理解Java整型常量和整型变量的区别
    分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型
    Java动态代理之InvocationHandler最简单的入门教程
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
  • 原文地址:https://www.cnblogs.com/xalion/p/3729541.html
Copyright © 2011-2022 走看看