ngc 1.5.0
 
Loading...
Searching...
No Matches
ngcb.h
Go to the documentation of this file.
1
8#ifndef ngcb_h
9#define ngcb_h
10
11
12
13
14#include <stdio.h>
15#include <stdlib.h>
16#include <stdint.h>
17#include <signal.h>
18#include <string.h>
19#include <sys/time.h>
20#include <unistd.h>
21#include <fcntl.h>
22#include <byteswap.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#ifndef USE
29#define USE(x) do {(void)(x);} while (0)
30#endif
31
32#ifdef _LARGEFILE64_SOURCE
33typedef off64_t ngcb_off_t;
34typedef struct stat64 ngcb_stat_t;
35typedef struct statvfs64 ngcb_statvfs_t;
36#define ngcb_open(p,m) open64(p,m)
37#define ngcb_lseek(f,o,w) lseek64(f,o,w)
38#define ngcb_ftruncate(f,l) ftruncate64(f,l)
39#define ngcb_fopen(p,m) fopen64(p,m)
40#define ngcb_ftello(s) ftello64(s)
41#define ngcb_fseeko(s,o,w) fseeko64(s,o,w)
42#define ngcb_stat(p,s) stat64(p,s)
43#define ngcb_statvfs(p,s) statvfs64(p,s)
44#define ngcb_mmap(s,l,p,fl,fd,o) mmap64(s,l,p,fl,fd,o)
45#else
46typedef off_t ngcb_off_t;
47typedef struct stat ngcb_stat_t;
48typedef struct statvfs ngcb_statvfs_t;
49#define ngcb_open(p,m) open(p,m)
50#define ngcb_lseek(f,o,w) lseek(f,o,w)
51#define ngcb_fopen(p,m) fopen(p,m)
52#define ngcb_ftello(s) ftello(s)
53#define ngcb_fseeko(s,o,w) fseeko(s,o,w)
54#define ngcb_ftruncate(s,o) ftruncate(s,o)
55#define ngcb_stat(p,s) stat(p,s)
56#define ngcb_statvfs(p,s) statvfs(p,s)
57#define ngcb_mmap(s,l,p,fl,fd,o) mmap(s,l,p,fl,fd,o)
58#endif
59
63typedef union
64{
65 int val;
66 struct semid_ds *buf;
67 unsigned short *array;
69
73#ifndef str2str
74#define str2str(s1, s2, n) ngcbStr2Str(s1, s2, n)
75#endif
76
80#define _vecsize(x) (sizeof(x)/sizeof(x[0]))
81
85typedef int (*ngcb_sig_t)(int how, const sigset_t *set, sigset_t *oset);
86
90typedef int (*ngcb_fct)(void);
91
95typedef void (*ngcb_void_fct)(void);
96
100extern int ngcbVerboseFlag;
101
102/*
103 * Conversion macros to log code position
104 */
105#define _ngcb_cv(a) #a
106#define _ngcb_tostr(a) _ngcb_cv(a)
107
111#define NGCB_CODE_POS __FILE__ ":" _ngcb_tostr(__LINE__)
112
113
114#ifndef NO_VERBOSE
115
119#define ngcbLog(...) do {if (ngcbVerboseFlag) fprintf(stdout, __VA_ARGS__);} while (0)
120
121#else
122
126#define ngcbLog(...) do {} while (0)
127
128#endif
129
133#define ngcbFmt(...) (snprintf(__VA_ARGS__) < 0 ? abort() : (void)0)
134
135/*
136 * Return codes
137 */
138#define ngcbSUCCESS 0
139#define ngcbABORTED 1
140#define ngcbFAILURE -1
141#define ngcbWARNING -2
142#define ngcbSKIP -3
143#define ngcbERR_SEVERE -4
144#define ngcbERR_ACCESS -5
145#define ngcbDISCONNECT -6
146
147/*
148 * String types
149 */
150typedef char ngcb_str32_t[32];
151typedef char ngcb_str64_t[64];
152typedef char ngcb_str128_t[128];
153typedef char ngcb_str256_t[256];
154typedef char ngcb_str512_t[512];
155
156/*
157 * Keyword parser
158 */
159#define ngcbMAX_KEY_LEN 256
160#define ngcbMAX_KEYELE_LEN 512
161
162/*
163 * FITS keyword types
164 */
165#define ngcbFITS_TYPE_INT 1
166#define ngcbFITS_TYPE_FLOAT 2
167#define ngcbFITS_TYPE_DOUBLE 3
168#define ngcbFITS_TYPE_STRING 4
169#define ngcbFITS_TYPE_LOGICAL 5
170#define ngcbFITS_TYPE_FREE 6
171#define ngcbFITS_TYPE_COMMENT 7
172
176#define ngcbFITS_LINE_LEN 80
177
181#define ngcbFITS_KEY_SIZE 48
182
186#define ngcbFITS_BLOCK_LINES 36
187
191#define ngcbFITS_BLOCK_LEN (ngcbFITS_LINE_LEN * ngcbFITS_BLOCK_LINES)
192
193/*
194 * Timer functions
195 */
196
200typedef struct {
201 long tv_sec;
202 long tv_usec;
204
208typedef struct {
209 long tv_sec;
210 long tv_nsec;
212
216int ngcbTaiOffset();
217
221int ngcbGetTime(struct timeval *t);
222
227void ngcbSubTime(struct timeval t1, struct timeval t2, struct timeval *t3);
228
233void ngcbAddTime(struct timeval t1, struct timeval t2, struct timeval *t3);
234
239void ngcbAddTimeFrac(uint64_t *sec, uint64_t *nsec, double t);
240
246void ngcbTimeFrac2Str(char *value, uint64_t sec, uint64_t nsec);
247
252void ngcbAddSec(struct timeval *t, double seconds);
253
258int ngcbGetUTC(char *utc, int precision);
259
263double ngcbGetMJD(void);
264
270void ngcbTime2UTC(struct timeval t, char *utc, int precision);
271
275double ngcbTime2MJD(struct timeval t);
276
282void ngcbMJD2UTC(double mjd, char *utc, int precision);
283
288double ngcbUTC2MJD(const char *utc);
289
296int ngcbMicroSleep(int fd, int waitTime);
297
304int ngcbSleep(int fd, int waitTime);
305
309#define ngcbDiffTime(t1,t2) ((double)(t2.tv_sec - t1.tv_sec) + \
310 ((double)(t2.tv_usec - t1.tv_usec)/1.0e6))
311
315#define ngcbDiffTimeHR(t1,t2) ((double)(t2.tv_sec - t1.tv_sec) + \
316 ((double)(t2.tv_nsec - t1.tv_nsec)/1.0e9))
317
318
323FILE *ngcbDebugOpen(char *erms);
324
328void ngcbDebugClose(FILE *debugStream);
329
333void ngcbPrint(FILE *fd, void *buffer, size_t size, int bitPix, size_t max);
334
335/*
336 * Process monitoring
337 */
338
344FILE *ngcbWatchdogOpen(int verbose, char *erms);
345
350void ngcbWatchdogClose(FILE *wd);
351
357void ngcbWatchdogAddProc(FILE *wd, const char *host, int pid);
358
363void ngcbWatchdogRemoveProc(FILE *wd, const char *host, int pid);
364
368void ngcbWatchdogClearProc(FILE *wd, const char *host);
369
374void ngcbWatchdogAddCmd(FILE *wd, const char *host, const char *cmd);
375
379void ngcbWatchdogRemoveCmd(FILE *wd, const char *host, const char *cmd);
380
385void ngcbWatchdogClearCmd(FILE *wd, const char *host);
386
392void ngcbWatchdogDbWrite(FILE *wd, const char *host, const char *attr,
393 const char *value);
394
395
396/*
397 * Byte swap and type casting
398 */
399
400/*
401 * Architecture (endianess)
402 */
403#define ngcbLITTLE_ENDIAN 0
404#define ngcbBIG_ENDIAN 1
405#define ngcbMEMCPY 0
406#define ngcbNETCPY 1
407#define ngcbSCPY 2
408
413int ngcbEndian(void);
414
420void ngcbSwap2(void *buffer, size_t length);
421
427void ngcbSwap4(void *buffer, size_t length);
428
434void ngcbSwap8(void *buffer, size_t length);
435
439void ngcbInt2Bin(char *str, int in);
440
444void ngcbUInt2Bin(char *str, unsigned int in);
445
450int ngcbBin2Int(const char *str);
451
456unsigned int ngcbBin2UInt(const char *str);
457
458/*
459 * Math functions
460 */
461
465typedef struct {
466 double *v;
467 double m;
468 int size;
469 int idx;
470 int n;
471} ngcb_ma_t;
472
476void ngcbFilterInit(ngcb_ma_t *f, int size);
477
482
487
491double ngcbFilter(ngcb_ma_t *f, double value);
492
496typedef struct {
497 int *v;
498 int m;
499 int size;
500 int *idx;
501 int n;
502} ngcb_rm_t;
503
507void ngcbMedianInit(ngcb_rm_t *f, int size);
508
513
518
522int ngcbRunningMedian(ngcb_rm_t *f, int value);
523
527int ngcbRound(double x);
528
532int ngcbRoundL(long double x);
533
537int64_t ngcbRound64(double x);
538
542int64_t ngcbRound64L(long double x);
543
547double ngcbMean16(unsigned short *a, int n);
548
552double ngcbMean32(int *a, int n);
553
557double ngcbMeanR32(float *a, int n);
558
562double ngcbMeanR64(double *a, int n);
563
567unsigned short ngcbMedian16(unsigned short *a, int n);
568
572int ngcbMedian32(int *a, int n);
573
577float ngcbMedianR32(float *a, int n);
578
579/*
580 * Remote execution
581 */
582
586int ngcbExecDaemon(int bg);
587
591void ngcbExecShell(const char *shell);
592
599int ngcbExecInit(const char *host, int *version, char *erms);
600
605int ngcbExecVersion(const char *host, char *erms);
606
611int ngcbExecutor(int argc, char **argv);
612
623int ngcbExec(const char *host, int *pid, const char *cmd, char *reply,
624 char *erms);
625
629int ngcbExecDbg(const char *host, int *pid, const char *cmd, char *reply,
630 int port, char *erms);
634int ngcbExecXt(const char *host, int *pid, const char *cmd, char *reply,
635 const char *geom, char *erms);
636
641int ngcbKill(const char *host, int pid, char *erms);
642
647void ngcbExecReply(int fd, int success, const char *reply);
648
653int ngcbRemoteFileOpen(const char *host, const char *fileName,
654 size_t *size, char *erms);
655
660void ngcbRemoteFileClose(int fd);
661
665int ngcbRemoteFileDelete(const char *host, const char *fileName, char *erms);
666
667
668/*
669 * File access
670 */
671
676int ngcbLoadFile(const char *fileName, char *buffer, size_t *size, char *erms);
677
682int ngcbWriteFile(const char *fileName, const char *buffer, size_t size,
683 char *erms);
684
693int ngcbMapFile(const char *fileName, char **buffer, size_t *size,
694 char * erms);
695
702void ngcbUnmapFile(int fd, char *buffer, size_t size);
703
709long int ngcbFileSize(const char *fileName, char *erms);
710
714ssize_t ngcbRead(int fd, void *buffer, size_t size, char *erms);
715
719ssize_t ngcbWrite(int fd, const void *buffer, size_t size, char *erms);
720
725const char *ngcbGetFileExt(const char *fileName);
726
731const char *ngcbProcName(const char *path);
732
737void ngcbParentDir(char *path, const char *fileName);
738
746int ngcbMkDir(const char *path, mode_t mode, char *erms);
747
751int ngcbFileExists(const char *path);
752
756int ngcbIsDir(const char *path);
757
761int ngcbReadPerm(const char *path);
762
766int ngcbWritePerm(const char *path);
767
772void ngcbExpand(char *path);
773
778int ngcbPathCmp(const char *path1, const char *path2);
779
783double ngcbDiskSpace(const char *path, char *erms);
784
789void ngcbCleanPath(char *name);
790
795int ngcbSkipFd(FILE *stream);
796
804int ngcbWin2File(FILE *fd, const char *buffer, size_t fx, size_t fy,
805 int bitPix, size_t sx, size_t sy, size_t nx, size_t ny,
806 int rot, char *erms);
807
812void *ngcbFileBufAlloc(size_t size, char *erms);
813
817void ngcbFileBufFree(void *buffer);
818
822int ngcbFdCnt(void);
823
829int ngcbFindIndex(const char *path, int minIndex, char *erms);
830
831
832
833/*
834 * String functions
835 */
836
840void ngcbToLower(char *s);
841
845void ngcbToUpper(char *s);
846
850void ngcbCleanSpace(char *s);
851
855void ngcbTrimSpace(char *s);
856
860void ngcbStr2Arg(char *s, int *argc, char **argv);
861
865void ngcbStrPut(char *s1, const char *s2);
866
870int ngcbReplaceEnv(char *string, char *erms);
871
876int ngcbIsFloat(const char *s);
877
881int ngcbStr2Int(const char *s, int *value);
882
886char *ngcbStr2Str(char *s1, const char *s2, size_t n);
887
891int ngcbStr2UInt(const char *s, unsigned int *value);
892
896int ngcbHex2Int(const char *s, int *value);
897
901int ngcbHex2UInt(const char *s, unsigned int *value);
902
907int ngcbFmt2Int(const char *s, int *value);
908
913int ngcbFmt2UInt(const char *s, unsigned int *value);
914
918int ngcbStr2Int16(const char *s, short *value);
919
923int ngcbStr2UInt16(const char *s, unsigned short *value);
924
928int ngcbHex2Int16(const char *s, short *value);
929
933int ngcbHex2UInt16(const char *s, unsigned short *value);
934
938int ngcbStr2Float(const char *s, float *value);
939
943int ngcbStr2Double(const char *s, double *value);
944
948int ngcbF2S(const char *s, const char *filter, char *v);
949
953int ngcbF2Int(const char *s, const char *filter);
954
958unsigned int ngcbF2UInt(const char *s, const char *filter);
959
963int ngcbF2Double(const char *s, const char *filter, double *v);
964
968int ngcbStr2Frac(const char *value, unsigned int n, uint64_t *v1,
969 uint64_t *v2);
970
971/*
972 * RPC conversion functions
973 */
974
978void ngcbRpcCopy(void *dest, const void *src, size_t size, size_t items,
979 int how);
980
984int ngcbStr2PayloadItem(const char *arg, unsigned char *payload,
985 unsigned int max, int how, char *erms);
986
990int ngcbStr2Payload(const char *cmd, unsigned char *payload, unsigned int max,
991 int how, char *erms);
992
997int ngcbStr2Rpc(const char *cmd, int *delay, int *target, int *req,
998 unsigned int *size, char *erms);
999
1000/*
1001 * Disk-memory extension
1002 */
1003
1018int ngcbDiskMemCreate(const char *path, int idx, unsigned int size,
1019 unsigned int chunk, char *erms);
1020
1027void ngcbDiskMemDelete(const char *path, int idx, unsigned int offset);
1028
1029
1030/*
1031 * FITS tools
1032 */
1033
1037typedef struct {
1038 int fd;
1039 unsigned int offset;
1044 double bscale;
1045 double bzero;
1046} ngcb_cube_t;
1047
1055char *ngcbFitsStrip(char *buffer, size_t *size, int *bitPix, char *erms);
1056
1060int ngcbCube2Ext(const char *fileName, const char *extName, int numBlocks,
1061 char *erms);
1062
1066int ngcbSplitCube(const char *source, const char *target, int numBlocks,
1067 char *erms);
1068
1072int ngcbCubeOpen(const char *fileName, ngcb_cube_t *cube, char *erms);
1073
1077int ngcbCubeRead(ngcb_cube_t cube, void *buffer, int slice, char *erms);
1078
1082int ngcbCubeRead32(ngcb_cube_t cube, float *buffer, int slice, char *erms);
1083
1087void ngcbCubeClose(ngcb_cube_t cube);
1088
1089
1096int ngcbKeyGetNext(char *fileBuffer, int fileLen, int *pos, int *line,
1097 const char *mask, char *key, char *keyVal, char *erms);
1098
1104int ngcbKeySplit(char *key, int *nsplit, char **ksplit, int *val,
1105 char *erms);
1106
1112int ngcbKeyIdx(char *key, int *nsplit, int *kval, char *erms);
1113
1118int ngcbKeyMaskIdx(char *key, const char *mask);
1119
1125int ngcbKeyGetVecInt(const char *keyVal, int *vec, char *erms);
1126
1132int ngcbKeyGetVecFloat(const char *keyVal, float *vec, char *erms);
1133
1139int ngcbKeyGetVecDouble(const char *keyVal, double *vec, char *erms);
1140
1144void ngcbDiscardDetIdx(char *key);
1145
1146#ifdef __cplusplus
1147}
1148#endif
1149
1150#endif
void ngcbCleanPath(char *name)
Definition ngcbFile.c:597
int ngcbKeyGetVecInt(const char *keyVal, int *vec, char *erms)
Definition ngcbKey.c:437
int ngcbFmt2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:259
void ngcbAddTime(struct timeval t1, struct timeval t2, struct timeval *t3)
Definition ngcbTime.c:67
char * ngcbFitsStrip(char *buffer, size_t *size, int *bitPix, char *erms)
Definition ngcbFitsTools.c:167
char ngcb_str512_t[512]
Definition ngcb.h:154
float ngcbMedianR32(float *a, int n)
Definition ngcbMath.c:314
int ngcbSkipFd(FILE *stream)
Definition ngcbFile.c:637
int ngcbF2S(const char *s, const char *filter, char *v)
Definition ngcbString.c:356
int ngcbGetUTC(char *utc, int precision)
Definition ngcbTime.c:102
void ngcbMJD2UTC(double mjd, char *utc, int precision)
Definition ngcbTime.c:206
char ngcb_str256_t[256]
Definition ngcb.h:153
double ngcbMeanR32(float *a, int n)
Definition ngcbMath.c:158
int ngcbCubeRead32(ngcb_cube_t cube, float *buffer, int slice, char *erms)
Definition ngcbFitsTools.c:2158
int ngcbHex2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:224
void ngcbWatchdogAddCmd(FILE *wd, const char *host, const char *cmd)
Definition ngcbMon.c:164
void ngcbAddTimeFrac(uint64_t *sec, uint64_t *nsec, double t)
Definition ngcbTime.c:361
unsigned short ngcbMedian16(unsigned short *a, int n)
Definition ngcbMath.c:176
int ngcbExecXt(const char *host, int *pid, const char *cmd, char *reply, const char *geom, char *erms)
Definition ngcbExec.c:1329
int ngcbStr2Payload(const char *cmd, unsigned char *payload, unsigned int max, int how, char *erms)
Definition ngcbRpc.c:337
int ngcbStr2Frac(const char *value, unsigned int n, uint64_t *v1, uint64_t *v2)
Definition ngcbString.c:571
void * ngcbFileBufAlloc(size_t size, char *erms)
Definition ngcbFile.c:863
void ngcbSubTime(struct timeval t1, struct timeval t2, struct timeval *t3)
Definition ngcbTime.c:46
int ngcbRemoteFileDelete(const char *host, const char *fileName, char *erms)
Definition ngcbExec.c:1611
void ngcbPrint(FILE *fd, void *buffer, size_t size, int bitPix, size_t max)
Definition ngcbDebug.c:111
int ngcbRound(double x)
Definition ngcbMath.c:118
int ngcbExec(const char *host, int *pid, const char *cmd, char *reply, char *erms)
Definition ngcbExec.c:1317
off_t ngcb_off_t
Definition ngcb.h:46
int ngcbPathCmp(const char *path1, const char *path2)
Definition ngcbFile.c:546
struct statvfs ngcb_statvfs_t
Definition ngcb.h:48
char ngcb_str64_t[64]
Definition ngcb.h:151
ssize_t ngcbRead(int fd, void *buffer, size_t size, char *erms)
Definition ngcbFile.c:226
void ngcbWatchdogRemoveCmd(FILE *wd, const char *host, const char *cmd)
Definition ngcbMon.c:179
int ngcbRemoteFileOpen(const char *host, const char *fileName, size_t *size, char *erms)
Definition ngcbExec.c:1487
void ngcbTimeFrac2Str(char *value, uint64_t sec, uint64_t nsec)
Definition ngcbTime.c:377
int ngcbSleep(int fd, int waitTime)
Definition ngcbTime.c:327
int ngcbRunningMedian(ngcb_rm_t *f, int value)
Definition ngcbMath.c:497
int ngcbWritePerm(const char *path)
Definition ngcbFile.c:448
double ngcbDiskSpace(const char *path, char *erms)
Definition ngcbFile.c:580
int ngcbExecInit(const char *host, int *version, char *erms)
Definition ngcbExec.c:672
void ngcbSwap8(void *buffer, size_t length)
Definition ngcbMath.c:49
int ngcbMkDir(const char *path, mode_t mode, char *erms)
Definition ngcbFile.c:365
FILE * ngcbDebugOpen(char *erms)
Definition ngcbDebug.c:29
void ngcbDiskMemDelete(const char *path, int idx, unsigned int offset)
Definition ngcbDiskMem.c:159
int ngcbWriteFile(const char *fileName, const char *buffer, size_t size, char *erms)
Definition ngcbFile.c:97
void ngcbDebugClose(FILE *debugStream)
Definition ngcbDebug.c:100
struct stat ngcb_stat_t
Definition ngcb.h:47
void ngcbFilterInit(ngcb_ma_t *f, int size)
Definition ngcbMath.c:385
int(* ngcb_sig_t)(int how, const sigset_t *set, sigset_t *oset)
Definition ngcb.h:85
int ngcbMicroSleep(int fd, int waitTime)
Definition ngcbTime.c:291
int ngcbF2Int(const char *s, const char *filter)
Definition ngcbString.c:413
void ngcbUnmapFile(int fd, char *buffer, size_t size)
Definition ngcbFile.c:210
int ngcbRoundL(long double x)
Definition ngcbMath.c:124
int ngcbKeyGetVecFloat(const char *keyVal, float *vec, char *erms)
Definition ngcbKey.c:469
void ngcbExpand(char *path)
Definition ngcbFile.c:526
int ngcbHex2Int(const char *s, int *value)
Definition ngcbString.c:210
void ngcbCleanSpace(char *s)
Definition ngcbString.c:48
const char * ngcbGetFileExt(const char *fileName)
Definition ngcbFile.c:316
char ngcb_str32_t[32]
Definition ngcb.h:150
int ngcbExecVersion(const char *host, char *erms)
Definition ngcbExec.c:1113
void ngcbWatchdogClearCmd(FILE *wd, const char *host)
Definition ngcbMon.c:194
int ngcbFdCnt(void)
Definition ngcbFile.c:941
void(* ngcb_void_fct)(void)
Definition ngcb.h:95
double ngcbUTC2MJD(const char *utc)
Definition ngcbTime.c:216
int(* ngcb_fct)(void)
Definition ngcb.h:90
char * ngcbStr2Str(char *s1, const char *s2, size_t n)
Definition ngcbString.c:177
int ngcbF2Double(const char *s, const char *filter, double *v)
Definition ngcbString.c:527
void ngcbStr2Arg(char *s, int *argc, char **argv)
Definition ngcbString.c:157
void ngcbWatchdogClearProc(FILE *wd, const char *host)
Definition ngcbMon.c:149
void ngcbFilterDelete(ngcb_ma_t *f)
Definition ngcbMath.c:402
void ngcbMedianDelete(ngcb_rm_t *f)
Definition ngcbMath.c:474
int ngcbKeyGetNext(char *fileBuffer, int fileLen, int *pos, int *line, const char *mask, char *key, char *keyVal, char *erms)
Definition ngcbKey.c:38
void ngcbSwap4(void *buffer, size_t length)
Definition ngcbMath.c:38
int ngcbFindIndex(const char *path, int minIndex, char *erms)
Definition ngcbFile.c:657
char ngcb_str128_t[128]
Definition ngcb.h:152
int ngcbReadPerm(const char *path)
Definition ngcbFile.c:487
void ngcbInt2Bin(char *str, int in)
Definition ngcbMath.c:92
void ngcbMedianInit(ngcb_rm_t *f, int size)
Definition ngcbMath.c:444
int ngcbExecutor(int argc, char **argv)
Definition ngcbExec.c:1083
void ngcbStrPut(char *s1, const char *s2)
Definition ngcbString.c:88
int64_t ngcbRound64(double x)
Definition ngcbMath.c:130
int ngcbIsFloat(const char *s)
Definition ngcbString.c:147
void ngcbToUpper(char *s)
Definition ngcbString.c:38
int ngcbFileExists(const char *path)
Definition ngcbFile.c:420
void ngcbWatchdogClose(FILE *wd)
Definition ngcbMon.c:106
int ngcbCubeOpen(const char *fileName, ngcb_cube_t *cube, char *erms)
Definition ngcbFitsTools.c:1795
void ngcbAddSec(struct timeval *t, double seconds)
Definition ngcbTime.c:80
void ngcbTrimSpace(char *s)
Definition ngcbString.c:76
int ngcbHex2UInt16(const char *s, unsigned short *value)
Definition ngcbString.c:320
int ngcbKeyGetVecDouble(const char *keyVal, double *vec, char *erms)
Definition ngcbKey.c:501
int ngcbStr2Int16(const char *s, short *value)
Definition ngcbString.c:282
int ngcbStr2UInt(const char *s, unsigned int *value)
Definition ngcbString.c:198
int ngcbFmt2Int(const char *s, int *value)
Definition ngcbString.c:236
void ngcbTime2UTC(struct timeval t, char *utc, int precision)
Definition ngcbTime.c:157
int ngcbKeyIdx(char *key, int *nsplit, int *kval, char *erms)
Definition ngcbKey.c:376
int ngcbStr2Rpc(const char *cmd, int *delay, int *target, int *req, unsigned int *size, char *erms)
Definition ngcbRpc.c:453
void ngcbExecShell(const char *shell)
Definition ngcbExec.c:666
int ngcbSplitCube(const char *source, const char *target, int numBlocks, char *erms)
Definition ngcbFitsTools.c:263
FILE * ngcbWatchdogOpen(int verbose, char *erms)
Definition ngcbMon.c:31
int ngcbVerboseFlag
Definition ngcbDebug.c:27
double ngcbMean32(int *a, int n)
Definition ngcbMath.c:150
int ngcbHex2Int16(const char *s, short *value)
Definition ngcbString.c:306
int ngcbCube2Ext(const char *fileName, const char *extName, int numBlocks, char *erms)
Definition ngcbFitsTools.c:1283
void ngcbParentDir(char *path, const char *fileName)
Definition ngcbFile.c:335
unsigned int ngcbBin2UInt(const char *str)
Definition ngcbMath.c:76
int ngcbIsDir(const char *path)
Definition ngcbFile.c:434
int ngcbGetTime(struct timeval *t)
Definition ngcbTime.c:41
double ngcbTime2MJD(struct timeval t)
Definition ngcbTime.c:195
void ngcbWatchdogDbWrite(FILE *wd, const char *host, const char *attr, const char *value)
Definition ngcbMon.c:209
int ngcbStr2Float(const char *s, float *value)
Definition ngcbString.c:332
unsigned int ngcbF2UInt(const char *s, const char *filter)
Definition ngcbString.c:475
void ngcbWatchdogRemoveProc(FILE *wd, const char *host, int pid)
Definition ngcbMon.c:134
int ngcbMedian32(int *a, int n)
Definition ngcbMath.c:245
ssize_t ngcbWrite(int fd, const void *buffer, size_t size, char *erms)
Definition ngcbFile.c:271
int ngcbEndian(void)
Definition ngcbMath.c:19
void ngcbToLower(char *s)
Definition ngcbString.c:28
void ngcbCubeClose(ngcb_cube_t cube)
Definition ngcbFitsTools.c:2140
void ngcbRpcCopy(void *dest, const void *src, size_t size, size_t items, int how)
Definition ngcbRpc.c:72
int ngcbKill(const char *host, int pid, char *erms)
Definition ngcbExec.c:1384
long int ngcbFileSize(const char *fileName, char *erms)
Definition ngcbFile.c:137
int ngcbTaiOffset()
Definition ngcbTime.c:26
int64_t ngcbRound64L(long double x)
Definition ngcbMath.c:136
int ngcbStr2UInt16(const char *s, unsigned short *value)
Definition ngcbString.c:294
double ngcbMean16(unsigned short *a, int n)
Definition ngcbMath.c:142
void ngcbSwap2(void *buffer, size_t length)
Definition ngcbMath.c:27
int ngcbBin2Int(const char *str)
Definition ngcbMath.c:60
int ngcbExecDbg(const char *host, int *pid, const char *cmd, char *reply, int port, char *erms)
Definition ngcbExec.c:1323
double ngcbGetMJD(void)
Definition ngcbTime.c:145
int ngcbCubeRead(ngcb_cube_t cube, void *buffer, int slice, char *erms)
Definition ngcbFitsTools.c:2044
void ngcbRemoteFileClose(int fd)
Definition ngcbExec.c:1606
void ngcbMedianReset(ngcb_rm_t *f)
Definition ngcbMath.c:488
int ngcbKeySplit(char *key, int *nsplit, char **ksplit, int *val, char *erms)
Definition ngcbKey.c:301
int ngcbWin2File(FILE *fd, const char *buffer, size_t fx, size_t fy, int bitPix, size_t sx, size_t sy, size_t nx, size_t ny, int rot, char *erms)
Definition ngcbFile.c:735
void ngcbDiscardDetIdx(char *key)
Definition ngcbKey.c:533
int ngcbStr2PayloadItem(const char *arg, unsigned char *payload, unsigned int max, int how, char *erms)
Definition ngcbRpc.c:89
void ngcbFilterReset(ngcb_ma_t *f)
Definition ngcbMath.c:413
int ngcbStr2Int(const char *s, int *value)
Definition ngcbString.c:186
int ngcbDiskMemCreate(const char *path, int idx, unsigned int size, unsigned int chunk, char *erms)
Definition ngcbDiskMem.c:39
int ngcbStr2Double(const char *s, double *value)
Definition ngcbString.c:344
int ngcbLoadFile(const char *fileName, char *buffer, size_t *size, char *erms)
Definition ngcbFile.c:36
int ngcbKeyMaskIdx(char *key, const char *mask)
Definition ngcbKey.c:398
const char * ngcbProcName(const char *path)
Definition ngcbFile.c:350
void ngcbUInt2Bin(char *str, unsigned int in)
Definition ngcbMath.c:105
int ngcbMapFile(const char *fileName, char **buffer, size_t *size, char *erms)
Definition ngcbFile.c:161
int ngcbReplaceEnv(char *string, char *erms)
Definition ngcbString.c:109
double ngcbMeanR64(double *a, int n)
Definition ngcbMath.c:166
void ngcbExecReply(int fd, int success, const char *reply)
Definition ngcbExec.c:626
void ngcbFileBufFree(void *buffer)
Definition ngcbFile.c:926
void ngcbWatchdogAddProc(FILE *wd, const char *host, int pid)
Definition ngcbMon.c:119
int ngcbExecDaemon(int bg)
Definition ngcbExec.c:95
double ngcbFilter(ngcb_ma_t *f, double value)
Definition ngcbMath.c:420
Definition ngcb.h:1037
unsigned int offset
Definition ngcb.h:1039
int naxis2
Definition ngcb.h:1042
double bzero
Definition ngcb.h:1045
double bscale
Definition ngcb.h:1044
int naxis1
Definition ngcb.h:1041
int bitPix
Definition ngcb.h:1040
int naxis3
Definition ngcb.h:1043
int fd
Definition ngcb.h:1038
Definition ngcb.h:465
int size
Definition ngcb.h:468
double * v
Definition ngcb.h:466
double m
Definition ngcb.h:467
int n
Definition ngcb.h:470
int idx
Definition ngcb.h:469
Definition ngcb.h:496
int n
Definition ngcb.h:501
int * idx
Definition ngcb.h:500
int size
Definition ngcb.h:499
int m
Definition ngcb.h:498
int * v
Definition ngcb.h:497
Definition ngcb.h:208
long tv_sec
Definition ngcb.h:209
long tv_nsec
Definition ngcb.h:210
Definition ngcb.h:200
long tv_usec
Definition ngcb.h:202
long tv_sec
Definition ngcb.h:201
Definition ngcb.h:64
struct semid_ds * buf
Definition ngcb.h:66
int val
Definition ngcb.h:65
unsigned short * array
Definition ngcb.h:67