/*++ 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_