Changeset 7817
- Timestamp:
- Jul 5, 2006, 12:46:13 PM (20 years ago)
- Location:
- trunk/psModules/src/config
- Files:
-
- 2 edited
-
pmConfig.c (modified) (19 diffs)
-
pmConfig.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/config/pmConfig.c
r7791 r7817 3 3 * @author PAP, IfA 4 4 * 5 * @version $Revision: 1.3 0$ $Name: not supported by cvs2svn $6 * @date $Date: 2006-07-0 3 21:18:30$5 * @version $Revision: 1.31 $ $Name: not supported by cvs2svn $ 6 * @date $Date: 2006-07-05 22:46:13 $ 7 7 * 8 8 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 36 36 } 37 37 38 pmConfig *pmConfigAlloc(int argc, char **argv)38 pmConfig *pmConfigAlloc(int *argc, char **argv) 39 39 { 40 40 pmConfig *config = psAlloc(sizeof(pmConfig)); … … 171 171 *****************************************************************************/ 172 172 pmConfig *pmConfigRead( 173 int argc,173 int *argc, 174 174 char **argv) 175 175 { 176 PS_ASSERT_INT_POSITIVE(argc, false); 177 PS_ASSERT_PTR_NON_NULL(argv, false); 176 PS_ASSERT_PTR_NON_NULL(argc, NULL); 177 PS_ASSERT_INT_POSITIVE(*argc, NULL); 178 PS_ASSERT_PTR_NON_NULL(argv, NULL); 178 179 179 180 pmConfig *config = pmConfigAlloc(argc, argv); // The configuration, containing site, camera and recipes … … 188 189 // First, try command line 189 190 // 190 psS32 argNum = psArgumentGet( config->argc, config->argv, "-site");191 psS32 argNum = psArgumentGet(*config->argc, config->argv, "-site"); 191 192 if (argNum != 0) { 192 193 // … … 195 196 // remove it as well. 196 197 // 197 psArgumentRemove(argNum, &config->argc, config->argv);198 if (argNum >= config->argc) {198 psArgumentRemove(argNum, config->argc, config->argv); 199 if (argNum >= *config->argc) { 199 200 psLogMsg(__func__, PS_LOG_WARN, 200 201 "-site command-line switch provided without the required filename --- ignored.\n"); 201 202 } else { 202 203 siteName = psStringCopy(config->argv[argNum]); 203 psArgumentRemove(argNum, &config->argc, config->argv);204 psArgumentRemove(argNum, config->argc, config->argv); 204 205 } 205 206 } … … 255 256 // file is read and parsed into psMetadata struct "camera". 256 257 // 257 argNum = psArgumentGet( config->argc, config->argv, "-camera");258 argNum = psArgumentGet(*config->argc, config->argv, "-camera"); 258 259 if (argNum > 0) { 259 psArgumentRemove(argNum, &config->argc, config->argv);260 if (argNum >= config->argc) {260 psArgumentRemove(argNum, config->argc, config->argv); 261 if (argNum >= *config->argc) { 261 262 psLogMsg(__func__, PS_LOG_WARN, 262 263 "-camera command-line switch provided without the required camera or filename --- " … … 282 283 283 284 readConfig(&config->camera, cameraFile, "camera"); 284 psArgumentRemove(argNum, &config->argc, config->argv);285 psArgumentRemove(argNum, config->argc, config->argv); 285 286 } 286 287 } … … 330 331 331 332 332 argNum = psArgumentGet( config->argc, config->argv, "-log");333 argNum = psArgumentGet(*config->argc, config->argv, "-log"); 333 334 if (argNum > 0) { 334 psArgumentRemove(argNum, &config->argc, config->argv);335 if (argNum >= config->argc) {335 psArgumentRemove(argNum, config->argc, config->argv); 336 if (argNum >= *config->argc) { 336 337 psLogMsg(__func__, PS_LOG_WARN, 337 338 "-log command-line switch provided without the required log destination --- ignored.\n"); … … 341 342 config->argv[argNum]); 342 343 } 343 psArgumentRemove(argNum, &config->argc, config->argv);344 psArgumentRemove(argNum, config->argc, config->argv); 344 345 } 345 346 } else { … … 388 389 // 389 390 psS32 saveLogLevel = psLogGetLevel(); 390 psArgumentVerbosity( &config->argc, config->argv);391 psArgumentVerbosity(config->argc, config->argv); 391 392 // XXX: substitute the string for the default log level for "2". 392 393 if (2 == psLogGetLevel()) { … … 711 712 // Go through the command-line arguments 712 713 int argNum; // Argument number for "-recipe" 713 while ((argNum = psArgumentGet( config->argc, config->argv, "-recipe")) > 0) {714 psArgumentRemove(argNum, &config->argc, config->argv);715 if (argNum + 1 >= config->argc) {714 while ((argNum = psArgumentGet(*config->argc, config->argv, "-recipe")) > 0) { 715 psArgumentRemove(argNum, config->argc, config->argv); 716 if (argNum + 1 >= *config->argc) { 716 717 psLogMsg(__func__, PS_LOG_WARN, "-recipe command-line switch provided without the " 717 718 "required recipe and source --- ignored.\n"); 718 if (argNum == config->argc) {719 if (argNum == *config->argc) { 719 720 // Remove the single last argument (we required two, they gave us one) 720 psArgumentRemove(argNum, &config->argc, config->argv);721 psArgumentRemove(argNum, config->argc, config->argv); 721 722 } 722 723 continue; … … 724 725 725 726 const char *recipeName = psStringCopy(config->argv[argNum]); // Name of the recipe 726 psArgumentRemove(argNum, &config->argc, config->argv);727 psArgumentRemove(argNum, config->argc, config->argv); 727 728 const char *recipeSource = psStringCopy(config->argv[argNum]); // Source of the recipe 728 psArgumentRemove(argNum, &config->argc, config->argv);729 psArgumentRemove(argNum, config->argc, config->argv); 729 730 730 731 // Command-line has the highest priority, so we don't have to check to see if it's already there … … 834 835 psArray *pmConfigFileSets(pmConfig *config, char *file, char *list) 835 836 { 836 PS_ASSERT_INT_NONNEGATIVE(config->argc, NULL);837 837 PS_ASSERT_PTR_NON_NULL(config, NULL); 838 PS_ASSERT_PTR_NON_NULL(config->argc, NULL); 839 PS_ASSERT_INT_NONNEGATIVE(*config->argc, NULL); 838 840 PS_ASSERT_PTR_NON_NULL(config->argv, NULL); 839 841 PS_ASSERT_PTR_NON_NULL(file, NULL); … … 851 853 // maybe a comma-separated list of words 852 854 // each word may be a glob: "file*.fits" 853 if ((Narg = psArgumentGet ( config->argc, config->argv, file))) {855 if ((Narg = psArgumentGet (*config->argc, config->argv, file))) { 854 856 855 857 // select the word after 'file' and split by comma 856 psArgumentRemove (Narg, &config->argc, config->argv);858 psArgumentRemove (Narg, config->argc, config->argv); 857 859 psArray *words = psStringSplitArray (config->argv[Narg], ",", true); 858 psArgumentRemove (Narg, &config->argc, config->argv);860 psArgumentRemove (Narg, config->argc, config->argv); 859 861 860 862 // parse the word as a glob … … 879 881 880 882 // load the list from the supplied text file 881 if ((Narg = psArgumentGet ( config->argc, config->argv, list))) {883 if ((Narg = psArgumentGet (*config->argc, config->argv, list))) { 882 884 int nItems; 883 885 char line[1024]; // XXX limits the list lines to 1024 chars … … 885 887 char *filename; 886 888 887 psArgumentRemove (Narg, &config->argc, config->argv);889 psArgumentRemove (Narg, config->argc, config->argv); 888 890 FILE *f = fopen (config->argv[Narg], "r"); 889 891 if (f == NULL) { … … 906 908 } 907 909 } 908 psArgumentRemove (Narg, &config->argc, config->argv);910 psArgumentRemove (Narg, config->argc, config->argv); 909 911 } 910 912 … … 915 917 { 916 918 PS_ASSERT_PTR_NON_NULL(metadata, false); 917 PS_ASSERT_PTR_NON_NULL(config, NULL); 918 PS_ASSERT_INT_NONNEGATIVE(config->argc, NULL); 919 PS_ASSERT_PTR_NON_NULL(config->argv, false); 919 PS_ASSERT_PTR_NON_NULL(config, false); 920 920 PS_ASSERT_PTR_NON_NULL(name, false); 921 PS_ASSERT_INT_POSITIVE(strlen(name), NULL);921 PS_ASSERT_INT_POSITIVE(strlen(name), false); 922 922 PS_ASSERT_PTR_NON_NULL(file, false); 923 PS_ASSERT_INT_POSITIVE(strlen(file), NULL);923 PS_ASSERT_INT_POSITIVE(strlen(file), false); 924 924 PS_ASSERT_PTR_NON_NULL(list, false); 925 PS_ASSERT_INT_POSITIVE(strlen(list), NULL);925 PS_ASSERT_INT_POSITIVE(strlen(list), false); 926 926 927 927 psErrorClear(); // pmConfigFileSets may or may not call psError, so … … 934 934 } 935 935 936 psMetadataAddPtr (metadata, PS_LIST_TAIL, name, PS_DATA_ARRAY, "", files);936 psMetadataAddPtr(metadata, PS_LIST_TAIL, name, PS_DATA_ARRAY, "", files); 937 937 psFree (files); 938 938 return true; -
trunk/psModules/src/config/pmConfig.h
r7792 r7817 3 3 * @author PAP, IfA 4 4 * 5 * @version $Revision: 1.1 2$ $Name: not supported by cvs2svn $6 * @date $Date: 2006-07-0 3 21:26:53 $5 * @version $Revision: 1.13 $ $Name: not supported by cvs2svn $ 6 * @date $Date: 2006-07-05 22:46:13 $ 7 7 * 8 8 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 33 33 psMetadata *files; // pmFPAfiles used for analysis 34 34 psDB *database; // Database handle 35 int argc;// Number of command-line arguments35 int *argc; // Number of command-line arguments 36 36 char **argv; // Command-line arguments (raw version) 37 37 // Private members … … 41 41 pmConfig; 42 42 43 pmConfig *pmConfigAlloc(int argc,// Number of command-line arguments43 pmConfig *pmConfigAlloc(int *argc, // Number of command-line arguments 44 44 char **argv // Command-line arguments 45 45 ); … … 67 67 */ 68 68 pmConfig *pmConfigRead( 69 int argc,69 int *argc, 70 70 char **argv); 71 71
Note:
See TracChangeset
for help on using the changeset viewer.
