Changeset 6906
- Timestamp:
- Apr 19, 2006, 10:30:49 AM (20 years ago)
- Location:
- trunk/psModules/src/astrom
- Files:
-
- 2 edited
-
pmFPAfile.c (modified) (8 diffs)
-
pmFPAfile.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/astrom/pmFPAfile.c
r6896 r6906 5 5 #include "pmHDU.h" 6 6 #include "pmFPA.h" 7 #include "pmMaskBadPixels.h" 7 8 #include "pmFPAConstruct.h" 8 9 #include "pmFPAview.h" … … 249 250 char *writeMode = "w"; 250 251 252 if (file->state & PM_FPA_STATE_INACTIVE) { 253 return false; 254 } 255 256 if (file->state == PM_FPA_STATE_OPEN) { 257 return true; 258 } 259 251 260 if (file->mode == PM_FPA_MODE_NONE) { 252 261 return false; … … 260 269 if (file->mode == PM_FPA_MODE_WRITE) { 261 270 mode = writeMode; 262 }263 264 if (file->state == PM_FPA_STATE_OPEN) {265 return true;266 271 } 267 272 … … 322 327 bool pmFPAfileRead (pmFPAfile *file, const pmFPAview *view) 323 328 { 329 if (file->state & PM_FPA_STATE_INACTIVE) 330 return false; 331 324 332 if (file->mode != PM_FPA_MODE_READ) 325 333 return false; … … 372 380 bool pmFPAfileWrite (pmFPAfile *file, const pmFPAview *view) 373 381 { 374 if (file->mode != PM_FPA_MODE_WRITE) 375 return false; 382 383 if (file->state & PM_FPA_STATE_INACTIVE) { 384 return false; 385 } 386 387 if (file->mode != PM_FPA_MODE_WRITE) { 388 return false; 389 } 376 390 377 391 // get the current depth … … 422 436 bool pmFPAfileCreate (pmFPAfile *file, const pmFPAview *view) 423 437 { 438 if (file->state & PM_FPA_STATE_INACTIVE) { 439 return false; 440 } 424 441 if (file->mode != PM_FPA_MODE_WRITE) 425 442 return false; … … 461 478 bool pmFPAfileClose (pmFPAfile *file, const pmFPAview *view) 462 479 { 480 if (file->state & PM_FPA_STATE_INACTIVE) { 481 return false; 482 } 463 483 if (file->state == PM_FPA_STATE_CLOSED) { 464 484 return true; … … 496 516 fprintf (stderr, "warning: type mismatch\n"); 497 517 return false; 518 } 519 return true; 520 } 521 522 // set the state of the specified pmFPAfile to active (state == true) or inactive 523 // if name is NULL, set the state for all pmFPAfiles 524 bool pmFPAfileActivate (psMetadata *files, bool state, char *name) 525 { 526 if (name == NULL) { 527 psMetadataItem *item = NULL; 528 psMetadataIterator *iter = psMetadataIteratorAlloc (files, PS_LIST_HEAD, NULL); 529 while ((item = psMetadataGetAndIncrement (iter)) != NULL) { 530 pmFPAfile *file = item->data.V; 531 if (state) { 532 file->state &= NOT_U8(PM_FPA_STATE_INACTIVE); 533 } else { 534 file->state |= PM_FPA_STATE_INACTIVE; 535 } 536 } 537 psFree (iter); 538 return true; 539 } 540 541 bool status = false; 542 pmFPAfile *file = psMetadataLookupPtr (&status, files, name); 543 if (!file) { 544 return false; 545 } 546 if (state) { 547 file->state &= NOT_U8(PM_FPA_STATE_INACTIVE); 548 } else { 549 file->state |= PM_FPA_STATE_INACTIVE; 498 550 } 499 551 return true; -
trunk/psModules/src/astrom/pmFPAfile.h
r6872 r6906 7 7 * @author EAM, IfA 8 8 * 9 * @version $Revision: 1. 2$ $Name: not supported by cvs2svn $10 * @date $Date: 2006-04-1 7 18:01:04$9 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2006-04-19 20:30:49 $ 11 11 * 12 12 * Copyright 2004-2005 Institute for Astronomy, University of Hawaii … … 46 46 47 47 typedef enum { 48 PM_FPA_STATE_OPEN, 49 PM_FPA_STATE_CLOSED, 48 PM_FPA_STATE_OPEN = 0x01, 49 PM_FPA_STATE_CLOSED = 0x02, 50 PM_FPA_STATE_INACTIVE = 0x04, 50 51 } pmFPAfileState; 51 52 … … 111 112 bool pmFPAfileClose (pmFPAfile *file, const pmFPAview *view); 112 113 114 // set the state of the specified pmFPAfile to active (state == true) or inactive 115 // if name is NULL, set the state for all pmFPAfiles 116 bool pmFPAfileActivate (psMetadata *files, bool state, char *name); 117 113 118 // examine all pmFPAfiles listed in the files and perform the needed I/O operations (open,read,write,close) 114 119 bool pmFPAfileIOChecks (psMetadata *files, const pmFPAview *view, pmFPAfilePlace place);
Note:
See TracChangeset
for help on using the changeset viewer.
