#ifndef _ETCACHE_H_ #define _ETCACHE_H_ #include #include /****************************************************************************/ /* 定数(その1) */ /****************************************************************************/ #define NAME_MAX_LEN 31 #define COMMENT_MAX_LEN 255 #define URL_MAX_LEN 255 #define PATH_MAX_LEN 255 #define SQL_MAX_LEN 1023 #define DATE_LEN 8 #define ATTR_VALUE_MAX_LEN 1023 #define DEFAULT_OPT_ATTR_NUM 4 #define DEFAULT_GRAPH_ENTRY 4 #define DEFAULT_COLOR_ENTRY 4 #define BLEND_NAME_MAX_LEN 7 /****************************************************************************/ /* 共通の構造体 */ /****************************************************************************/ typedef float EG_VALUE; /* グラフ値の型 */ typedef enum t_blend {NOBLEND, average, mode, min, max} BLEND; /* 合成ポリシ */ typedef enum t_easytrack_type { NOTYPE, et_geneTrack, et_graphTrack, et_colorTrack, et_gene, et_graph, et_color } ET_TYPE; typedef struct t_optattr { char name[NAME_MAX_LEN + 1]; char value[ATTR_VALUE_MAX_LEN + 1]; } OPTATTR; typedef struct t_color { // unsigned char red; // unsigned char green; // unsigned char blue; // unsigned char dummy; /* 詰め物 */ int red; int green; int blue; int start; int end; } COLOR; /* 色データ */ typedef struct t_species { char name[NAME_MAX_LEN + 1]; char species[NAME_MAX_LEN + 1]; char revision[NAME_MAX_LEN + 1]; } SPECIES; /* 生物種 */ // グラフの縮小で用いるモード(最頻値)決定用 typedef struct t_mode_struct { EG_VALUE mode_value; int mode_count; } MODE_STRUCT; /* EasyGene, EasyGraph, EasyColor の共通部分 */ /* typedef struct t_et_common { char target[NAME_MAX_LEN + 1]; off_t start; off_t end; ssize_t unit; char url[URL_MAX_LEN + 1]; int optnum; int optareanum; OPTATTR *optattrs; } ET_COMMON; */ /* EasyGeneTrack, EasyGraphTrack, EasyColorTrack の共通部分 */ /* typedef struct t_et_commonTrack { char name[NAME_MAX_LEN + 1]; char comment[COMMENT_MAX_LEN + 1]; char desc_url[URL_MAX_LEN + 1]; char species[NAME_MAX_LEN + 1]; char revision[NAME_MAX_LEN + 1]; char species_url[URL_MAX_LEN + 1]; BLEND blend; char date[DATE_LEN + 1]; char optattr[ATTR_VALUE_MAX_LEN + 1]; } ET_COMMONTRACK; */ /****************************************************************************/ /* 定数(その2) */ /****************************************************************************/ #define ENTRY_SIZE sizeof(EG_VALUE) #define COLOR_SIZE sizeof(COLOR) /* #define BUFSIZE 4194304 */ #define BUFSIZE 65536 #define MAX_ENTRY_NUM 400000000 #define BUF_ENTRIES ((BUFSIZE) / (ENTRY_SIZE)) #define BUF_COLORS ((BUFSIZE) / (COLOR_SIZE)) #define BUFNUM ((MAX_ENTRY_NUM) / (BUF_ENTRIES) + 1) #define COLBUFNUM ((MAX_ENTRY_NUM) / (BUF_COLORS) + 1) #define BUFLEN 65536 #define HEAPLEN 65536 #define DEFAULT_MAX_GENE_NUMBER 100 #define DEFAULT_GRAPH_BLEND average #define DEFAULT_COLOR_BLEND mode /* #define GRAPHDATA "graphvalue.dat" #define COLORDATA "colorvalue.dat" */ #define CACHEDIR "/home/furudate/CacheData/" #define CACHE_DB "cachefiles" #define CACHE_TABLE "cachefiles" #define GRAPH_TRACK_TABLE "graphtracks" #define GRAPH_TABLE "graphs" #define COLOR_TRACK_TABLE "colortracks" #define COLOR_TABLE "colors" /****************************************************************************/ /* グローバル変数 (etglobal.cで定義) */ /****************************************************************************/ extern int max_gene_number; /* EasyGeneTrackを出力する最大遺伝子数 */ extern BLEND currentGraphBlend; /* グラフ値の現在の合成ポリシ */ extern BLEND currentColorBlend; /* 色の現在の合成ポリシ */ extern COLOR DefaultGraphColor; extern COLOR DefaultBackgroundColor; extern EG_VALUE DefaultGraphValueMax; extern EG_VALUE DefaultGraphValueMin; extern PGconn *Conn; /* キャッシュDBの接続指定子 */ extern PGresult *Results; /* キャッシュDBの検索結果格納エリア */ extern int onmemEGeneTrackNum; extern int onmemEGraphTrackNum; extern int onmemEColorTrackNum; extern int onmemEGeneNum; extern int onmemEGraphNum; extern int onmemEColorNum; extern int onmemValues; extern int onmemColors; extern int onmemOptAttrs; extern int onmemStrings; extern int onmemIntArrays; extern int onmemPointers; extern int onmemResults; extern int onmemModeStructs; extern int onmemSharedArea; extern EG_VALUE *shared_area; extern int shared_area_size; void checkAllocationCount(); int serialize(char *); /* グローバル変数の内容をファイルに保存 */ int deserialize(char *); /* ファイルの内容をグローバル変数にロード */ #endif