Contains user-specified data set names to perform a scan against in conjunction with NWSM_SELECTION_LIST.
UINT32 selectionNameSpaceType; UINT32 selectionType; UINT8 count; UINT16 namePositions[count]; UINT16 separatorPositions[count]; UINT16 nameLength; STRING name[nameLength];
Immediately following keyInformation of NWSM_SELECTION_LIST is an array of user-specified data set names (the selection list). The list is used to perform some sort of action against each element(selection) in the list has a selection type, which specifies how the data set is to be selected (e.g., included in or excluded from a scan).
Specifies the name space type used by name (usually the name space that created the data set).
Specifies how to select data.
Specifies the size of namePositions and separatorPositions.
Specifies the beginning position of each path node contained in name.
Specifies the beginning position of each separator in name.
Specifies the length of name including NULL.
Specifies a NULL-terminated path string.
The following table lists the values that can be set for typeNumber used by NWSMTSGetTargetSelectionTypeStr and the mask information used in selectionType.
All selection types (except the last two) can be applied globally to the target's data. NWSM_EXCLUDE_CHILD_BY_FULL_NAME and NWSM_INCLUDE_CHILD_BY_FULL_NAME can be applied to only one location on the target. However, the engine must manually set the boundaries of the area to select data sets from. For example, to include all .c files in directory /home/user/dir1, the engine must put into a selection list the following two list elements:
For the first element, set selectionType to NWSM_INCLUDE_CHILD_BY_FULL_NAME and set name to /home/user/dir1/*.c
For the second element, set selectionType to NWSM_PARENT_TO_BE_INCLUDED and name to /home/user/dir1
Call NWSMTSGetTargetSelectionTypeStr to find out if a selection type is supported.
NWSM_TSA_DEFINED_RESOURCE_EXC and NWSM_TSA_DEFINED_RESOURCE_INC are logical groupings of resources.
TSA-defined resources are logical groupings of resources. NetWare's bindery and file servers are examples of these resource since they do not exist as a single entity, but as a logical group of lesser resources. The bindery consists of 3 files. The file server consists of a bindery, a volume, directories, and files.
name must contain a fully qualified path for selection types, TSA-defined resources, and full-name parents and children.
name only contains a terminal name for NWSM_CHILD_TO_BE_EXCLUDED and NWSM_CHILD_TO_BE_INCLUDED.
Wild cards are only allowed in the terminal path node (even if the node is a parent). If the terminal path node is a parent, and if the name space requires it, an end separator is needed.
Call NWSMPutFirstName, NWSMPutNextName, NWSMPutOneName, and NWSMCloseName to insert the path information into a selection list. See WNSMTSGetTargetSelectionTypeStr for an example of these functions.
Assume a user includes the following data sets in a backup session:
On Linux:
/nssvol/home/admin
where /nssvol/home/admin is a full path to a parent. These are the relevant fields of NWSM_SELECTION_LIST and the Selection List:
selection 1:
selectionType = NWSM_PARENT_TO_BE_INCLUDED count = 3 namePositions = 1, 8, 13 separatorPositions = 0, 7, 12 nameLength = 18 name[nameLength] = "/nssvol/home/admin" + ’\0’
On NetWare:
SYS:SYSTEM/PROTO/ SYS:PUBLIC/BIN/PCONSOLE.EXE BINDERY Employee.Department.Company.Country
where SYS:SYSTEM/PROTO/ is a full path to a parent, SYS:PUBLIC/PCONSOLE.EXE is a full path to a child, BINDERY is a TSA defined resource, and Employee.Department.Company.Country is a path to a Directory Services object.
These are the relevant fields of NWSM_SELECTION_LIST and the Selection List:
selectionCount = 3 selection 1: selectionType = NWSM_PARENT_TO_BE_INCLUDED count = 3 namePositions = 0, 4, 11 separatorPositions = 3, 10, 16 nameLength = 18 name[nameLength] = “SYS:SYSTEM/PROTO/” + ’\0’ selection 2: selectionType = NWSM_CHILD_TO_BE_INCLUDED count = 4 namePositions = 0, 4, 11, 15 separatorPositions = 3, 10, 14, 0 nameLength = 28 name[nameLength] = “SYS:PUBLIC/BIN/PCONSOLE.EXE” + ’\0’ selection 3: selectionType = NWSM_TSA_DEFINED_RESOURCE count = 0 namePositions = n/a separatorPositions = n/a nameLength = 8 name[nameLength] = “BINDERY” + ’\0’ selection 4: selectionType = NWSM_DIRECTORY_NAME_SPACE count = 4 namePositions = 27, 20, 9, 0 separatorPositions = 0, 26, 19, 8 nameLength = 8 name[nameLength] = Employee.Department.Company.Country +’\0’
The name position and separator position array size are always equal, regardless of the number of path nodes and separators in the path. Selection two shows that the last value of the separator position array is zero which indicates that there is no last separator and that the path contains a child. Selection three shows that the name position and separator position arrays are not used because the path contains only one node. Selection four shows a reversed path. The indices in both position arrays are reversed because the first index value must indicate the beginning of the most significant path node or separator and the second index value must indicate the next significant path node or separator.