table.h
上传用户:filter2008
上传日期:2013-02-01
资源大小:101k
文件大小:3k
源码类别:

CA认证

开发平台:

C/C++

  1. /****************************************************************************
  2. * library : pkcs_csp.dll
  3. * Purpose : It is a cryptographic service provider which is an independent 
  4. * software module that actually performs cryptography algorithms for 
  5. * authentication, encoding, and encryption.
  6. * This DLL can be interfaced on any PKCS#11 module.  
  7. *
  8. * Copyright (C) 2003 Ilex Syst鑝es Informatiques
  9. *
  10. * This library is free software; you can redistribute it and/or
  11. * modify it under the terms of the GNU Lesser General Public
  12. * License as published by the Free Software Foundation; either
  13. * version 2.1 of the License, or (at your option) any later version.
  14. *
  15. * This library is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  18. * Lesser General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU Lesser General Public
  21. * License along with this library; if not, write to the Free Software
  22. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  23. *
  24. * Contact :
  25. * Ilex 
  26. * 51 boulevard Voltaire
  27. * 92600 Asni鑢es-sur-Seine
  28. * pkizy@ilex.fr
  29. *
  30. * Author: Delouvrier Antoine
  31. *
  32. *******************************************************************************/
  33. /*
  34. %----------------------------------------------------------------------------
  35. % PROJECT : CSP_PKCS
  36. %
  37. % MODULE : handletable
  38. %
  39. % VERSION : 1.00
  40. %
  41. % FILE : handletable.h
  42. %
  43. % cryptool: class allows to manage a table of handle
  44. %----------------------------------------------------------------------------
  45. % Version 1.00
  46. % CPX-31/03/2003-Creation
  47. %----------------------------------------------------------------------------
  48. */ 
  49. #ifndef _INCL__TABLE_H
  50. #define _INCL__TABLE_H
  51. #ifndef _WIN32_WINNT
  52. #define _WIN32_WINNT 0x0400
  53. #endif
  54. #include <windows.h>
  55. #pragma once
  56. #define START 0
  57. #define EXTEND_FACTOR 2
  58. #define INITIAL_SIZE 3 
  59. #define NO_ENTRY 0x0
  60. #define DELETED_ENTRY 0xFFFFFFFF
  61. class TableOfHandle
  62. {
  63. public:
  64. TableOfHandle();
  65. ~TableOfHandle();
  66. bool VerifyEntry(const void * const pHandle);
  67. bool AddEntry(void * const pHandle);
  68. void RemoveEntry(const void * const pHandle);
  69. void* GetNext(int& i);
  70. void Lock(){EnterCriticalSection(&critical_object);}
  71. void Unlock(){LeaveCriticalSection(&critical_object);}
  72. private:
  73. int GetIndex(const void * const pHandle);
  74. bool ExtendSize();
  75. CRITICAL_SECTION critical_object;
  76. void ** pTable;
  77. int tableSize;
  78. int entryTableUsed;
  79. };
  80. #endif