install-ds.h
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:9k
源码类别:

CA认证

开发平台:

WINDOWS

  1. /*
  2.  * The contents of this file are subject to the Mozilla Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/MPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is the Netscape security libraries.
  13.  * 
  14.  * The Initial Developer of the Original Code is Netscape
  15.  * Communications Corporation.  Portions created by Netscape are 
  16.  * Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  17.  * Rights Reserved.
  18.  * 
  19.  * Contributor(s):
  20.  * 
  21.  * Alternatively, the contents of this file may be used under the
  22.  * terms of the GNU General Public License Version 2 or later (the
  23.  * "GPL"), in which case the provisions of the GPL are applicable 
  24.  * instead of those above.  If you wish to allow use of your 
  25.  * version of this file only under the terms of the GPL and not to
  26.  * allow others to use your version of this file under the MPL,
  27.  * indicate your decision by deleting the provisions above and
  28.  * replace them with the notice and other provisions required by
  29.  * the GPL.  If you do not delete the provisions above, a recipient
  30.  * may use your version of this file under either the MPL or the
  31.  * GPL.
  32.  */
  33. #ifndef INSTALL_DS_H
  34. #define INSTALL_DS_H
  35. #include <stdio.h>
  36. #include <prio.h>
  37. #include <prmem.h>
  38. extern PRFileDesc *Pk11Install_FD;
  39. extern int Pk11Install_yylex();
  40. extern int Pk11Install_yylinenum;
  41. extern char *Pk11Install_yyerrstr;
  42. typedef enum { STRING_VALUE, PAIR_VALUE } ValueType;
  43. typedef struct Pk11Install_Pair_str Pk11Install_Pair;
  44. typedef union Pk11Install_Pointer_str Pk11Install_Pointer;
  45. typedef struct Pk11Install_Value_str Pk11Install_Value;
  46. typedef struct Pk11Install_ValueList_str Pk11Install_ValueList;
  47. typedef struct Pk11Install_ListIter_str Pk11Install_ListIter;
  48. typedef struct Pk11Install_File_str Pk11Install_File;
  49. typedef struct Pk11Install_PlatformName_str Pk11Install_PlatformName;
  50. typedef struct Pk11Install_Platform_str Pk11Install_Platform;
  51. typedef struct Pk11Install_Info_str Pk11Install_Info;
  52. extern Pk11Install_Pointer Pk11Install_yylval;
  53. extern Pk11Install_ValueList* Pk11Install_valueList;
  54. /*
  55. //////////////////////////////////////////////////////////////////////////
  56. // Pk11Install_Pair
  57. //////////////////////////////////////////////////////////////////////////
  58. */
  59. struct Pk11Install_Pair_str {
  60. char * key;
  61. Pk11Install_ValueList *list;
  62. };
  63. Pk11Install_Pair* 
  64. Pk11Install_Pair_new_default();
  65. Pk11Install_Pair* 
  66. Pk11Install_Pair_new( char* _key, Pk11Install_ValueList* _list);
  67. void 
  68. Pk11Install_Pair_delete(Pk11Install_Pair* _this);
  69. void
  70. Pk11Install_Pair_Print(Pk11Install_Pair* _this, int pad);
  71. /*
  72. //////////////////////////////////////////////////////////////////////////
  73. // Pk11Install_Pointer
  74. //////////////////////////////////////////////////////////////////////////
  75. */
  76. union Pk11Install_Pointer_str {
  77. Pk11Install_ValueList *list;
  78. Pk11Install_Value *value;
  79. Pk11Install_Pair *pair;
  80. char *string;
  81. };
  82. /*
  83. //////////////////////////////////////////////////////////////////////////
  84. // Pk11Install_Value
  85. //////////////////////////////////////////////////////////////////////////
  86. */
  87. struct Pk11Install_Value_str {
  88. ValueType type;
  89. char *string;
  90. Pk11Install_Pair *pair;
  91. struct Pk11Install_Value_str *next;
  92. };
  93. Pk11Install_Value* 
  94. Pk11Install_Value_new_default();
  95. Pk11Install_Value*
  96. Pk11Install_Value_new(ValueType _type, Pk11Install_Pointer ptr);
  97. void
  98. Pk11Install_Value_delete(Pk11Install_Value* _this);
  99. void
  100. Pk11Install_Value_Print(Pk11Install_Value* _this, int pad);
  101. /*
  102. //////////////////////////////////////////////////////////////////////////
  103. // Pk11Install_ValueList
  104. //////////////////////////////////////////////////////////////////////////
  105. */
  106. struct Pk11Install_ValueList_str {
  107. int numItems;
  108. int numPairs;
  109. int numStrings;
  110. Pk11Install_Value *head;
  111. };
  112. Pk11Install_ValueList* 
  113. Pk11Install_ValueList_new();
  114. void
  115. Pk11Install_ValueList_delete(Pk11Install_ValueList* _this);
  116. void
  117. Pk11Install_ValueList_AddItem(Pk11Install_ValueList* _this,
  118.                               Pk11Install_Value* item);
  119. void
  120. Pk11Install_ValueList_Print(Pk11Install_ValueList* _this, int pad);
  121. /*
  122. //////////////////////////////////////////////////////////////////////////
  123. // Pk11Install_ListIter
  124. //////////////////////////////////////////////////////////////////////////
  125. */
  126. struct Pk11Install_ListIter_str {
  127. const Pk11Install_ValueList *list;
  128. Pk11Install_Value *current;
  129. };
  130. Pk11Install_ListIter* 
  131. Pk11Install_ListIter_new_default();
  132. void
  133. Pk11Install_ListIter_init(Pk11Install_ListIter* _this);
  134. Pk11Install_ListIter*
  135. Pk11Install_ListIter_new(const Pk11Install_ValueList* _list);
  136. void
  137. Pk11Install_ListIter_delete(Pk11Install_ListIter* _this);
  138. void
  139. Pk11Install_ListIter_reset(Pk11Install_ListIter* _this);
  140. Pk11Install_Value*
  141. Pk11Install_ListIter_nextItem(Pk11Install_ListIter* _this);
  142. /************************************************************************
  143.  *
  144.  * Pk11Install_File
  145.  */
  146. struct Pk11Install_File_str {
  147. char *jarPath;
  148. char *relativePath;
  149. char *absolutePath;
  150. PRBool executable;
  151. int permissions;
  152. };
  153. Pk11Install_File*
  154. Pk11Install_File_new();
  155. void
  156. Pk11Install_File_init(Pk11Install_File* _this);
  157. void
  158. Pk11Install_file_delete(Pk11Install_File* _this);
  159. /*// Parses a syntax tree to obtain all attributes.
  160. // Returns NULL for success, error message if parse error.*/
  161. char*
  162. Pk11Install_File_Generate(Pk11Install_File* _this, 
  163.                           const Pk11Install_Pair* pair);
  164. void
  165. Pk11Install_File_Print(Pk11Install_File* _this, int pad);
  166. void
  167. Pk11Install_File_Cleanup(Pk11Install_File* _this);
  168. /************************************************************************
  169.  *
  170.  * Pk11Install_PlatformName
  171.  */
  172. struct Pk11Install_PlatformName_str {
  173. char *OS;
  174. char **verString;
  175. int numDigits;
  176. char *arch;
  177. };
  178. Pk11Install_PlatformName*
  179. Pk11Install_PlatformName_new();
  180. void
  181. Pk11Install_PlatformName_init(Pk11Install_PlatformName* _this);
  182. void
  183. Pk11Install_PlatformName_delete(Pk11Install_PlatformName* _this);
  184. char*
  185. Pk11Install_PlatformName_Generate(Pk11Install_PlatformName* _this,
  186.                                   const char* str);
  187. char*
  188. Pk11Install_PlatformName_GetString(Pk11Install_PlatformName* _this);
  189. char*
  190. Pk11Install_PlatformName_GetVerString(Pk11Install_PlatformName* _this);
  191. void
  192. Pk11Install_PlatformName_Print(Pk11Install_PlatformName* _this, int pad);
  193. void
  194. Pk11Install_PlatformName_Cleanup(Pk11Install_PlatformName* _this);
  195. PRBool
  196. Pk11Install_PlatformName_equal(Pk11Install_PlatformName* _this,
  197.                                Pk11Install_PlatformName* cmp);
  198. PRBool
  199. Pk11Install_PlatformName_lteq(Pk11Install_PlatformName* _this,
  200.                               Pk11Install_PlatformName* cmp);
  201. PRBool
  202. Pk11Install_PlatformName_lt(Pk11Install_PlatformName* _this,
  203.                             Pk11Install_PlatformName* cmp);
  204. /************************************************************************
  205.  *
  206.  * Pk11Install_Platform
  207.  */
  208. struct Pk11Install_Platform_str {
  209. Pk11Install_PlatformName name;
  210. Pk11Install_PlatformName equivName;
  211. struct Pk11Install_Platform_str *equiv;
  212. PRBool usesEquiv;
  213. char *moduleFile;
  214. char *moduleName;
  215. int modFile;
  216. unsigned long mechFlags;
  217. unsigned long cipherFlags;
  218. Pk11Install_File *files;
  219. int numFiles;
  220. };
  221. Pk11Install_Platform*
  222. Pk11Install_Platform_new();
  223. void
  224. Pk11Install_Platform_init(Pk11Install_Platform* _this);
  225. void
  226. Pk11Install_Platform_delete(Pk11Install_Platform* _this);
  227. /*// Returns NULL for success, error message if parse error.*/
  228. char* 
  229. Pk11Install_Platform_Generate(Pk11Install_Platform* _this,
  230.                               const Pk11Install_Pair *pair);
  231. void 
  232. Pk11Install_Platform_Print(Pk11Install_Platform* _this, int pad);
  233. void 
  234. Pk11Install_Platform_Cleanup(Pk11Install_Platform* _this);
  235. /************************************************************************
  236.  *
  237.  * Pk11Install_Info
  238.  */
  239. struct Pk11Install_Info_str {
  240. Pk11Install_Platform *platforms;
  241. int numPlatforms;
  242. Pk11Install_PlatformName *forwardCompatible;
  243. int numForwardCompatible;
  244. };
  245. Pk11Install_Info*
  246. Pk11Install_Info_new();
  247. void
  248. Pk11Install_Info_init();
  249. void
  250. Pk11Install_Info_delete(Pk11Install_Info* _this);
  251. /*// Returns NULL for success, error message if parse error.*/
  252. char* 
  253. Pk11Install_Info_Generate(Pk11Install_Info* _this, 
  254.                           const Pk11Install_ValueList *list);
  255. /*// Returns NULL if there is no matching platform*/
  256. Pk11Install_Platform* 
  257. Pk11Install_Info_GetBestPlatform(Pk11Install_Info* _this, char* myPlatform);
  258. void 
  259. Pk11Install_Info_Print(Pk11Install_Info* _this, int pad);
  260. void 
  261. Pk11Install_Info_Cleanup(Pk11Install_Info* _this);
  262. #endif // INSTALL_DS_H