windows-nt/Source/XPSP1/NT/base/fs/hsm/cli/cliparse.h

184 lines
3.5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
cliparse.h
Abstract:
Definitions for CLI parse module
Author:
Ravisankar Pudipeddi [ravisp] 21-March-2000
Revision History:
--*/
#ifndef _CLIPARSE_H_
#define _CLIPARSE_H_
//
// Return codes from main()
//
#define CLIP_ERROR_SUCCESS 0
#define CLIP_ERROR_INVALID_PARAMETER 1
#define CLIP_ERROR_INSUFFICIENT_MEMORY 2
#define CLIP_ERROR_UNKNOWN 0xFF
//
// Token separators on command line
//
#define SEPARATORS L" \t\n"
//
// Delimiter which distinguishes a switch
//
#define SWITCH_DELIMITERS L"/-"
//
// Argument separator for a switch
//
#define SWITCH_ARG_DELIMITERS L":"
//
// Argument separator for a rule spec (distinguishes
// path from file spec)
//
#define RULE_DELIMITERS L":"
//
// Quotes to delimit tokens with embedded whitespace
//
#define QUOTE L'\"'
//
// Rss command line interfaces
//
typedef enum _RSS_INTERFACE {
UNKNOWN_IF = 0,
ADMIN_IF,
VOLUME_IF,
FILE_IF,
MEDIA_IF,
HELP_IF,
SHOW_IF,
SET_IF,
MANAGE_IF,
UNMANAGE_IF,
DELETE_IF,
JOB_IF,
RECALL_IF,
SYNCHRONIZE_IF,
RECREATEMASTER_IF
} RSS_INTERFACE, *PRSS_INTERFACE;
//
// All switches supported by the CLI
//
typedef enum _RSS_SWITCH_TYPE {
UNKNOWN_SW = 0,
RECALLLIMIT_SW,
MEDIACOPIES_SW,
SCHEDULE_SW,
CONCURRENCY_SW,
ADMINEXEMPT_SW,
GENERAL_SW,
MANAGEABLES_SW,
MANAGED_SW,
MEDIA_SW,
DFS_SW,
SIZE_SW,
ACCESS_SW,
INCLUDE_SW,
EXCLUDE_SW,
RECURSIVE_SW,
QUICK_SW,
FULL_SW,
RULE_SW,
STATISTICS_SW,
TYPE_SW,
RUN_SW,
CANCEL_SW,
WAIT_SW,
COPYSET_SW,
NAME_SW,
STATUS_SW,
CAPACITY_SW,
FREESPACE_SW,
VERSION_SW,
COPIES_SW,
HELP_SW
} RSS_SWITCH_TYPE, *PRSS_SWITCH_TYPE;
//
// Switches structure: compiled by parsing command line
//
typedef struct _RSS_SWITCHES {
RSS_SWITCH_TYPE SwitchType;
LPWSTR Arg;
} RSS_SWITCHES, *PRSS_SWITCHES;
typedef struct _RSS_KEYWORD {
//
// Long version of the keyword
//
LPWSTR Long;
//
// Short version of the keyword
//
LPWSTR Short;
RSS_INTERFACE Interface;
} RSS_KEYWORD, *PRSS_KEYWORD;
//
// Switches are described in this structure
// First, some defines for RSS_SWITCH_DEFINITION structure
//
#define RSS_NO_ARG 0
#define RSS_ARG_DWORD 1
#define RSS_ARG_STRING 2
typedef struct _RSS_SWITCH_DEFINITION {
//
// Long version of the keyword
//
LPWSTR Long;
//
// Short version of the keyword
//
LPWSTR Short;
RSS_SWITCH_TYPE SwitchType;
DWORD ArgRequired;
} RSS_SWITCH_DEFINITION, *PRSS_SWITCH_DEFINITION;
//
// Job type definition
//
typedef struct _RSS_JOB_DEFINITION {
//
// Long version of the keyword
//
LPWSTR Long;
//
// Short version of the keyword
//
LPWSTR Short;
HSM_JOB_TYPE JobType;
} RSS_JOB_DEFINITION, *PRSS_JOB_DEFINITION;
#define HSM_SCHED_AT L"At"
#define HSM_SCHED_EVERY L"Every"
#define HSM_SCHED_SYSTEMSTARTUP L"Startup"
#define HSM_SCHED_LOGIN L"Login"
#define HSM_SCHED_IDLE L"Idle"
#define HSM_SCHED_DAILY L"Day"
#define HSM_SCHED_WEEKLY L"Week"
#define HSM_SCHED_MONTHLY L"Month"
#define HSM_SCHED_TIME_SEPARATORS L":"
#endif // _CLIPARSE_H_