#pragma implementation #include #include #include #include #include #include "reports.h" struct _F_report_private{ FILE *fout; }; void _F_report::head() { } void _F_report::foot() { } void _F_report::printf (const char *ctl, ...) { va_list list; va_start (list,ctl); vfprintf (priv->fout,ctl,list); va_end (list); } void _F_report::htmlout (const char *s) { fputs (s,priv->fout); } int report (_F_report &c) { int ret = -1; _F_report_private priv; c.priv = &priv; priv.fout = NULL; { char filename[PATH_MAX]; strcpy (filename,"/tmp/tlmpreports-XXXXXX"); int fd = mkstemp (filename); if (fd != -1){ priv.fout = fdopen (fd,"w"); c.init(); c.head(); c.data(); c.foot(); fclose (priv.fout); }else{ tlmp_error (MSG_U(E_NOTMPFILE,"Can't open temp file (%s)\n") ,strerror(errno)); } } return ret; }