Hprose for Pascal 的服务器版本正在开发中,您将可以在后续版本中可以看到它的身影。
Hprose for Pascal 客户端目前是基于 Indy 组件和 Synapse 这两套组件实现的,它们支持的平台和功能略有不同,但是用法上几乎完全一致。在后续版本中,我们可能会增加更多方式的实现。
Hprose for Pascal 为用户提供了一组功能强大的容器类型,可以总的划分为两类:List 和 Map。它们分布对应 IList 接口和 IMap 接口。
IList 接口下,提供了可以直接使用的 TArrayList, THashedList 和 TCaseInsensitiveHashedList 这三个类,另外还有一个 TAbstractList 抽象类,你可以通过继承它来实现自己的 List 类。
IMap 接口下,提供了可以直接使用的 THashMap, THashedMap, TCaseInsensitiveHashMap 和 TCaseInsensitiveHashedMap 这四个类,另外还有一个 TAbstractMap 抽象类,你可以通过继承它来实现自己的 Map 类。
因为这两种类型的容器都是通过接口来管理的,所以用户不用关心内存释放问题,它将由接口自动管理,因此对用户来说,使用非常方便。
这些类型中可以放入各种不同类型的元素,它们是以 Variant 类型来存放的,IList、IMap 本身也可以作为元素,因为接口可以直接转换为 Variant 类型。
支持。不管是 IList 还是 IMap 都提供了枚举接口。你可以在 Delphi 2005 及其之后的版本,或者FreePascal 2.5.1 及其之后的版本中使用该功能。
支持。所有的容器类都提供了 Join 和 Split 这两个方法,其中 Join 是实例方法,Split 是类方法。你可以很方便的将一个 List 或者 Map 合并为一个字符串,也可很方便的将一个字符串分割成一个 List 或者 Map。
支持,而且跨语言,跨平台。
Hprose for Pascal 的可序列化自定义类型非常简单,直接从 TPersistent 继承的类都是可序列化的类,不过只有被标记为 published 属性会被序列化,另外如果属性的 stored 特征被标记为 false 的话,也不会被序列化。可序列化的属性必须是可序列化的基本类型、IList、IMap 和可序列化自定义类型。另外,枚举、集合类型也支持作为属性被序列化,但是结构体不能作为可序列化类型的属性类型。
除了从 TPersistent 继承以外,直接从 TObject 继承的类也可以成为可序列化自定义类型,只需要在其定义的前后加上 {$M+} {$M-} 标记即可。
另外,Hprose for Pascal 提供了 VarToObj, ObjToVar 等方法来实现自定义可序列化对象和 Variant 类型之间的转换。
Hprose 是商业开源软件,在取得 Hprose 商业使用授权后,您可以将它用于您所拥有所有权的商业项目的开发当中,Hprose 商业使用授权没有开发者人数、服务器CPU数量、授权年限等限制,但对二次分发有一定的特别要求。如果您所开发的项目或产品涉及到对 Hprose 的二次分发,还需要取得相应的二次分发授权。
如果您需要了解更多关于授权许可方面的信息,请致信到 sales@hprfc.com 与我们联系。