Selection List

Contains user-specified data set names to perform a scan against in conjunction with NWSM_SELECTION_LIST.

Syntax

  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).
  

Fields

selectionNameSpaceType

Specifies the name space type used by name (usually the name space that created the data set).

selectionType

Specifies how to select data.

count

Specifies the size of namePositions and separatorPositions.

namePositions

Specifies the beginning position of each path node contained in name.

separatorPositions

Specifies the beginning position of each separator in name.

nameLength

Specifies the length of name including NULL.

name

Specifies a NULL-terminated path string.

Remarks

The following table lists the values that can be set for typeNumber used by NWSMTSGetTargetSelectionTypeStr and the mask information used in selectionType.

Option

Value

Description

0

0x0000

NONE: Cannot be used if a selection list is being built. If a data set name list is being built, selectionType must be "No selection type".

1

0x0002

NWSM_TSA_DEFINED_RESOURCE_EXC: Do not scan for the specified TSA-defined resources, including all of its' subordinates.

1

0x0003

NWSM_TSA_DEFINED_RESOURCE_INC: Scan for the specified TSA-defined resource, including all of its subordinates. All TSA-defined resources are included in the scan by default if the resource name passed to NWSMTSScanDataSetBegin is the first resource returned by NWSMTSListTSResources.

2

0x0004

NWSM_PARENT_TO_BE_EXCLUDED: Do not scan for the specified parents, including all of its subordinates from the scan.

2

0x0005

NWSM_PARENT_TO_BE_INCLUDED: Scan for the specified parents, including all of its subordinates from the scan.

3

0x0008

NWSM_CHILD_TO_BE_EXCLUDED: Do not scan for the specified children.

3

0x0009

NWSM_CHILD_TO_BE_INCLUDED: Scan for the specified children.

4

0x0010

NWSM_EXCLUDE_CHILD_BY_FULL_NAME: Do not scan for the specified child.

4

0x0011

NWSM_INCLUDE_CHILD_BY_FULL_NAME: Do not scan for the specified child.

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.

Example

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.