Mac binaries
[jabaws.git] / website / archive / binaries / mac / src / fasta34 / mm_file.h
diff --git a/website/archive/binaries/mac/src/fasta34/mm_file.h b/website/archive/binaries/mac/src/fasta34/mm_file.h
new file mode 100644 (file)
index 0000000..94fa438
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+  copyright (c) 1999 William R. Pearson
+*/
+
+/* $Name: fa_34_26_5 $ - $Id: mm_file.h,v 1.26 2006/10/05 18:20:40 wrp Exp $ */
+
+/*
+  mm_file.h - defines m_file_str for mmap()ed files 
+*/
+
+#include <sys/types.h>
+
+#ifndef USE_FSEEKO
+#define FSEEK fseek
+#define FTELL ftell
+typedef long fseek_t;
+#else
+#define FSEEK fseeko
+#define FTELL ftello
+typedef off_t fseek_t;
+#endif
+#define FSEEK_T_DEF
+
+#ifdef HAS_INTTYPES
+#include <inttypes.h>
+#else
+#ifdef WIN32
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+typedef long int64_t;
+typedef unsigned long uint64_t;
+#endif
+#endif
+#ifdef BIG_LIB64
+typedef int64_t MM_OFF;
+#else
+typedef long MM_OFF;
+#endif
+
+#ifdef MYSQL_DB
+#include <mysql.h>
+#endif
+#ifdef PGSQL_DB
+#include <libpq-fe.h>
+#endif
+
+struct lmf_str {
+  FILE *libf;          /* sequence file being read */
+  FILE *hfile;         /* BLAST2.0 description file */
+  unsigned int *oid_list;      /* oid list for subsets */
+  int oid_seqs;                /* start offset for mask array */
+  int pref_db;         /* preferred database */
+  unsigned int max_oid;        /* start offset for mask array */
+
+  char lb_name[120];   /* file name */
+  int lb_type;         /* library type */
+  int *sascii;         /* ascii -> sq mapping */
+
+  /* used by flat files */
+  char *lline;         /* last line read */
+  unsigned char *cpsave;       /* position in line for lgetlib() */
+  fseek_t lpos;                        /* position in file */
+
+  /* Genbank Flat files */
+  int lfflag;          /* flag for CRLF in EMBL CDROM files */
+
+  /* stuff for GCG format files (5,6) */
+  int gcg_binary;      /* flag for binary gcg format */
+  long gcg_len;                /* length of GCG sequence */
+
+  int bl_lib_pos;        /* for ncbl2 */
+  int bl_format_ver;     /* blast formatdb version */
+  char opt_text[MAX_FN];         /* text after filename */
+
+  /* used when memory mapping */
+  int mm_flg;          /* mmap worked */
+  int mmap_fd;         /* mmap_fd */
+  char *mmap_base;     /* base */
+  char *mmap_addr;     /* current pos */
+  long st_size;                /* file size */
+
+  MM_OFF *d_pos_arr;   /* pointer to desc. offsets */
+  MM_OFF *s_pos_arr;   /* pointer to seq. offsets */
+  MM_OFF *a_pos_arr;   /* pointer to aux offsets */
+
+  /* currently available only for memory mapped files */
+  int max_cnt;         /* # database entries */
+  int64_t tot_len;     /* total residue length */
+  long max_len;                /* maximum sequence lengh */
+  int lib_aa;          /* 0 = DNA, 1 = prot */
+  char *tmp_buf;       /* temporary buffer */
+  int tmp_buf_max;     /* max size */
+
+  /* used for SQL database queries */
+  char *sql_db, *sql_query, *sql_getdesc, *sql_getseq;
+  int sql_reopen;
+  char **sql_uid_arr;  /* indexed by lpos */
+  /* used to get sequence data */
+  char *sql_seqp;
+
+#ifdef MYSQL_DB
+  /* used to open the database */
+  MYSQL *mysql_conn;
+  MYSQL_RES *mysql_res;
+  MYSQL_ROW mysql_row;
+#endif
+
+#ifdef PGSQL_DB
+  /* used to open the database */
+  PGconn *pgsql_conn;
+  PGresult *pgsql_res;
+#endif
+
+  int (*getlib)(unsigned char *seq, int maxs,
+               char *libstr, int n_libstr,
+               fseek_t *libpos,
+               int *lcont,
+               struct lmf_str *lm_fd,
+               long *l_off);
+
+  void (*ranlib)(char *str, int cnt,
+                fseek_t libpos, char *libstr,
+                struct lmf_str *lm_fd);
+};
+