40 impl_2_property_brief = {
44 .string =
"Custom property"
49 impl_2_property_description = {
53 .string =
"Custom property."
58 impl_2_properties[] = {
59 &impl_2_property_brief,
60 &impl_2_property_description,
80 impl_4_property_brief = {
89 impl_4_property_dataType = {
98 impl_4_property_description = {
102 .string =
"If true, filenames that begin with dot ('.') will be included."
107 impl_4_property_label = {
111 .string =
"Include Hidden"
116 impl_4_property_required = {
125 impl_4_properties[] = {
126 &impl_4_property_brief,
127 &impl_4_property_dataType,
128 &impl_4_property_description,
129 &impl_4_property_label,
130 &impl_4_property_required,
136 &impl_4_properties[0]
147 impl_5_property_brief = {
151 .string =
"Recursively traverse directories"
156 impl_5_property_dataType = {
165 impl_5_property_description = {
169 .string =
"If true, directories will be recursively traversed."
174 impl_5_property_label = {
178 .string =
"Recursive"
183 impl_5_property_required = {
192 impl_5_properties[] = {
193 &impl_5_property_brief,
194 &impl_5_property_dataType,
195 &impl_5_property_description,
196 &impl_5_property_label,
197 &impl_5_property_required,
203 &impl_5_properties[0]
214 impl_6_property_brief = {
218 .string =
"Subdirectory"
223 impl_6_property_dataType = {
232 impl_6_property_description = {
236 .string =
"If specified, the retrieve will start in the specified vfs subdirectory instead of the vfs root. The value can not start with '/', must end with '/', and can not contain '\\', './' or '../'."
241 impl_6_property_label = {
245 .string =
"Subdirectory"
250 impl_6_property_required = {
259 impl_6_properties[] = {
260 &impl_6_property_brief,
261 &impl_6_property_dataType,
262 &impl_6_property_description,
263 &impl_6_property_label,
264 &impl_6_property_required,
270 &impl_6_properties[0]
281 impl_7_property_brief = {
285 .string =
"Filename suffix"
290 impl_7_property_dataType = {
299 impl_7_property_description = {
303 .string =
"If specified, only files with filenames that end with the specified suffix are included."
308 impl_7_property_label = {
312 .string =
"Filename Suffix"
317 impl_7_property_required = {
326 impl_7_properties[] = {
327 &impl_7_property_brief,
328 &impl_7_property_dataType,
329 &impl_7_property_description,
330 &impl_7_property_label,
331 &impl_7_property_required,
337 &impl_7_properties[0]
345 impl_3_property_includeHidden = {
354 impl_3_property_recursive = {
363 impl_3_property_subdirectory = {
372 impl_3_property_suffix = {
381 impl_3_properties[] = {
382 &impl_3_property_includeHidden,
383 &impl_3_property_recursive,
384 &impl_3_property_subdirectory,
385 &impl_3_property_suffix,
391 &impl_3_properties[0]
399 impl_1_property_allowAdd = {
408 impl_1_property_allowChange = {
417 impl_1_property_allowDelete = {
426 impl_1_property_allowEntity = {
435 impl_1_array_collectionURIs[] = {
440 impl_1_list_collectionURIs = {
442 sizeof(impl_1_array_collectionURIs) /
sizeof(
afw_utf8_t),
443 (
const void *)&impl_1_array_collectionURIs
447 impl_1_property_collectionURIs = {
451 .list = &impl_1_list_collectionURIs
456 impl_1_property_description = {
460 .string =
"This is the object type for the optional adaptorTypeSpecific parameter of the retrieve_objects() adaptive function when the adaptorType of the adaptorId is vfs."
465 impl_1_property_objectType = {
469 .string =
"_AdaptiveAdaptorTypeSpecific_vfs_retrieve_objects"
474 impl_1_property_otherProperties = {
483 impl_1_property_propertyTypes = {
492 impl_1_properties[] = {
493 &impl_1_property_allowAdd,
494 &impl_1_property_allowChange,
495 &impl_1_property_allowDelete,
496 &impl_1_property_allowEntity,
497 &impl_1_property_collectionURIs,
498 &impl_1_property_description,
499 &impl_1_property_objectType,
500 &impl_1_property_otherProperties,
501 &impl_1_property_propertyTypes,
507 AFW_UTF8_LITERAL(
"/afw/_AdaptiveObjectType_/_AdaptiveAdaptorTypeSpecific_vfs_retrieve_objects");
511 &afw_vfs_s__AdaptiveObjectType_,
512 &afw_vfs_s__AdaptiveAdaptorTypeSpecific_vfs_retrieve_objects,
514 &impl_1_properties[0]
531 impl_10_property_brief = {
535 .string =
"vfsPath filename patterns to mark as executable"
540 impl_10_property_dataType = {
549 impl_10_property_dataTypeParameter = {
558 impl_10_property_description = {
562 .string =
"This is a list of vfsPath filename patterns whose host files should be marked as executable when written. For instance, [\"*.as\"] will mark Adaptive Scripts whose vfsPath ends with \".as\" as executable.\n\nA PATTERN match uses Apache apr function apr_fnmatch() which interprets a pattern as follows:\n\nThere are no illegal patterns.\n\nPATTERN: Backslash followed by any character, including another backslash.\nMATCHES: That character exactly.\n\nPATTERN: ?\nMATCHES: Any single character.\n\nPATTERN: *\nMATCHES: Any sequence of zero or more characters. (Note that multiple *s in a row are equivalent to one.)\n\nPATTERN: Any character other than \\?*[ or a \\ at the end of the pattern\nMATCHES: That character exactly. (Case sensitive.)\n\nPATTERN: [ followed by a class description followed by ]\nMATCHES: A single character described by the class description. (Never matches, if the class description reaches until the end of the string without a ].) If the first character of the class description is ^ or !, the sense of the description is reversed. The rest of the class description is a list of single characters or pairs of characters separated by -. Any of those characters can have a backslash in front of them, which is ignored; this lets you use the characters ] and - in the character class, as well as ^ and ! at the beginning. The pattern matches a single character if it is one of the listed characters or falls into one of the listed ranges (inclusive, case sensitive). Ranges with the first character larger than the second are legal but never match. Edge cases: [] never matches, and [^] and [!] always match without consuming a character.\n\nNote that these patterns attempt to match the entire vfsPath, not just find a substring matching the pattern."
567 impl_10_property_label = {
571 .string =
"Mark Executable"
576 impl_10_properties[] = {
577 &impl_10_property_brief,
578 &impl_10_property_dataType,
579 &impl_10_property_dataTypeParameter,
580 &impl_10_property_description,
581 &impl_10_property_label,
587 &impl_10_properties[0]
598 impl_11_property_brief = {
602 .string =
"VFS to operating system directory map"
607 impl_11_property_dataType = {
616 impl_11_property_dataTypeParameter = {
625 impl_11_property_description = {
629 .string =
"This property is a list of vfs map entries.\n\nThe vfsPath of objects in this vfs adaptor is of the form:\n\n/<adaptorId>/<objectId>\n\nWhere <adaptorId> is the id of this adaptor and where <objectId> is the relative path from the vfs root directory (\"<adaptorId>/\") to the associated file or directory. An <objectId> of a directory ends with a slash ('/').\n\nEach vfsMap entry is a string of the form:\n\n<objectId_prefix>=<host file system directory path>\n\n<objectId_prefix> can be empty if the entry applies to files and directories in the vfs root directory or the objectId of a directory within the vfs.\n\nThe <host file system directory path> must end in a slash ('/'). A backslash is tolerated on a Windows host. The host system file path is the <objectId> with <objectId_prefix> removed appended to the associated <host file system directory path>.\n\nThe map entry with the longest matching <objectId_prefix> is the one used for any adaptor functions objectId parameter.\n\nFor retrieve_objects*() the entries are processed in longest to shortest <objectId_prefix> order. If \"subdirectory\" is supplied in the retrieve_objects*() adaptorSpecific parameter, only matching entries are used. Note, that depending on the vfsMap, a single physical file or directory can appear multiple times with different vfsPaths."
634 impl_11_property_label = {
643 impl_11_property_required = {
652 impl_11_properties[] = {
653 &impl_11_property_brief,
654 &impl_11_property_dataType,
655 &impl_11_property_dataTypeParameter,
656 &impl_11_property_description,
657 &impl_11_property_label,
658 &impl_11_property_required,
664 &impl_11_properties[0]
672 impl_9_property_markExecutable = {
681 impl_9_property_vfsMap = {
690 impl_9_properties[] = {
691 &impl_9_property_markExecutable,
692 &impl_9_property_vfsMap,
697 impl_9_parentPaths_array[] = {
698 AFW_UTF8_LITERAL(
"/afw/_AdaptiveObjectType_/_AdaptiveConf_adaptor/propertyTypes")
703 &impl_9_properties[0],
704 sizeof(impl_9_parentPaths_array) /
sizeof(
afw_utf8_t),
705 &impl_9_parentPaths_array[0]
713 impl_8_property_allowEntity = {
722 impl_8_array_collectionURIs[] = {
727 impl_8_list_collectionURIs = {
729 sizeof(impl_8_array_collectionURIs) /
sizeof(
afw_utf8_t),
730 (
const void *)&impl_8_array_collectionURIs
734 impl_8_property_collectionURIs = {
738 .list = &impl_8_list_collectionURIs
743 impl_8_property_description = {
747 .string =
"Adaptive Framework configuration component for type=adaptor adaptorType=vfs. This is a virtual file system adaptor that allows files to be accessed as objects that have a \"data\" property and additional file stats properties. The vfs path to files begins with \"/\", the adaptor name, \"/_AdaptiveFile_vfs\". The path of the operating system directory as well as the paths to subdirectories are defined in the \"vfsMap\" property."
752 impl_8_property_objectType = {
756 .string =
"_AdaptiveConf_adaptor_vfs"
761 impl_8_property_propertyTypes = {
770 impl_8_properties[] = {
771 &impl_8_property_allowEntity,
772 &impl_8_property_collectionURIs,
773 &impl_8_property_description,
774 &impl_8_property_objectType,
775 &impl_8_property_propertyTypes,
785 &afw_vfs_s__AdaptiveObjectType_,
786 &afw_vfs_s__AdaptiveConf_adaptor_vfs,
788 &impl_8_properties[0]
805 impl_14_property_brief = {
809 .string =
"Contents of file"
814 impl_14_property_defaultValue = {
823 impl_14_property_description = {
827 .string =
"This is the contents of the file. If this is a directory, data is a list of strings containing the name from its entries. If this is not a directory and the data is valid utf-8, data is a string otherwise, it is hexBinary. This property is ignored when adding a directory."
832 impl_14_property_label = {
841 impl_14_property_required = {
850 impl_14_properties[] = {
851 &impl_14_property_brief,
852 &impl_14_property_defaultValue,
853 &impl_14_property_description,
854 &impl_14_property_label,
855 &impl_14_property_required,
861 &impl_14_properties[0]
872 impl_15_property_allowWrite = {
881 impl_15_property_brief = {
885 .string =
"Is directory"
890 impl_15_property_dataType = {
899 impl_15_property_description = {
903 .string =
"This is true if this is a directory. This property is read-only. A slash ('/') at the end of an objectId is used to indicate this in requests."
908 impl_15_property_label = {
912 .string =
"Is Directory"
917 impl_15_properties[] = {
918 &impl_15_property_allowWrite,
919 &impl_15_property_brief,
920 &impl_15_property_dataType,
921 &impl_15_property_description,
922 &impl_15_property_label,
928 &impl_15_properties[0]
939 impl_16_property_brief = {
943 .string =
"Time last accessed"
948 impl_16_property_dataType = {
957 impl_16_property_description = {
961 .string =
"This is the time the file was last accessed."
966 impl_16_property_label = {
970 .string =
"Time Accessed"
975 impl_16_property_required = {
984 impl_16_properties[] = {
985 &impl_16_property_brief,
986 &impl_16_property_dataType,
987 &impl_16_property_description,
988 &impl_16_property_label,
989 &impl_16_property_required,
995 &impl_16_properties[0]
1006 impl_17_property_brief = {
1010 .string =
"Time created"
1015 impl_17_property_dataType = {
1019 .string =
"dateTime"
1024 impl_17_property_description = {
1028 .string =
"This is the time the file was created."
1033 impl_17_property_label = {
1037 .string =
"Time Created"
1042 impl_17_property_required = {
1051 impl_17_properties[] = {
1052 &impl_17_property_brief,
1053 &impl_17_property_dataType,
1054 &impl_17_property_description,
1055 &impl_17_property_label,
1056 &impl_17_property_required,
1062 &impl_17_properties[0]
1073 impl_18_property_brief = {
1077 .string =
"Time last modified"
1082 impl_18_property_dataType = {
1086 .string =
"dateTime"
1091 impl_18_property_description = {
1095 .string =
"This is the time the file was last modified."
1100 impl_18_property_label = {
1104 .string =
"Time Modified"
1109 impl_18_property_required = {
1118 impl_18_properties[] = {
1119 &impl_18_property_brief,
1120 &impl_18_property_dataType,
1121 &impl_18_property_description,
1122 &impl_18_property_label,
1123 &impl_18_property_required,
1129 &impl_18_properties[0]
1140 impl_19_property_allowWrite = {
1149 impl_19_property_brief = {
1153 .string =
"VFS path"
1158 impl_19_property_dataType = {
1167 impl_19_property_description = {
1171 .string =
"This is the vfs path within this instance of Adaptive Framework. This property is read-only."
1176 impl_19_property_label = {
1180 .string =
"VFS Path"
1185 impl_19_properties[] = {
1186 &impl_19_property_allowWrite,
1187 &impl_19_property_brief,
1188 &impl_19_property_dataType,
1189 &impl_19_property_description,
1190 &impl_19_property_label,
1196 &impl_19_properties[0]
1204 impl_13_property_data = {
1213 impl_13_property_isDirectory = {
1222 impl_13_property_timeAccessed = {
1231 impl_13_property_timeCreated = {
1240 impl_13_property_timeModified = {
1249 impl_13_property_vfsPath = {
1258 impl_13_properties[] = {
1259 &impl_13_property_data,
1260 &impl_13_property_isDirectory,
1261 &impl_13_property_timeAccessed,
1262 &impl_13_property_timeCreated,
1263 &impl_13_property_timeModified,
1264 &impl_13_property_vfsPath,
1270 &impl_13_properties[0]
1278 impl_12_property_allowEntity = {
1287 impl_12_array_collectionURIs[] = {
1292 impl_12_list_collectionURIs = {
1294 sizeof(impl_12_array_collectionURIs) /
sizeof(
afw_utf8_t),
1295 (
const void *)&impl_12_array_collectionURIs
1299 impl_12_property_collectionURIs = {
1303 .list = &impl_12_list_collectionURIs
1308 impl_12_property_description = {
1312 .string =
"This is the single object type of objects in a vfs adaptor."
1317 impl_12_property_objectType = {
1321 .string =
"_AdaptiveFile_vfs"
1326 impl_12_property_propertyTypes = {
1335 impl_12_properties[] = {
1336 &impl_12_property_allowEntity,
1337 &impl_12_property_collectionURIs,
1338 &impl_12_property_description,
1339 &impl_12_property_objectType,
1340 &impl_12_property_propertyTypes,
1350 &afw_vfs_s__AdaptiveObjectType_,
1351 &afw_vfs_s__AdaptiveFile_vfs,
1353 &impl_12_properties[0]
1358 impl_const_objects[] = {
1370 &impl_const_objects[0],
false, xctx);
Adaptive Framework Core API.
void afw_vfs_const_objects_register(afw_xctx_t *xctx)
Get array of afw_vfs_ const objects.
Adaptive Framework register generated (afw_vfs) header.
#define AFW_UTF8_LITERAL(A_STRING)
String literal initializer.
afw_runtime_env_resolve_and_set_const_objects(const afw_runtime_unresolved_const_object_t *const *unresolved, afw_boolean_t overwrite, afw_xctx_t *xctx)
Resolve and set a NULL terminated list of object pointers in the xctx's runtime objects.
@ afw_runtime_unresolved_primitive_type_list
@ afw_runtime_unresolved_primitive_type_string
value points to afw_utf8_z_t.
@ afw_runtime_unresolved_primitive_type_object
@ afw_runtime_unresolved_primitive_type_boolean
Runtime unresolved property.
NFC normalized UTF-8 string.
Interface afw_xctx public struct.