13#error This is a C++ include file and cannot be used from plain C
27#define ngcdcsMERGE_CHUNK (1024 * 64)
32#define ngcdcsMERGE_MAX_FILESIZE (2147483647 - ngcbFITS_BLOCK_LEN)
179 void Id(
int val) {id_ = val;}
182 int Id() {
return (id_);}
188 int Run(
int argc,
char **argv);
194 int Check(
const char *name);
197 int Process(
const char *name,
int process=1);
203 int ProcessList(
const char *fileName,
const char *item=NULL);
215 int ProcessFits(
const char *source,
const char *target=NULL);
227 int VerifyFits(
const char *source,
const char *target=NULL);
230 double Size() {
return (vsize_);}
254 void Completed(
int stat,
const char *msg=NULL);
261 virtual int Args(
int argc,
char **argv);
264 virtual FILE *
Usage();
273 virtual void CompletedCB(
int stat,
const char *msg=NULL);
276 virtual void Notify(
double size);
279 virtual void FileEvent(
const char *
id,
const char *fileName);
288 virtual void Verbose(
int level,
const char *format, ...)
289 __attribute__ ((format(printf, 3, 4)));
292 virtual
void Verbose(const
char *format, ...)
293 __attribute__ ((format(printf, 2, 3)));
296 virtual
void Log(
int level, const
char *format, ...)
297 __attribute__ ((format(printf, 3, 4)));
300 virtual
void Log(const
char *format, ...)
301 __attribute__ ((format(printf, 2, 3)));
305 void (*signalHandler_)(
int);
326 void Usage_(FILE *stream);
329 void Cleanup_(
char *s);
332 void CardReset_(
char *line);
335 int ProcessList_(FILE *fd, const
char *fileName, const
char *item=NULL);
338 int DeleteList_(FILE *fd, const
char *fileName);
341 char *Where_(
char *buf, const
char *key);
344 int GetKey_(
char *buf, const
char *key,
int *value);
347 int GetKey_(
char *buf, const
char *key,
double *value);
350 int GetKey_(
char *buf, const
char *key,
char *value);
353 int SetKey_(
char *buf, const
char *fitsLine);
356 char *RdFitsLine_(FILE *fd);
359 int UpdateFitsLine_(FILE *fd,
ngcb_off_t pos, const
char *line);
362 int verificationRun_;
383 void Notify_(
double size);
386 void FileEventStart_(const
char *fileName);
389 void FileEvent_(const
char *
id, const
char *fileName);
413 int ServerMode_(
int execHandle);
416 int CheckFd_(
int fd);
428 void ScaleReal32_(
float *buf,
int scale,
size_t size);
431 void ScaleInt32_(
int *buf,
int scale,
size_t size);
434 void ScaleInt16_(
short *buf,
int scale,
size_t size);
437 void ScaleUInt16_(
unsigned short *buf,
int scale,
size_t size);
440 void Scale_(
char *buf,
size_t size,
int bitPix,
int divisor);
446 int Copy_(FILE *fdOut, const
char *host, const
char *fileName,
void AttachDisplay()
Attach status display.
Definition ngcdcsMERGE_PUBLIC.cpp:3324
unsigned int chunkSize
Chunk size (bytes)
Definition ngcdcsMERGE.hpp:143
void Completed(int stat, const char *msg=NULL)
Completion event.
Definition ngcdcsMERGE_PUBLIC.cpp:3228
int DeleteList(const char *fileName)
Delete list file and the data sources specified therein.
Definition ngcdcsMERGE_PUBLIC.cpp:903
virtual void Notify(double size)
Transfer-progress notification call-back.
Definition ngcdcsMERGE_PUBLIC.cpp:3718
ngcdcsMERGE()
Constructor.
Definition ngcdcsMERGE_PUBLIC.cpp:29
int Check(const char *name)
Check item to be processed.
Definition ngcdcsMERGE_PUBLIC.cpp:2990
char listItem[512]
Requested list item name.
Definition ngcdcsMERGE.hpp:155
int largeFile
Flag to enable/disable large file extension.
Definition ngcdcsMERGE.hpp:149
int ProcessFits(const char *source, const char *target=NULL)
Process FITS-extension file.
Definition ngcdcsMERGE_PUBLIC.cpp:1523
int Aborted()
Return aborted-flag.
Definition ngcdcsMERGE.hpp:239
int ProcessList(FILE *fd, const char *item=NULL)
Process open list file.
Definition ngcdcsMERGE_PUBLIC.cpp:89
int Run(int argc, char **argv)
A data file merger main function.
Definition ngcdcsMERGE_PUBLIC.cpp:3389
int Process(const char *name, int process=1)
Process item (list file, header file or FITS-extension file)
Definition ngcdcsMERGE_PUBLIC.cpp:2560
int verify
Flag to initiate a verification run before processing.
Definition ngcdcsMERGE.hpp:137
virtual FILE * Usage()
Print-Usage call-back returning an apropriate error stream.
Definition ngcdcsMERGE_PUBLIC.cpp:3749
int parStream
Parallel streaming.
Definition ngcdcsMERGE.hpp:146
void Status(int stat)
Status update event.
Definition ngcdcsMERGE_PUBLIC.cpp:3199
virtual void Verbose(int level, const char *format,...) __attribute__((format(printf
Definition ngcdcsMERGE_PUBLIC.cpp:3783
void ExitSignal(int sig)
Exit signal handler.
Definition ngcdcsMERGE_PUBLIC.cpp:3703
virtual void StatusCB(int stat)
Status update event call-back.
Definition ngcdcsMERGE_PUBLIC.cpp:3728
int NotificationStream(FILE *stream, int level=1)
Attach stream to notification list.
Definition ngcdcsMERGE_PUBLIC.cpp:3118
int cleanup
Flag to just perform a cleanup (delete the source files)
Definition ngcdcsMERGE.hpp:134
virtual int Args(int argc, char **argv)
Command line argument parser call-back.
Definition ngcdcsMERGE_PUBLIC.cpp:3743
int VerifyList(const char *fileName)
Verify list file to be processed.
Definition ngcdcsMERGE_PUBLIC.cpp:2995
void Id(int val)
Set merger id.
Definition ngcdcsMERGE.hpp:179
virtual void NotifySizeCB(double size)
Call-back to communicate the expected size.
Definition ngcdcsMERGE_PUBLIC.cpp:3723
double Size()
Return the verification size (bytes)
Definition ngcdcsMERGE.hpp:230
void NotifySize(double size)
Communicate the expected size.
Definition ngcdcsMERGE_PUBLIC.cpp:3140
int logLevel
Logging level.
Definition ngcdcsMERGE.hpp:161
virtual int CheckPoint()
Check-point call-back for abort.
Definition ngcdcsMERGE_PUBLIC.cpp:3738
virtual ~ngcdcsMERGE()
Destructor.
Definition ngcdcsMERGE_PUBLIC.cpp:49
int invalidate
Flag to invalidate the source after successful merging.
Definition ngcdcsMERGE.hpp:140
int Id()
Return merger id.
Definition ngcdcsMERGE.hpp:182
int VerifyHdr(const char *fileName)
Verify FITS-header file to be processed.
Definition ngcdcsMERGE_PUBLIC.cpp:3036
void Initialized(int flag)
Set initialization flag.
Definition ngcdcsMERGE.hpp:258
virtual void virtual void virtual void Log(int level, const char *format,...) __attribute__((format(printf
Log message if logging level exceeds level.
Definition ngcdcsMERGE_PUBLIC.cpp:3829
int verboseLevel
Verbose level.
Definition ngcdcsMERGE.hpp:158
int Initialized()
Return intitialization flag.
Definition ngcdcsMERGE.hpp:173
virtual int InitCB()
Initialization call-back.
Definition ngcdcsMERGE_PUBLIC.cpp:3756
const char * Stat2Str(int stat)
Convert status to string.
Definition ngcdcsMERGE_PUBLIC.cpp:3285
virtual void CompletedCB(int stat, const char *msg=NULL)
Completion event call-back.
Definition ngcdcsMERGE_PUBLIC.cpp:3733
int BigEndian()
Endianess.
Definition ngcdcsMERGE_PUBLIC.cpp:3772
virtual void FileEvent(const char *id, const char *fileName)
File event call-back.
Definition ngcdcsMERGE_PUBLIC.cpp:3713
void WaitForDisplay()
Wait for status display termination.
Definition ngcdcsMERGE_PUBLIC.cpp:3377
int ProcessHdr(const char *fileName)
Process header file.
Definition ngcdcsMERGE_PUBLIC.cpp:1137
char * ErrMsg()
Error message.
Definition ngcdcsMERGE.hpp:185
int VerifyFits(const char *source, const char *target=NULL)
Verify FITS-extension file to be processed.
Definition ngcdcsMERGE_PUBLIC.cpp:3077
char targetName[512]
Requested targetName.
Definition ngcdcsMERGE.hpp:152
int DeleteFits(const char *source)
Delete FITS source file and the data sources specified therein.
Definition ngcdcsMERGE_PUBLIC.cpp:2205
Definition ngcdcsMRGSHM.hpp:124
off_t ngcb_off_t
Definition ngcb.h:46
#define ngcbFITS_LINE_LEN
Definition ngcb.h:176
#define ngcbFITS_BLOCK_LEN
Definition ngcb.h:191
#define ngcdcsMERGE_CHUNK
Definition ngcdcsMERGE.hpp:27
Definition ngcbSocket.h:50
Definition ngcdcsMERGE.hpp:41
int naxis3
Cube size.
Definition ngcdcsMERGE.hpp:55
int divisor
Pixel divisor.
Definition ngcdcsMERGE.hpp:58
int naxis1
Dimension in x-direction.
Definition ngcdcsMERGE.hpp:49
int naxis2
Dimension in y-direction.
Definition ngcdcsMERGE.hpp:52
int bitPix
BITPIX value.
Definition ngcdcsMERGE.hpp:46
unsigned int chunkSize
Chunk size (bytes)
Definition ngcdcsMERGE.hpp:73
size_t FrameSize()
Return frame size in bytes.
Definition ngcdcsMERGE.hpp:104
ngcdcs_merge_t()
Constructor.
Definition ngcdcsMERGE.hpp:82
char fname[84]
Frame name.
Definition ngcdcsMERGE.hpp:70
double bzero
BZERO value.
Definition ngcdcsMERGE.hpp:61
size_t hdrSize
Header size.
Definition ngcdcsMERGE.hpp:43
int cube2Ext
Move cube to FITS extension.
Definition ngcdcsMERGE.hpp:76
char expId[64]
Exposure id.
Definition ngcdcsMERGE.hpp:67
int single
Store to single files.
Definition ngcdcsMERGE.hpp:79
void Clear()
Clear structure.
Definition ngcdcsMERGE.hpp:88
int ftype
Frame type.
Definition ngcdcsMERGE.hpp:64
Definition ngcdcsMERGE.hpp:112
ngcdcs_ns_t()
Constructor.
Definition ngcdcsMERGE.hpp:120
int level
Level.
Definition ngcdcsMERGE.hpp:117
FILE * stream
Stream.
Definition ngcdcsMERGE.hpp:114