I have submitted a patch for the RTL project ( http://sourceforge.net/projects/rtl/) to make it compatible with ARS 7.x. If anyone has any programs that use rtl, could you please test your application using the 7.x libraries using this patch? Let me know if you run into any issues. I successfully compile JORJNI using the 7.x libraries using these patches. The changes should also be backward compatible with the 6.x api, so even if you don't have a 7.x arserver, testing these diffs with the 6.x api is valuable.
The diffs and complete files are available in the submitted patch: http://sourceforge.net/tracker/index.php?func=detail&aid=1602167&group_id=155932&atid=797756 Thanks, Axton Grams Here are the diffs for the files: --- rtl/Server.h 2006-03-07 11:44:42.000000000 -0500 +++ rtl_updates/Server.h 2006-11-24 03:50:45.000000000 -0500 @@ -44,6 +44,9 @@ throw Exception(sl); \ } +#if AR_CURRENT_API_VERSION>=11 + #define ARAPI_7PLUS +#endif namespace rtl { @@ -500,6 +503,9 @@ fieldOwner = 0x800, fieldLastChanged = 0x1000, fieldChangeDiary = 0x2000, +#ifdef ARAPI_7PLUS + fieldFieldOption = 0x4000, +#endif fieldCommonUserProperties = fieldName | fieldDataType | fieldDefaultValue | fieldDisplayInstanceList | fieldHelpText, fieldAllProperties = 0xffff }; @@ -548,6 +554,9 @@ (propertiesMask & fieldDataType) ? &field.dataType : NULL, (propertiesMask & fieldOption) ? &field.option : NULL, (propertiesMask & fieldCreateMode) ? &field.createMode : NULL, +#ifdef ARAPI_7PLUS + (propertiesMask & fieldFieldOption) ? &field.fieldOption : NULL, +#endif (propertiesMask & fieldDefaultValue) ? &field.defaultVal : NULL, (propertiesMask & fieldPermissionList) ? &field.permList : NULL, (propertiesMask & fieldLimit) ? &field.limit : NULL, @@ -609,6 +618,9 @@ ARUnsignedIntList unsignedIntList1 = {0, NULL}; ARUnsignedIntList unsignedIntList2 = {0, NULL}; ARUnsignedIntList unsignedIntList3 = {0, NULL}; +#ifdef ARAPI_7PLUS + ARUnsignedIntList unsignedIntList4 = {0, NULL}; +#endif ARValueList valueList = {0, NULL}; ARPermissionListList permissionListList = {0, NULL}; ARFieldLimitList fieldLimitList = {0, NULL}; @@ -627,6 +639,9 @@ (propertiesMask & fieldDataType) ? &unsignedIntList1 : NULL, (propertiesMask & fieldOption) ? &unsignedIntList2 : NULL, (propertiesMask & fieldCreateMode) ? &unsignedIntList3 : NULL, +#ifdef ARAPI_7PLUS + (propertiesMask & fieldFieldOption) ? &unsignedIntList4 : NULL, +#endif (propertiesMask & fieldDefaultValue) ? &valueList : NULL, (propertiesMask & fieldPermissionList) ? &permissionListList : NULL, (propertiesMask & fieldLimit) ? &fieldLimitList : NULL, @@ -661,12 +676,17 @@ if (propertiesMask & fieldDataType) { fieldInfo.dataType = unsignedIntList1.intList[i]; } +#ifdef ARAPI_7PLUS if (propertiesMask & fieldOption) { fieldInfo.option = unsignedIntList2.intList[i]; } +#endif if (propertiesMask & fieldCreateMode) { fieldInfo.createMode = unsignedIntList3.intList[i]; } + if (propertiesMask & fieldFieldOption) { + fieldInfo.fieldOption = unsignedIntList4.intList [i]; + } if (propertiesMask & fieldDefaultValue) { memcpy(&fieldInfo.defaultVal, &valueList.valueList[i], sizeof(ARValueStruct)); } @@ -705,6 +725,9 @@ FreeARUnsignedIntList(&unsignedIntList1, FALSE); FreeARUnsignedIntList(&unsignedIntList2, FALSE); FreeARUnsignedIntList(&unsignedIntList3, FALSE); +#ifdef ARAPI_7PLUS + FreeARUnsignedIntList(&unsignedIntList4, FALSE); +#endif FreeARValueList(&valueList, FALSE); FreeARPermissionListList(&permissionListList, FALSE); FreeARDisplayInstanceListList(&dInstListList, FALSE); @@ -762,6 +785,9 @@ ARCreateField(&control, const_cast<char *>(form.c_str()), &fieldId, reservedIdOk, const_cast<char *>(field.getName().c_str()), const_cast<ARFieldMappingStruct *>(static_cast<const ARFieldMappingStruct *>(field.getFieldMapping())), field.getDataType(), field.getOption(), field.getCreateMode(), +#ifdef ARAPI_7PLUS + field.getFieldOption(), +#endif const_cast<ARValueStruct *>(static_cast<const ARValueStruct *>( field.getDefaultValue())), const_cast<ARPermissionList *>(static_cast<const ARPermissionList *>(field.getPermissionList())), const_cast<ARFieldLimitStruct *>(static_cast<const ARFieldLimitStruct *>(field.getFieldLimit())), @@ -807,17 +833,27 @@ * @see getMultipleFields * @see Field */ - void setField(const std::string &form, const Field &field, unsigned int propertiesMask = fieldCommonUserProperties) { + void setField(const std::string &form, const Field &field, unsigned int propertiesMask = fieldCommonUserProperties +#ifdef ARAPI_7PLUS + , unsigned int setFieldOption = 0 +#endif + ) { FreeARStatusList(&statusList, FALSE); unsigned int option = field.getOption(); unsigned int createMode = field.getCreateMode(); +#ifdef ARAPI_7PLUS + unsigned int myfieldOption = field.getFieldOption(); +#endif ARSetField(&control, const_cast<char *>(form.c_str()), field.getId (), (propertiesMask & fieldName) ? const_cast<char *>(field.getName().c_str()) : NULL, (propertiesMask & fieldMapping) ? const_cast<ARFieldMappingStruct *>(static_cast<const ARFieldMappingStruct *>(field.getFieldMapping())) : NULL, +#ifdef ARAPI_7PLUS (propertiesMask & fieldOption) ? &option : NULL, +#endif (propertiesMask & fieldCreateMode) ? &createMode : NULL, + (propertiesMask & fieldFieldOption) ? &myfieldOption : NULL, (propertiesMask & fieldDefaultValue) ? const_cast<ARValueStruct *>(static_cast<const ARValueStruct *>(field.getDefaultValue())) : NULL, (propertiesMask & fieldPermissionList) ? const_cast<ARPermissionList *>(static_cast<const ARPermissionList *>( field.getPermissionList())) : NULL, (propertiesMask &fieldLimit) ? const_cast<ARFieldLimitStruct *>(static_cast<const ARFieldLimitStruct *>(field.getFieldLimit())) : NULL, @@ -825,6 +861,9 @@ (propertiesMask & fieldHelpText) ? const_cast<char *>( field.getHelpText().c_str()) : NULL, (propertiesMask & fieldOwner) ? const_cast<char *>( field.getOwner().c_str()) : NULL, (propertiesMask & fieldChangeDiary) ? const_cast<char *>( field.getChangeDiary().c_str()) : NULL, +#ifdef ARAPI_7PLUS + setFieldOption, +#endif &statusList); HANDLE_ARSTATUSLIST(statusList); @@ -1383,7 +1422,11 @@ memset(&compoundSchema, 0, sizeof(compoundSchema)); compoundSchema.schemaType = AR_SCHEMA_REGULAR; - ARCreateSchema(&control, const_cast<char *>(name.c_str()), &compoundSchema, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &statusList); + ARCreateSchema(&control, const_cast<char *>(name.c_str()), &compoundSchema, NULL, NULL, NULL, NULL, NULL, NULL, NULL, +#ifdef ARAPI_7PLUS + NULL, +#endif + NULL, NULL, NULL, NULL, NULL, &statusList); HANDLE_ARSTATUSLIST(statusList); } --- rtl/Field.h 2006-03-07 11:43:38.000000000 -0500 +++ rtl_updates/Field.h 2006-11-24 03:55:21.000000000 -0500 @@ -30,6 +30,10 @@ #include "FieldLimit.h" #include <string> +#if AR_CURRENT_API_VERSION>=11 + #define ARAPI_7PLUS +#endif + namespace rtl { @@ -47,7 +51,11 @@ { public: - Field() : id(0), timestamp(0), dataType(AR_DATA_TYPE_NULL), option(AR_FIELD_OPTION_OPTIONAL), createMode(AR_FIELD_OPEN_AT_CREATE) { + Field() : id(0), timestamp(0), dataType(AR_DATA_TYPE_NULL), option(AR_FIELD_OPTION_OPTIONAL), createMode(AR_FIELD_OPEN_AT_CREATE) +#ifdef ARAPI_7PLUS + , fieldOption(AR_FIELD_BITOPTION_NONE) +#endif + { } @@ -58,6 +66,9 @@ dataType = src.dataType; option = src.option; createMode = src.createMode; +#ifdef ARAPI_7PLUS + fieldOption = src.fieldOption; +#endif helpText = src.helpText ? src.helpText : ""; changeDiary = src.changeDiary ? src.changeDiary : ""; owner = src.owner ? src.owner : ""; @@ -80,6 +91,9 @@ dataType = src.dataType; option = src.option; createMode = src.createMode; +#ifdef ARAPI_7PLUS + fieldOption = src.fieldOption; +#endif defaultValue = src.defaultVal; permissionList = src.permList; fieldLimit = src.limit; @@ -101,6 +115,9 @@ out.dataType = dataType; out.option = option; out.createMode = createMode; +#ifdef ARAPI_7PLUS + out.fieldOption = fieldOption; +#endif memcpy(&out.defaultVal, static_cast<const ARValueStruct *>(defaultValue), sizeof(out.defaultVal)); memcpy(&out.permList, static_cast<const ARPermissionList *>(permissionList), sizeof(out.permList)); memcpy(&out.limit, static_cast<const ARFieldLimitStruct *>(fieldLimit), sizeof(out.limit)); @@ -139,6 +156,11 @@ unsigned int getCreateMode() const {return createMode;} void setCreateMode(const unsigned int &value) {createMode = value;} +#ifdef ARAPI_7PLUS + unsigned int getFieldOption() const {return fieldOption;} + void setFieldOption(const unsigned int &value) {fieldOption = value;} +#endif + const Value &getDefaultValue() const {return defaultValue;} void setDefaultValue(const Value &value) { defaultValue = value;} @@ -169,6 +191,9 @@ unsigned int dataType; unsigned int option; unsigned int createMode; +#ifdef ARAPI_7PLUS + unsigned int fieldOption; +#endif Value defaultValue; PermissionList permissionList; FieldLimit fieldLimit; _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org ARSlist:"Where the Answers Are"