sql_map.h
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  2.    
  3.    This program is free software; you can redistribute it and/or modify
  4.    it under the terms of the GNU General Public License as published by
  5.    the Free Software Foundation; either version 2 of the License, or
  6.    (at your option) any later version.
  7.    
  8.    This program is distributed in the hope that it will be useful,
  9.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.    GNU General Public License for more details.
  12.    
  13.    You should have received a copy of the GNU General Public License
  14.    along with this program; if not, write to the Free Software
  15.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  16. /* interface for memory mapped files */
  17. #ifdef __GNUC__
  18. #pragma interface /* gcc class implementation */
  19. #endif
  20. class mapped_files;
  21. mapped_files *map_file(const my_string name,byte *magic,uint magic_length);
  22. void unmap_file(mapped_files *map);
  23. class mapped_files :public ilink {
  24.   byte *map;
  25.   ha_rows size;
  26.   char *name; // name of mapped file
  27.   File file; // >= 0 if open
  28.   int  error; // If not mapped
  29.   uint use_count;
  30. public:
  31.   mapped_files(const my_string name,byte *magic,uint magic_length);
  32.   ~mapped_files();
  33.   friend class mapped_file;
  34.   friend mapped_files *map_file(const my_string name,byte *magic,
  35. uint magic_length);
  36.   friend void unmap_file(mapped_files *map);
  37. };
  38. class mapped_file
  39. {
  40.   mapped_files *file;
  41. public:
  42.   mapped_file(const my_string name,byte *magic,uint magic_length)
  43.   {
  44.     file=map_file(name,magic,magic_length); /* old or new map */
  45.   }
  46.   ~mapped_file()
  47.   {
  48.     unmap_file(file); /* free map */
  49.   }
  50.   byte *map()
  51.   {
  52.     return file->map;
  53.   }
  54. };