⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lldbs.h

📁 LINUX下的收发E-MAIL的程序
💻 H
字号:
/*****************************************************************************
 *       FileName   :     lldbs.h                                         *
 *       Programmer :     duyun                                              *
 *       Writen at  :     2001.4.25                                          *
 *       Version    :     lldbs0.1                                           *
 *       Description:                                                        *
 *       Last modify:                                                        *
 *****************************************************************************/
#define DB_RNONLY 1
#define DB_WRITABLE 2




enum {
   KEY_INT=1,
   KEY_STRING,
   KEY_FLOAT,
   KEY_DATE,
   KEY_BOOLEAN,
   KEY_RAW_DATA
};

struct date{
   short year;
   char mounth;
   char day;
   char hour;
   char minute;
   char second;
};


//define the struct of key field 
 
struct key_field
{
   //key field infomation
  unsigned short offset;
  unsigned short size;
  unsigned char key_type;
};
#define get_field_offset_and_length(struct_name,field_name,\
                                              offset,length)\
                            {\
                                  struct struct_name temp;   \
                                  offset = (char *)&(temp.field_name) - (char *)&(temp);\
                                  length = sizeof(temp.field_name);\
                            }
                     
/****************************************************************************/
        /*                                         *
         *        THE DATA BASE FUNCTION           *
         *******************************************/

/*
 *      register the the date base info in data_info tatble,and copy
 *      info in db_info_cache ,return the the data base identify !!!                 
 */ 

unsigned long db_register(char * database_name,
                          struct key_field * new_key,
                          int bufer_size,
                          int record_size);   


/*
 *     UNREGIST THE DATA BASE RIGHT!!
 */

int db_unregister(unsigned long database_id);

/*
 *     creat a database 
 */

int db_create(char * database_name);


/*
 *    delete a database
 */
 
int db_delete(unsigned long database_id);



/*
 *      get the personal info1
 */ 


int db_set_app_info1(unsigned long database_id,char * info1);


/*
 *    app used this function to set 2 personal infomation!!      
 */

int db_set_app_info2(unsigned long database_id,char * info2);

/*
 *       app used this function to get 1 personal infomation!! 
 *
 */

int db_get_app_info1(unsigned long database_id,char * info1);


/*
 *       app used this function to get 2 personal infomation!! 
 *
 */


int db_get_app_info2(unsigned long database_id,char * info1);

/*
 *      modified record number!!
 */

int db_get_modified_rec_no(unsigned long database_id); 




/*
 *      modified record number!!
 */

int db_reset_modified_rec_no(unsigned long database_id) ;



/*
 *       creat a new  AVL tree
 */

int db_new_sort(unsigned long  database_id,struct key_field new_key);


/*
 *         creat the sort in acordding to key_field and category!!!          
 */

int db_new_sort_with_category(unsigned long  database_id,struct key_field new_key);


/*
 *        LOCK THE DATABASE 
 */ 

int db_lock(unsigned long database_id);



/*
 *      CHANGE THE ATRIBUTE OF DATABASE 
 */

int db_change_access_right(unsigned long database_id,unsigned char new_access_right);

/*
 *     GET THE NUMBER OF DATABASE 
 */


int db_get_record_number(unsigned long database_id);

/*
 *        SEARCH THE RECORD BY KEY_FIELD;;;
 */

int db_search_key(unsigned long database_id,void * key_buffer,void * buffer,int length);

/*
 *        search  the record by raw data patern;;;;   
 */
int db_search_raw_data(unsigned long database_id,void *raw_buffer,void * buffer,int length);



/*****************************************************************************/
           //          record     
/*
 *        ADD A RECORD
 */
int db_add_record(int database_id,void * record_buffer,int length);



/*
 *     CHANGE A RECORD POSITION
 */
int db_change_current_pos(unsigned long database_id,int pos);


/*
 *     GET CURRENT RECORDER
 */

int db_get_current_pos(unsigned long database_id,void * buffer);


/*
 *          delete current record        
 */
int db_delete_current_record(unsigned long database_id);



/*
 *       MODIFIED CURRENT RECORD
 */

int db_modify_current(unsigned long database_id,void * new_record,int length);


/*
 *      get prev record
 */
  
int db_get_prev(unsigned long database_id,void * buffer);




/*
 *      GET NEXT RECORD 
 */
int db_get_next(unsigned long database_id,void * buffer);

/*
 *       LOCK A RECORD
 */

int db_lock_current(unsigned long database_id);



/*
 *       UNLOCK A RECORD
 */

int db_unlock_current(unsigned long database_id);

    
/*
 *     SET THE VLF OF CURRENT RECORD
 */

int db_set_current_vlf(unsigned long database_id,void * field_buffer,int length);



/*
 *       GET THE CURRENT RECORD   
 */
int db_get_current_vlf(unsigned long database_id,void * field_buffer);


  
/******************************************************************************/
     /*
      *             THE CATEGORY API
      */

/*
 *     ADD A NEW CATEGIRY
 */
unsigned char db_add_new_category(unsigned long  database_id,
                                  unsigned char * category_name);

   
/*
 *     DELETTE A CATEGORY  
 */

int db_delete_category(unsigned long database_id,
                       unsigned char category_id);

 

/*
 *       CHANGE CURRENT ATEGORY
 */

int db_change_category(unsigned long database_id,
                       unsigned char category_id);

 
/*
 *     GET THE NUMBER OF CURRENT CATEGORY        
 */

int db_get_rec_no_in_category(unsigned long database_id,
                           unsigned char category_id);
/*
 *     MOVE CURRENT RECORD BY CATEGORY
 */

int db_change_current_by_category(unsigned long database_id,void * buffer,
                                  unsigned char category_id,int position);

/*
 *    GET THE CURRENT RECORD POSITION INT CATEGORY
 */

int db_get_current_pos_by_category(unsigned long database_id,
                                   unsigned short * category_id);




/*
 *       EXCHANGE THE CATEGOTY
 */
int db_exchange_category(unsigned long database_id,
                         unsigned char src_category,
                         unsigned char dest_category);
/*
 *    get the category name 
 */

int db_get_category(unsigned long database_id ,void * buffer);
/*
 *        search  the record by raw data patern;;;;
 */
int db_search_raw_data_next(unsigned long database_id,void * raw_buffer,void * buffer,int length);
/*
 *        SEARCH THE RECORD BY KEY_FIELD;;;
 */

int db_search_key_next(unsigned long database_id,void * key_buffer,void * buffer,int length);
/*
 *     change the category in current record
 */

int db_change_current_category(unsigned long database_id,
                                        unsigned char category_id );
int db_change_category_name(unsigned long database_id,
                               unsigned char category_id,
                               char *name);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -