ic35link/src/dataio.h

78 lines
2.3 KiB
C

/************************************************************************
* Copyright (C) 2000 Thomas Schulz *
* *
* $Id: dataio.h,v 1.12 2000/12/26 01:25:22 tsch Rel $ *
* *
* header for IC35 data import/export *
* *
************************************************************************/
#ifndef _DATAIO_H
#define _DATAIO_H 1
#include <stdio.h> /* FILE */
#include <sys/types.h> /* size_t */
#include "vcc.h" /* VObject, .. */
#include "ic35frec.h" /* IC35REC */
#include "util.h" /* uchar, .. */
/* PIM file format ids */
#define PIM_TXT 1 /* plain text */
#define PIM_BIN 2 /* raw binary data */
#define PIM_VCA 3 /* vCard,vCalendar,Memo */
/* PIM record status */
#define PIM_CLEAN 0
#define PIM_DIRTY 1
#define PIM_DEL 3
struct pim_oper { /* table of record format specific functions */
int (*open)( char *, char *, char *, char * );
void (*close)( void );
void (*rewind)( void );
void * (*getrec)( int );
void * (*getrec_byID)( ulong );
int (*cmpic35rec)( IC35REC *, void * ); /* IC35 == PIM */
IC35REC * (*updic35rec)( IC35REC *, void * ); /* IC35 <- PIM */
void * (*putic35rec)( IC35REC * ); /* IC35 -> PIM */
void (*delrec)( void * );
ulong (*recid)( void * );
void (*set_recid)( void *, ulong );
int (*recstat)( void * );
void (*set_recstat)( void *, int );
};
FILE * backup_and_openwr( char * fname );
int set_pim_format( char * format );
int pim_format( void );
void clr_newic35dt( void );
void get_newic35dt( char * dtbuf );
time_t newic35dt( void );
void set_oldic35dt( char * dtime );
time_t oldic35dt( void );
int pim_open( char * addrfname, char * vcalfname, char * memofname );
int pim_openinp( char * format, char * fname );
int pim_openout( char * format, char * fname );
void pim_close( void );
void pim_rewind( void );
void * pim_getrec( int fileid );
void * pim_getrec_byID( ulong recid );
void * pim_putic35rec( IC35REC * ic35rec );
IC35REC * pim_updic35rec( IC35REC * ic35rec, void * pimrec );
int pim_cmpic35rec( IC35REC * ic35rec, void * pimrec );
void pim_putrec( void * pimrec );
void pim_delrec( void * pimrec );
ulong pim_recid( void * pimrec );
void pim_set_recid( void * pimrec, ulong recid );
int pim_recstat( void * pimrec );
void pim_set_recstat( void * pimrec, int stat );
#endif /*_DATAIO_H*/