home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / samtexco.zip / imoapic.h < prev    next >
C/C++ Source or Header  |  2002-08-14  |  62KB  |  1,158 lines

  1. /*====================================================================*/
  2. /*  Name:     IMOAPIC.H                                               */
  3. /*====================================================================*/
  4. /*                                                                    */
  5. /*  Licensed Materials - Property of IBM                              */
  6. /*                                                                    */
  7. /*  5765-IMT (C) Copyright IBM Corporation  1997, 1998                */
  8. /*                                                                    */
  9. /*  All rights reserved.                                              */
  10. /*  US Government Users Restricted Rights -                           */
  11. /*  Use, duplication or disclosure restricted by GSA ADP              */
  12. /*  Schedule Contract with IBM Corporation.                           */
  13. /*                                                                    */
  14. /*  See Copyright Instructions.                                       */
  15. /*                                                                    */
  16. /*====================================================================*/
  17. /*                                                                    */
  18. /* Permission Notice                                                  */
  19. /*                                                                    */
  20. /* Permission is granted to copy, use, modify, and merge this         */
  21. /* software into your applications and to permit others to do any of  */
  22. /* the foregoing.                                                     */
  23. /* You may further distribute these object classes for commercial     */
  24. /* purposes only as part of your application that adds significant    */
  25. /* value and function beyond that provided by these object classes.   */
  26. /* You must include this permission statement and retain the          */
  27. /* copyright notice in all copies and modified versions of this       */
  28. /* software.                                                          */
  29. /*                                                                    */
  30. /*====================================================================*/
  31.  
  32. /*====================================================================*/
  33. /*                                                                    */
  34. /*  IBM TextMiner Application Programming Interface                   */
  35. /*  Symbolic names definitions for use in C applications              */
  36. /*                                                                    */
  37. /*====================================================================*/
  38. /* changes:                                                           */
  39. /* p1,11/04/99, bae: add register/deregister Index                    */
  40. /*====================================================================*/
  41.  
  42. #ifndef imoapic_h
  43. #define imoapic_h
  44.  
  45. #if !defined(IMOAPIC_DEFINED)          /* already included  ?         */
  46. #define IMOAPIC_DEFINED                /* no !                        */
  47.  
  48. /*--------------------------------------------------------------------*/
  49. /*  Determine the host architecture                                   */
  50. /*--------------------------------------------------------------------*/
  51.  
  52. #if defined(_M_I386) || defined(_M_IX86) || defined(i386) || defined (_IA64)
  53. #define EHW_LITTLE_ENDIAN
  54. #endif
  55.  
  56. #if defined(_M_PPC) || defined(_POWER)             \
  57.  || defined(sparc)  || defined(_HP_UX) || defined(__hpux) \
  58.  || defined (__OS_OE390__) || defined (AS400)
  59. #define EHW_BIG_ENDIAN
  60. #endif
  61.  
  62. /*--------------------------------------------------------------------*/
  63. /*  Check for consistency                                             */
  64. /*--------------------------------------------------------------------*/
  65.  
  66. #if  !defined(EHW_BIG_ENDIAN) && !defined(EHW_LITTLE_ENDIAN)
  67. #error Please define host architecture!
  68. #endif
  69.  
  70. #if  defined(EHW_BIG_ENDIAN) && defined(EHW_LITTLE_ENDIAN)
  71. #error Ooops, something is wrong here!
  72. #endif
  73.  
  74. /*--------------------------------------------------------------------*/
  75. /*  Return Code values                                                */
  76. /*--------------------------------------------------------------------*/
  77. #define  RC_DONE                             0
  78. #define  RC_CONTINUATION_MODE_ENTERED        1
  79. #define  RC_END_OF_INFORMATION               2
  80. #define  RC_EMPTY_LIST                       3
  81. #define  RC_MORE_INFORMATION                 4
  82. #define  RC_INDEX_GROUP_SEARCH_ERROR         7
  83. #define  RC_INDEX_SPECIFIC_ERROR             8
  84. #define  RC_DICTIONARY_NOT_FOUND             9
  85. #define  RC_STOPWORD_IGNORED                10
  86. #define  RC_PROCESSING_LIMIT_EXCEEDED       12
  87. #define  RC_UNKNOWN_SERVER_NAME             16
  88. #define  RC_INCORRECT_AUTHENTICATION        17
  89. #define  RC_DATASTREAM_SYNTAX_ERROR         18
  90. #define  RC_QUERY_SCOPE_TOO_COMPLEX         20
  91. #define  RC_QUERY_TOO_COMPLEX               22
  92. #define  RC_MEMBER_OF_INDEX_GROUP           23
  93. #define  RC_UNKNOWN_INDEX_NAME              24
  94. #define  RC_INCORRECT_HANDLE                25
  95. #define  RC_INDEX_NOT_MEMBER_OF_GROUP       26
  96. #define  RC_UNKNOWN_SESSION_POINTER         27
  97. #define  RC_UNKNOWN_COMMUNICATION_TYPE      29
  98. #define  RC_UNKNOWN_SERVER_INFORMATION      30
  99. #define  RC_INVALID_MASKING_SYMBOL          31
  100. #define  RC_UNEXPECTED_ERROR                32
  101. #define  RC_SERVER_NOT_AVAILABLE            33
  102. #define  RC_INDEX_ALREADY_OPENED            35
  103. #define  RC_MAX_NUMBER_OF_OPEN_INDEXES      36
  104. #define  RC_MAX_NUMBER_OF_RESULTS           37
  105. #define  RC_INDEX_TO_DEREGISTER             38
  106. #define  RC_CCS_NOT_SUPPORTED               41
  107. #define  RC_LANGUAGE_NOT_SUPPORTED          42
  108. #define  RC_CONFLICT_WITH_INDEX_TYPE        43
  109. #define  RC_MAX_INPUT_SIZE_EXCEEDED         46
  110. #define  RC_SERVER_BUSY                     47
  111. #define  RC_SERVER_CONNECTION_LOST          48
  112. #define  RC_SERVER_IN_ERROR                 49
  113. #define  RC_REQUEST_IN_PROGRESS             50
  114. #define  RC_UNKNOWN_INDEX_TYPE              51
  115. #define  RC_INCORRECT_INDEX_NAME            52
  116. #define  RC_INCORRECT_LS_EXECUTABLES        53
  117. #define  RC_INCORRECT_LIBRARY_ID            54
  118. #define  RC_INDEX_ALREADY_EXISTS            55
  119. #define  RC_MAX_NUMBER_OF_INDEXES           56
  120. #define  RC_INCORRECT_LOCATION              57
  121. #define  RC_LOCATION_IN_USE                 58
  122. #define  RC_UNKNOWN_CONDITION               59
  123. #define  RC_INDEX_DELETED                   60
  124. #define  RC_INDEX_SUSPENDED                 61
  125. #define  RC_INDEX_NOT_ACCESSIBLE            62
  126. #define  RC_MAX_NUMBER_OF_BUSY_INDEXES      63
  127. #define  RC_CONFLICTING_TASK_RUNNING        64
  128. #define  RC_NOT_ENOUGH_MEMORY               65
  129. #define  RC_MAX_OUTPUT_SIZE_EXCEEDED        68
  130. #define  RC_BROWSER_TIME_OUT                69
  131. #define  RC_COMMUNICATION_PROBLEM           70
  132. #define  RC_NO_ACTION_TAKEN                 71
  133. #define  RC_EMPTY_INDEX                     72
  134. #define  RC_EMPTY_QUERY                     73
  135. #define  RC_INSTALLATION_PROBLEM            74
  136. #define  RC_FUNCTION_DISABLED               75
  137. #define  RC_FUNCTION_IN_ERROR               76
  138. #define  RC_IO_PROBLEM                      77
  139. #define  RC_WRITE_TO_DISK_ERROR             78
  140. #define  RC_SERVER_VERSION_NOT_CURRENT      79
  141. #define  RC_FUNCTION_NOT_SUPPORTED          80
  142. #define  RC_RESULT_ALREADY_RANKED           81
  143. #define  RC_RESULT_VIEW_EXISTS              82
  144. #define  RC_INDEX_NOT_OPEN                  83
  145. #define  RC_NO_RANKING_DATA_AVAILABLE       84
  146. #define  RC_LINGUISTIC_SERVICE_FAILED       85
  147. #define  RC_THESAURUS_PROBLEM               86
  148.  
  149. #define  RC_INVALID_IDENTIFIER              88
  150. #define  RC_DOCUMENT_MODEL_ALREADY_EXISTS   89
  151. #define  RC_UNKNOWN_SECTION_NAME            90
  152. #define  RC_DOCMOD_READ_PROBLEM             91
  153. #define  RC_UNKNOWN_DOCUMENT_MODEL_NAME     92
  154. #define  RC_MISSING_DEFAULT_MODEL           93
  155. #define  RC_SECTION_NAME_ALREADY_EXISTS     94
  156. #define  RC_SECTION_TAG_ALREADY_EXISTS      95
  157.  
  158. #define  RC_MAX_NUMBER_OF_TASKS             96
  159. #define  RC_LS_NOT_EXECUTABLE               97
  160. #define  RC_LS_FUNCTION_FAILED              98
  161. #define  RC_CAPACITY_LIMIT_EXCEEDED         99
  162. #define  RC_DOCUMENT_NOT_ACCESSIBLE        100
  163. #define  RC_DOCUMENT_CURR_NOT_ACCESSIBLE   101
  164. #define  RC_DOCUMENT_NOT_TO_INDEX          102
  165. #define  RC_DOCUMENT_NOT_FOUND             103
  166. #define  RC_DOCUMENT_IN_ERROR              104
  167. #define  RC_DOCUMENT_NOT_SUPPORTED         105
  168. #define  RC_DOCUMENT_GROUP_NOT_FOUND       111
  169. #define  RC_INVALID_ATTRIBUTE_VALUE        112
  170. #define  RC_INVALID_SECTION_TYPE           113
  171.  
  172. #define  RC_INCORRECT_RELEVANCE_VALUE      120
  173.  
  174. #define  RC_NO_RAT_EXPANSION               130
  175. #define  RC_DOCUMENT_NOT_IN_VIEW           131
  176.  
  177. #define  RC_EMPTY_CLUSTER                  200
  178. #define  RC_CLUSTER_EXISTS                 201
  179. #define  RC_DOC_NOT_CLUSTERED              202
  180. #define  RC_STOPWORDLIST_NOT_ACCESSIBLE    203
  181. #define  RC_CHANGE_SERVER_NOT_ALLOWED      204
  182. /*--------------------------------------------------------------------*/
  183. /*  Item Identifiers                                                  */
  184. /*--------------------------------------------------------------------*/
  185. #define  ID_INAM          5            /* instance name               */
  186. #define  ID_IRS          10            /* IR server info              */
  187. #define  ID_IRSN         11            /* -- server name              */
  188. #define  ID_IRSL         12            /* -- server location          */
  189. #define     IRSL_LOCAL       0x00      /*    -- local                 */
  190. #define     IRSL_REMOTE      0x01      /*    -- remote                */
  191. #define  ID_CTYP         15            /* -- communication type       */
  192. #define     CTYP_PIPES       0x01      /*    -- name pipes            */
  193. #define     CTYP_TCPIP       0x02      /*    -- TCP/IP                */
  194. #define     CTYP_LOCAL       0x03      /*    -- local                 */
  195. #define  ID_IRSID        16            /* -- server identifier        */
  196. #define  ID_APPID        17            /* -- application identifier   */
  197. #define  ID_ATC          20            /* authentication info         */
  198. #define  ID_UID          30            /* -- user_id                  */
  199. #define  ID_PWD          40            /* -- password                 */
  200. #define  ID_IRX          50            /* index information           */
  201. #define  ID_LIBNAM       55            /* library name                */
  202. #define  ID_XNAM         60            /* -- index name               */
  203. #define  ID_XTTL         61            /* -- index title              */
  204. #define  ID_XTYP         62            /* -- index type               */
  205. #define     XTYP_LINGUISTIC  0x01      /*    -- linguistic            */
  206. #define     XTYP_PRECISE     0x03      /*    -- precise               */
  207. #define     XTYP_GTR         0x05      /*    -- DBCS index (GTR)      */
  208. #define  ID_LSCE         63            /* -- LS client executables    */
  209. #define  ID_LSSE         64            /* -- LS server executables    */
  210. #define  ID_LIBID        65            /* -- library identifier       */
  211. #define  ID_XDESC        66            /* -- index description        */
  212. #define  ID_XLOC         67            /* -- index location           */
  213. #define  ID_WLOC         68            /* -- work location            */
  214. #define  ID_XTADD        69            /* -- additional index feature */
  215. #define    XTADD_CASE_ENABLED 0x03     /*    -- case sensitive (GTR)  */
  216. #define    XTADD_NORMALIZED   0x04     /*    -- 8859 index     (NQ)   */
  217. #define  ID_XTPROP       70            /* -- index properties         */
  218. #define   XTPROP_SECTIONS_ENABLED 0x01 /*    -- structured document   */
  219. #define  ID_XCCSID       72            /* -- index codepage (GTR)     */
  220. #define  ID_XFLAG        73            /* -- index status flag        */
  221. #define     XFLAG_READ_WRITE 0x02      /*    -- index active          */
  222. #define     XFLAG_READ_ONLY  0x03      /*    -- suspended but queries */
  223.                                        /*    -- are allowed           */
  224. #define  ID_SCHDOCS      74            /* -- index queue size         */
  225. #define  ID_PDOCS        75            /* -- docs in primary index    */
  226. #define  ID_SDOCS        76            /* -- docs in second. index    */
  227. #define  ID_DOCMSG       77            /* -- indexing messages        */
  228.                                        /* function status items       */
  229. #define  ID_TENBL        81            /* -- Time fct enabled         */
  230. #define  ID_TDSBL        82            /* -- Time fct disabled        */
  231. #define  ID_TSTOP        83            /* -- Time fct stopped         */
  232. #define  ID_TLSTART      84            /* -- Time fct's last  start   */
  233. #define  ID_TLEND        85            /* -- Time fct's last  end     */
  234. #define  ID_TESTART      86            /* -- Time fct's exec  start   */
  235.                                        /* query items:                */
  236. #define  ID_TLIM        101            /* -- time limit               */
  237. #define  ID_RLIM        102            /* -- result limit             */
  238. #define  ID_RANK        103            /* -- rank switch              */
  239. #define  ID_QSS         105            /* -- query scope              */
  240. #define  ID_DID         106            /*    -- document identifier   */
  241. #define  ID_DGID        107            /*    -- document group id.    */
  242. #define  ID_NLID        108            /*    -- national language id  */
  243. #define  ID_CCSID       115            /* -- coded character set id.  */
  244.                                        /*    (see IMOLANG.H for a list*/
  245.                                        /*     of supported CCSIDs)    */
  246. #define  ID_LANG        116            /* -- language identifier      */
  247.                                        /*    (see IMOLANG.H for a list*/
  248.                                        /*     of valid language codes)*/
  249. #define  ID_SUBQ        120            /* -- subquery                 */
  250. #define  ID_AND         130            /* -- Boolean AND              */
  251. #define  ID_LOR         140            /* -- Boolean OR               */
  252. #define  ID_EXCL        151            /* -- Boolean NOT (exclude)    */
  253. #define  ID_DOCP        170            /* -- document proximity       */
  254. #define  ID_PARP        180            /* -- paragraph proximity      */
  255. #define  ID_SENP        190            /* -- sentence proximity       */
  256. #define  ID_SECLST      195            /* -- section name list        */
  257. #define  ID_SECNAM      196            /* -- section name             */
  258. #define  ID_SECTYPE     197            /* -- section type             */
  259. #define     DATE_TYPE        0x01      /*    -- date type             */
  260. #define     TIME_TYPE        0x02      /*    -- time type             */
  261. #define     INTEGER_TYPE     0x03      /*    -- integer type          */
  262. #define     FLOAT_TYPE       0x04      /*    -- float type            */
  263. #define  ID_SARG        200            /* -- search argument (text)   */
  264. #define  ID_TERM        211            /*    -- term (word or phrase) */
  265. #define  ID_FTERM       212            /* -- free text term           */
  266. #define  ID_SYN         221            /*    -- synonym option        */
  267. #define  ID_PREC        222            /*    -- precision             */
  268. #define     PREC_LEMMA_FORMS 0x01      /*       -- inflections        */
  269. #define     PREC_VARY_PHRASE 0x02      /*       -- phrases & compounds*/
  270. #define     PREC_PRECISE     0x03      /*       -- exact matches      */
  271. #define     PREC_EXACT       0x07      /*       -- exact as possible  */
  272. #define     PREC_FUZZY       0x08      /*       -- fuzzy as possible  */
  273. #define  ID_SUBT        223            /*    -- subterm of left term  */
  274.  
  275. #define  ID_THES        224            /* thesaurus expansion of term */
  276.  
  277.  
  278. #define  ID_SOUND       226            /* soundex expansion           */
  279. #define  ID_THESNAME    227            /* thesaurus name              */
  280. #define  ID_THESDEPTH   228            /* depth of thesaurus expansion*/
  281.  
  282. #define  ID_NOSEQ       230            /* no sequence of words        */
  283. #define  ID_BOUND       232            /* resp. Hanguel word boundary */
  284. #define  ID_CSENS       233            /* case sensitive srch for GTR */
  285. #define  ID_ESTEM       234            /* english stemming srch (GTR) */
  286. #define  ID_INFLECT     235            /* use inflections of word     */
  287.  
  288. /* defines for attribute search  */
  289. #define  ID_ATTRIB      240            /* block delimiter             */
  290. #define  ID_COND        241            /* comparison specification    */
  291. #define  ID_EQ          242            /* equality                    */
  292. #define  ID_GE          243            /* greater equal               */
  293. #define  ID_LE          244            /* less equal                  */
  294. #define  ID_GT          245            /* greater than                */
  295. #define  ID_LT          246            /* less than                   */
  296.  
  297.  
  298. #define  ID_CSM         350            /* -- mask: character sequence */
  299. #define  ID_RCM         360            /* -- mask: required character */
  300. #define  ID_FARG        380            /* -- free text search argument*/
  301.                                        /* document / browse items:    */
  302. #define  ID_DOC         410            /* -- document delimiter       */
  303. #define  ID_DNAM        415            /* -- document name            */
  304. #define  ID_DEL         420            /*   -- doc element delimiter  */
  305. #define  ID_SNAM         80            /*     -- section name         */
  306. #define  ID_PAR         430            /*     -- paragraph delimiter  */
  307. #define  ID_TEXT        440            /*       -- text portion       */
  308. #define  ID_NL          444            /*       -- new line indicator */
  309. #define  ID_LINK        446            /*       -- hypermedia ref     */
  310. #define  ID_MATCH       450            /*       -- hit information    */
  311. #define  ID_SSP         480            /* sort criterion              */
  312. #define  ID_SOA         490            /* -- ascending sort order     */
  313. #define  ID_SOD         500            /* -- descending sort order    */
  314. #define  ID_SFID        502            /* -- sort field identifier    */
  315. #define     SFID_RVAL        0x01      /*    -- sort by rank value    */
  316. #define     SFID_DNAM        0x02      /*    -- sort by document name */
  317. #define     SFID_XNAM        0x04      /*    -- sort by index name    */
  318. #define     SFID_DSIZE       0x08      /*    -- sort by document size */
  319. #define     SFID_RCNT        0x10      /*    -- sort by rank count    */
  320. #define  ID_TSRT        506            /* -- number of top sorted docs*/
  321. #define  ID_RNKT        507            /* -- rank threshold           */
  322. #define  ID_RCTT        508            /* -- rank count threshold     */
  323.                                        /* other items:                */
  324. #define  ID_ADD         510            /* -- doc to be added to index */
  325. #define  ID_REM         520            /* -- doc to be removed from x */
  326. #define  ID_RVAL        536            /* -- rank value               */
  327. #define  ID_RCNT        537            /* -- rank count               */
  328. #define  ID_DSIZE       538            /* -- # of words in document   */
  329. #define  ID_XRC         539            /* -- index specific rc        */
  330. #define  ID_DRELV       540            /* -- relevance value (default)*/
  331. #define  ID_RELV        541            /* -- relevance value (single) */
  332.                                        /*                             */
  333. #define  ID_XMSG        550            /* indexing msg info delimiter */
  334. #define  ID_REASON      551            /* indexing msg reason         */
  335. #define  ID_TSTMP       552            /* time stamp                  */
  336.                                        /* doc information table items */
  337. #define  ID_DFLTRULE    555            /* --- default rule delimiter  */
  338. #define  ID_DFMT        556            /* --- document format         */
  339. #define  ID_DOCMOD      557            /* --- document model          */
  340. #define  ID_MODLST      558            /* --- list of document models */
  341. #define  ID_SECELST     559            /* --- section entry list      */
  342. #define  ID_SECTAG      561            /* --- section tag in a model  */
  343. #define  ID_CASE_IGNORE 562            /* --- case insensitive model  */
  344.  
  345. #define  ID_DGRP        701
  346. #define  ID_INNODE      702
  347. #define  ID_ICSIM       703
  348. #define  ID_NBCHILD     704
  349. #define  ID_TNBCHILD    705
  350. #define  ID_TITLE       706
  351. #define  ID_LA          707
  352. #define  ID_LEAF        708
  353. #define  ID_LAPROF      711
  354. #define  ID_NBIT        712
  355. #define  ID_NORM        713
  356. #define  ID_FREQ        714
  357. #define  ID_CLCRIT      721
  358. #define  ID_DREG        722            /* deregistration indicator p1*/
  359.  
  360. /*--------------------------------------------------------------------*/
  361. /*  Item Types                                                        */
  362. /*--------------------------------------------------------------------*/
  363. #define  IT_START       0xE2           /* start item                  */
  364. #define  IT_END         0xC5           /* end item                    */
  365. #define  IT_ATOMIC      0xC1           /* atomic item                 */
  366.  
  367. /*--------------------------------------------------------------------*/
  368. /*  Coded Character Set Identfiers and Language Identifiers           */
  369. /*--------------------------------------------------------------------*/
  370. #include "imolang.h"                   /* CCSID/language definitions  */
  371.  
  372. /*--------------------------------------------------------------------*/
  373. /*  Processing Conditions                                             */
  374. /*--------------------------------------------------------------------*/
  375.                                        /* get document text and hits  */
  376. #define  MATCH_FAST             0      /* -- without dictionary       */
  377. #define  MATCH_EXTENDED         1      /* -- use dictionary           */
  378.                                        /* function identifiers        */
  379. #define  FCT_SEARCH_INDEX       1      /* -- search index             */
  380. #define  FCT_SCHEDULE_DOCUMENTS 2      /* -- schedule docs            */
  381. #define  FCT_INDEX_DOCUMENTS    3      /* -- index documents          */
  382. #define  FCT_MERGE_INDEX        4      /* -- reorganise index         */
  383.                                        /* status actions              */
  384. #define  ACT_ENABLE             1      /* -- enable function          */
  385. #define  ACT_DISABLE            2      /* -- disable function         */
  386. #define  ACT_RESET              3      /* -- reset fct in error       */
  387.  
  388. #define  SUSP_ALL            0         /* -- all requests             */
  389. #define  SUSP_EXCEPT_SEARCH  1         /* -- all except search        */
  390.  
  391.  
  392.  
  393. /*--------------------------------------------------------------------*/
  394. /*  Structure of Datastream Item                                      */
  395. /*--------------------------------------------------------------------*/
  396. struct Data_Item                       /* Datastream Item             */
  397.   {
  398.   unsigned short        ll;            /* -- item length              */
  399.   unsigned short        id;            /* -- item identifier          */
  400.   unsigned char         it;            /* -- item type                */
  401.   unsigned char         value[1];      /* -- item value (if any)      */
  402.   };
  403.  
  404. /*--------------------------------------------------------------------*/
  405. /*  Macro Definitions for datastream item length, id, value (2 bytes) */
  406. /*--------------------------------------------------------------------*/
  407.  
  408. #if defined(EHW_LITTLE_ENDIAN)
  409.  
  410. #define  VAL2(ptr)   (unsigned short )                                 \
  411.                      (((((const unsigned char *)(ptr))[0]) << 8) +     \
  412.                         ((const unsigned char *)(ptr))[1])
  413.  
  414. #define  VAL4(ptr)   (((((unsigned long)                               \
  415.                         (((const unsigned char *)(ptr))[0])  << 8) +   \
  416.                         ((((const unsigned char *)(ptr))[1])) << 8) +  \
  417.                         ((((const unsigned char *)(ptr))[2])) << 8) +  \
  418.                           ((const unsigned char *)(ptr))[3])
  419.  
  420. #define  ID(id)      ((unsigned short )(((id) - (unsigned short )      \
  421.                      (((id) / 256) * 256)) * 256) + ((id) / 256))
  422.  
  423. #else    /* EHW_BIG_ENDIAN */
  424.  
  425. #if defined( _HP_UX)
  426. #define  VAL2(ptr)   (unsigned short )                               \
  427.                      (((unsigned char *)(ptr))[0]  * 256 +           \
  428.                       ((unsigned char *)(ptr))[1] )
  429.  
  430. #define  VAL4(ptr)   (unsigned long )                                \
  431.                      (((((unsigned char *)(ptr))[0]  * 256L +        \
  432.                         ((unsigned char *)(ptr))[1]) * 256L +        \
  433.                         ((unsigned char *)(ptr))[2]) * 256L +        \
  434.                         ((unsigned char *)(ptr))[3])
  435. #else
  436. #define  VAL2(ptr)   (*(unsigned short *)(ptr))
  437.  
  438. #define  VAL4(ptr)   (*(unsigned long *)(ptr))
  439. #endif
  440.  
  441. #define  ID(id)      (id)
  442.  
  443. #endif
  444.  
  445. /*--------------------------------------------------------------------*/
  446. /*  API Services - parameter definitions                              */
  447. /*--------------------------------------------------------------------*/
  448. #define  HDL_NULL         0            /* null handle                 */
  449.  
  450. /*--------------------------------------------------------------------*/
  451. /*  API Services - calling conventions                                */
  452. /*--------------------------------------------------------------------*/
  453. #if defined(__WINDOWS__) || defined(_WIN32)
  454.    #if defined(_WIN32)
  455.       #define  APICALL                 __cdecl
  456.    #else
  457.       #define  APICALL                 FAR PASCAL
  458.    #endif
  459. #elif defined(__UNIX__) || defined(_AIX) || defined(_HP_UX) || defined(__SOLARIS__) \
  460.        || defined(AS400) || defined(__USLC__)
  461. #define  APICALL
  462. #else
  463. #define  APICALL                    _System
  464. #endif
  465.  
  466. /*--------------------------------------------------------------------*/
  467. /*  API Services - mapping of external names to uppercase             */
  468. /*--------------------------------------------------------------------*/
  469. #define  EhwAddQueryScope              EHWADDQUERYSCOPE
  470. #define  EhwAssignRelevance            EHWASSIGNRELEVANCE
  471. #define  EhwBrowseDocument             EHWBROWSEDOCUMENT
  472. #define  EhwCancelContinuation         EHWCANCELCONTINUATION
  473. #define  EhwClearIndex                 EHWCLEARINDEX
  474. #define  EhwClearScheduledDocuments    EHWCLEARSCHEDULEDDOCUMENTS
  475. #define  EhwCloseDocument              EHWCLOSEDOCUMENT
  476. #define  EhwCloseIndex                 EHWCLOSEINDEX
  477. #define  EhwClusterResultView          EHWCLUSTERRESULTVIEW
  478. #define  EhwCreateDocumentModel        EHWCREATEDOCUMENTMODEL
  479. #define  EhwCreateIndex                EHWCREATEINDEX
  480. #define  EhwCreateIndexGroup           EHWCREATEINDEXGROUP
  481. #define  EhwCreateResultView           EHWCREATERESULTVIEW
  482. #define  EhwDelIndexingMsgs            EHWDELINDEXINGMSGS
  483. #define  EhwDeleteCluster              EHWDELETECLUSTER
  484. #define  EhwDeleteDocumentModel        EHWDELETEDOCUMENTMODEL
  485. #define  EhwDeleteIndex                EHWDELETEINDEX
  486. #define  EhwDeleteIndexGroup           EHWDELETEINDEXGROUP
  487. #define  EhwDeleteResult               EHWDELETERESULT
  488. #define  EhwDeleteResultView           EHWDELETERESULTVIEW
  489. #define  EhwRegisterIndex              EHWREGISTERINDEX
  490. #define  EhwDeregisterIndex            EHWDEREGISTERINDEX
  491. #define  EhwEndBrowseSession           EHWENDBROWSESESSION
  492. #define  EhwEndSession                 EHWENDSESSION
  493. #define  EhwGetBrowseData              EHWGETBROWSEDATA
  494. #define  EhwGetCluster                 EHWGETCLUSTER
  495. #define  EhwGetDefaultDocumentModel    EHWGETDEFAULTDOCUMENTMODEL
  496. #define  EhwGetDocumentModel           EHWGETDOCUMENTMODEL
  497. #define  EhwGetIndexingMsgs            EHWGETINDEXINGMSGS
  498. #define  EhwGetIndexingRules           EHWGETINDEXINGRULES
  499. #define  EhwGetIndexFunctionStatus     EHWGETINDEXFUNCTIONSTATUS
  500. #define  EhwGetIndexInfo               EHWGETINDEXINFO
  501. #define  EhwGetIndexStatus             EHWGETINDEXSTATUS
  502. #define  EhwGetMatches                 EHWGETMATCHES
  503. #define  EhwGetProblemInfo             EHWGETPROBLEMINFO
  504. #define  EhwGetProfile                 EHWGETPROFILE
  505. #define  EhwGetResultView              EHWGETRESULTVIEW
  506. #define  EhwGetSimilarDocuments        EHWGETSIMILARDOCUMENTS
  507. #define  EhwListDocumentModels         EHWLISTDOCUMENTMODELS
  508. #define  EhwListIndexes                EHWLISTINDEXES
  509. #define  EhwListResult                 EHWLISTRESULT
  510. #define  EhwListServers                EHWLISTSERVERS
  511. #define  EhwNarrowQuery                EHWNARROWQUERY
  512. #define  EhwOpenDocument               EHWOPENDOCUMENT
  513. #define  EhwOpenIndex                  EHWOPENINDEX
  514. #define  EhwRank                       EHWRANK
  515. #define  EhwReorgIndex                 EHWREORGINDEX
  516. #define  EhwResumeIndex                EHWRESUMEINDEX
  517. #define  EhwScheduleDocument           EHWSCHEDULEDOCUMENT
  518. #define  EhwSelectResultView           EHWSELECTRESULTVIEW
  519. #define  EhwSearch                     EHWSEARCH
  520. #define  EhwSetDefaultDocumentModel    EHWSETDEFAULTMDOCUMENTODEL
  521. #define  EhwSetIndexingRules           EHWSETINDEXINGRULES
  522. #define  EhwSetIndexFunctionStatus     EHWSETINDEXFUNCTIONSTATUS
  523. #define  EhwSort                       EHWSORT
  524. #define  EhwStartBrowseSession         EHWSTARTBROWSESESSION
  525. #define  EhwStartSession               EHWSTARTSESSION
  526. #define  EhwStopServer                 EHWSTOPSERVER
  527. #define  EhwSuspendIndex               EHWSUSPENDINDEX
  528. #define  EhwUpdateIndex                EHWUPDATEINDEX
  529.  
  530. #define  EhwCreateResultList           EHWCREATERESULTVIEW
  531. #define  EhwDeleteResultList           EHWDELETERESULTVIEW
  532. #define  EhwGetResultList              EHWGETRESULTVIEW
  533. #define  EhwSelectResultList           EHWSELECTRESULTVIEW
  534.  
  535. #define  RC_RESULT_LIST_EXISTS         RC_RESULT_VIEW_EXISTS
  536. /*--------------------------------------------------------------------*/
  537. /*  API Services - prototype statements                               */
  538. /*--------------------------------------------------------------------*/
  539. #ifdef  __cplusplus
  540. extern "C"
  541. {
  542. #endif
  543.  
  544. unsigned long
  545. APICALL  EhwAddQueryScope              /* Add Query scope             */
  546.   (
  547.   void             * pSession,         /* In  -- session pointer      */
  548.   unsigned long      ulIndexGrHandle,  /* In  -- index group handle   */
  549.   unsigned long      ulDataLength,     /* Out -- datastream length    */
  550.   char             * pDataStream,      /* Out -- document text        */
  551.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  552.   );                                   /* function value: return code */
  553.  
  554. unsigned long
  555. APICALL  EhwAssignRelevance           /* Assign a relevance value to a  */
  556.                                       /* document or result list        */
  557.   (
  558.     void               *pvSession,       /* In  -- session pointer      */
  559.     unsigned long      ulHandle,         /* In  -- handle resultview/doc*/
  560.     unsigned long      ulDataLength,     /* In  -- ds length (bytes)    */
  561.     char               *pDataStream,     /* In  -- pointer to ds        */
  562.     unsigned long      *pDiagInfo        /* Out -- diagnosis info.      */
  563.   );
  564.  
  565. unsigned long
  566. APICALL  EhwBrowseDocument             /* Browse Document             */
  567.   (
  568.   void             * pSession,         /* In  -- session pointer      */
  569.   unsigned long      ulResultHandle,   /* In  -- result handle        */
  570.   unsigned long      ulLanguageId,     /* In  -- language identifier  */
  571.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  572.   char             * pDataStream,      /* In  -- browse specifications*/
  573.   unsigned long    * pulWindowHandle,  /* In/Out window handle        */
  574.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  575.   );                                   /* function value: return code */
  576.  
  577. unsigned long
  578. APICALL  EhwCancelContinuation         /* Cancel Continuation Mode    */
  579.   (
  580.   void             * pSession,         /* In  -- session pointer      */
  581.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  582.   );                                   /* function value: return code */
  583.  
  584. unsigned long
  585. APICALL  EhwClearIndex                 /* Clear Index                 */
  586.   (
  587.   void             * pSession,         /* In  -- session pointer      */
  588.   unsigned long      ulIndexHandle,    /* In  -- index handle         */
  589.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  590.   );                                   /* function value: return code */
  591.  
  592. unsigned long
  593. APICALL  EhwClearScheduledDocuments    /* Clear scheduled documents   */
  594.   (
  595.   void             * pSession,         /* In  -- session pointer      */
  596.   unsigned long      ulIndexHandle,    /* In  -- index handle         */
  597.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  598.   );                                   /* function value: return code */
  599.  
  600. unsigned long
  601. APICALL  EhwCloseDocument              /* Close Document              */
  602.   (
  603.   void             * pSession,         /* In  -- session pointer      */
  604.   unsigned long      ulDocumentHandle, /* In  -- document handle      */
  605.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  606.   );                                   /* function value: return code */
  607.  
  608. unsigned long
  609. APICALL  EhwCloseIndex                 /* Close Index                 */
  610.   (
  611.   void             * pSession,         /* In  -- session pointer      */
  612.   unsigned long      ulIndexHandle,    /* In  -- index handle         */
  613.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  614.   );                                   /* function value: return code */
  615.  
  616. unsigned long
  617. APICALL  EhwClusterResultView          /* Cluster Result View         */
  618.   (
  619.   void             * pSession,         /* In  -- session pointer      */
  620.   unsigned long      ulRViewHandle,    /* In  -- result view handle   */
  621.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  622.   );                                   /* function value: return code */
  623.  
  624. unsigned long
  625. APICALL  EhwCreateDocumentModel        /* Create a new Document Model */
  626.   (
  627.   void             *session_ptr,       /* In  -- session pointer      */
  628.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  629.   unsigned long    ulDataLength,       /* In  -- length of datastream */
  630.   char             *pDataStream,       /* In  -- datastream           */
  631.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  632.   );                                   /* function value: return_code */
  633.  
  634. unsigned long
  635. APICALL  EhwCreateIndex                /* Create Index                */
  636.   (
  637.   void             * pSession,         /* In  -- session pointer      */
  638.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  639.   char             * pDataStream,      /* In  -- index information    */
  640.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  641.   );                                   /* function value: return code */
  642.  
  643. unsigned long
  644. APICALL  EhwRegisterIndex              /* Register Index              */
  645.   (
  646.   void             * pSession,         /* In  -- session pointer      */
  647.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  648.   char             * pDataStream,      /* In  -- index information    */
  649.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  650.   char            ** ppDataStream,     /* Out -- index name           */
  651.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  652.   );                                   /* function value: return code */
  653.  
  654. unsigned long
  655. APICALL  EhwCreateIndexGroup           /* Create Index Group          */
  656.   (
  657.   void             * pSession,         /* In  -- session pointer      */
  658.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  659.   char             * pDataStream,      /* In  -- index information    */
  660.   unsigned long    * pulGroupHandle,   /* Out -- index group handle   */
  661.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  662.   );                                   /* function value: return code */
  663.  
  664. unsigned long
  665. APICALL  EhwCreateResultView           /* Create Result View          */
  666.   (
  667.   void             * pSession,         /* In  -- session pointer      */
  668.   unsigned long      ulResultHandle,   /* In  -- result handle        */
  669.   unsigned long    * pulResViewHandle, /* Out -- result view handle   */
  670.   unsigned long    * pulResViewSize,   /* Out -- size of result list  */
  671.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  672.   );                                   /* function value: return code */
  673.  
  674. unsigned long
  675. APICALL EhwDeleteCluster               /* Delete Cluster              */
  676.   (
  677.   void             *session_ptr,       /* In  -- session pointer      */
  678.   unsigned long     rlist_hdl,         /* In  -- result list handle   */
  679.   unsigned long    *info_ptr           /* Out -- diagnosis info       */
  680.   ) ;                                  /* function value: return_code */
  681.  
  682. unsigned long
  683. APICALL  EhwDeleteDocumentModel        /* Delete a Document Model     */
  684.   (
  685.   void             *session_ptr,       /* In  -- session pointer      */
  686.   unsigned long    ulDataLength,       /* In  -- length of datastream */
  687.   char             *pDataStream,       /* In  -- datastream           */
  688.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  689.   );                                   /* function value: return_code */
  690.  
  691. unsigned long
  692. APICALL  EhwDeleteIndex                /* Delete Index                */
  693.   (
  694.   void             * pSession,         /* In  -- session pointer      */
  695.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  696.   char             * pDataStream,      /* In  -- index information    */
  697.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  698.   );                                   /* function value: return code */
  699.  
  700.  
  701. unsigned long
  702. APICALL  EhwDeregisterIndex            /* Deregister Index            */
  703.   (
  704.   void             * pSession,         /* In  -- session pointer      */
  705.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  706.   char             * pDataStream,      /* In  -- index information    */
  707.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  708.   );
  709.  
  710. unsigned long
  711. APICALL  EhwDeleteIndexGroup           /* Delete Index Group          */
  712.   (
  713.   void             * pSession,         /* In  -- session pointer      */
  714.   unsigned long      ulIndexGrHandle,  /* In  -- index handle         */
  715.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  716.   );                                   /* function value: return code */
  717.  
  718. unsigned long
  719. APICALL  EhwDeleteResult               /* Delete Result               */
  720.   (
  721.   void             * pSession,         /* In  -- session pointer      */
  722.   unsigned long      ulHandle,         /* In  -- result/index handle  */
  723.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  724.   );                                   /* function value: return code */
  725.  
  726. /* new api-syntax, effective May '97 */
  727. unsigned long
  728. APICALL  EhwDelIndexingMsgs            /* Delete Indexing Messages    */
  729.   (
  730.   void             *session_ptr,       /* In  -- session pointer      */
  731.   unsigned long    ulIndexHandle,      /* In  -- index handle         */
  732.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  733.   );                                   /* function value: return_code */
  734.  
  735. unsigned long
  736. APICALL  EhwDeleteResultView           /* Delete a result view        */
  737.   (
  738.   void             * pSession,         /* In  -- session pointer      */
  739.   unsigned long      ulHandle,         /* In  -- result list  handle  */
  740.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  741.   );                                   /* function value: return code */
  742.  
  743. unsigned long
  744. APICALL  EhwEndBrowseSession           /* End Browse Session          */
  745.   (
  746.   void             * pSession,         /* In  -- session pointer      */
  747.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  748.   );                                   /* function value: return code */
  749.  
  750. unsigned long
  751. APICALL  EhwEndSession                 /* End Session                 */
  752.   (
  753.   void             * pSession,         /* In  -- session pointer      */
  754.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  755.   );                                   /* function value: return code */
  756.  
  757. unsigned long
  758. APICALL  EhwGetBrowseData              /* Get Browse Data             */
  759.   (
  760.   void             * pSession,         /* In  -- session pointer      */
  761.   unsigned long      ulResultHandle,   /* In  -- result handle        */
  762.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  763.   char            ** ppDataStream,     /* Out -- browse data          */
  764.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  765.   );                                   /* function value: return_code */
  766.  
  767. unsigned long
  768. APICALL  EhwGetCluster                 /* Get Cluster                 */
  769.   (
  770.   void             *session_ptr,       /* In  -- session pointer      */
  771.   unsigned long    ulRViewHandle,      /* In  -- result view handle   */
  772.   unsigned long    *pDataLength,       /* Out -- length of datastream */
  773.   char             **ppDataStream,     /* Out -- datastream           */
  774.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  775.   );                                   /* function value: return_code */
  776.  
  777. unsigned long
  778. APICALL  EhwGetDefaultDocumentModel    /* Get Default Document Model  */
  779.   (
  780.   void             *session_ptr,       /* In  -- session pointer      */
  781.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  782.   unsigned long    *pDataLength,       /* Out -- length of datastream */
  783.   char             **ppDataStream,     /* Out -- datastream           */
  784.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  785.   );                                   /* function value: return_code */
  786.  
  787. unsigned long
  788. APICALL  EhwGetDocumentModel           /* Get a Document Model        */
  789.   (
  790.   void             *session_ptr,       /* In  -- session pointer      */
  791.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  792.   unsigned long    ulDataLength,       /* In  -- length of datastream */
  793.   char             *pDataStream,       /* In  -- datastream (name)    */
  794.   unsigned long    *pDataLength,       /* Out -- length of datastream */
  795.   char             **ppDataStream,     /* Out -- datastream (model)   */
  796.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  797.   );                                   /* function value: return_code */
  798.  
  799. unsigned long
  800. APICALL  EhwGetIndexingMsgs            /* Get Indexing Messages       */
  801.   (
  802.   void             *session_ptr,       /* In  -- session pointer      */
  803.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  804.   unsigned long    *pDataLength,       /* Out -- length of datastream */
  805.   char             **ppDataStream,     /* Out -- datastream           */
  806.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  807.   );                                   /* function value: return_code */
  808.  
  809. unsigned long
  810. APICALL  EhwGetIndexingRules           /* Get Indexing Rules          */
  811.   (
  812.   void             *session_ptr,       /* In  -- session pointer      */
  813.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  814.   unsigned long    *pDataLength,       /* Out -- length of datastream */
  815.   char             **ppDataStream,     /* Out -- datastream           */
  816.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  817.   );                                   /* function value: return_code */
  818.  
  819. unsigned long
  820. APICALL  EhwGetIndexFunctionStatus     /* Get status of a function    */
  821.   (
  822.    void            *session_ptr,       /* In  -- session pointer      */
  823.    unsigned long   ulIndexHandle,      /* In  -- index_handle         */
  824.    unsigned long   function_id,        /* In  -- function id          */
  825.    unsigned long   *pDataLength,       /* Out -- datastream length    */
  826.    char            **ppDataStream,     /* Out -- admin. function info */
  827.    unsigned long   *pulDiagnosisInfo   /* Out -- diagnosis info       */
  828.   );                                   /* function value: return_code */
  829.  
  830. unsigned long
  831. APICALL  EhwGetIndexInfo               /* Get Index Information       */
  832.   (
  833.   void             * pSession,         /* In  -- session pointer      */
  834.   unsigned long      ulIndexHandle,    /* In  -- index handle         */
  835.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  836.   char            ** ppDataStream,     /* Out -- index list           */
  837.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  838.   );                                   /* function value: return code */
  839.  
  840. unsigned long
  841. APICALL  EhwGetIndexStatus             /* Get Index Status            */
  842.   (
  843.   void             *session_ptr,       /* In  -- session pointer      */
  844.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  845.   unsigned long    *pDataLength,       /* Out -- length of datastream */
  846.   char             **ppDataStream,     /* Out -- datastream           */
  847.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  848.   );                                   /* function value: return_code */
  849.  
  850. unsigned long
  851. APICALL  EhwGetMatches                 /* Get Document Text and Hits  */
  852.   (
  853.   void             * pSession,         /* In  -- session pointer      */
  854.   unsigned long      ulDocumentHandle, /* In  -- document handle      */
  855.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  856.   char            ** ppDataStream,     /* Out -- document text        */
  857.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  858.   );                                   /* function value: return code */
  859.  
  860. unsigned long
  861. APICALL  EhwGetProblemInfo             /* Get Index Error RCs         */
  862.   (
  863.   void             * pSession,         /* In  -- session pointer      */
  864.   unsigned long      ulProblemHandle,  /* In  -- handle               */
  865.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  866.   char            ** ppDataStream,     /* Out -- document text        */
  867.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  868.   );                                   /* function value: return code */
  869.  
  870. unsigned long
  871. APICALL  EhwGetProfile                 /* Get Profile                 */
  872.   (
  873.   void             *session_ptr,       /* In  -- session pointer      */
  874.   unsigned long    ulRViewHandle,      /* In  -- result view handle   */
  875.   unsigned long    ulDataLength,       /* In  -- length of datastream */
  876.   char             *pDataStream,       /* In  -- datastream: doc id   */
  877.   unsigned long    *pulDataLength,     /* Out -- length of datastream */
  878.   char             **ppDataStream,     /* Out -- datastream           */
  879.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  880.   );                                   /* function value: return_code */
  881.  
  882. unsigned long
  883. APICALL  EhwGetResultView              /* Get Result View             */
  884.   (
  885.   void             * pSession,         /* In  -- session pointer      */
  886.   unsigned long      ulResViewHandle,  /* In  -- result view handle   */
  887.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  888.   char            ** ppDataStream,     /* Out -- result view          */
  889.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  890.   );                                   /* function value: return code */
  891.  
  892. unsigned long
  893. APICALL  EhwGetSimilarDocuments        /* Get Similar Documents       */
  894.   (
  895.   void             *session_ptr,       /* In  -- session pointer      */
  896.   unsigned long    ulRViewHandle,      /* In  -- result view handle   */
  897.   unsigned long    ulDataLength,       /* In  -- length of datastream */
  898.   char             *pDataSream,        /* In  -- ds: similarity value */
  899.   unsigned long    *pulDataLength,     /* Out -- length of datastream */
  900.   char             **ppDataStream,     /* Out -- datastream           */
  901.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  902.   );                                   /* function value: return_code */
  903.  
  904. unsigned long
  905. APICALL  EhwListDocumentModels         /* List Document Models        */
  906.   (
  907.   void             *session_ptr,       /* In  -- session pointer      */
  908.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  909.   unsigned long    *pDataLength,       /* Out -- length of datastream */
  910.   char             **ppDataStream,     /* Out -- datastream           */
  911.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  912.   );                                   /* function value: return_code */
  913.  
  914. unsigned long
  915. APICALL  EhwListIndexes                /* List Indexes                */
  916.   (
  917.   void             * pSession,         /* In  -- session pointer      */
  918.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  919.   char            ** ppDataStream,     /* Out -- index list           */
  920.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  921.   );                                   /* function value: return code */
  922.  
  923. unsigned long
  924. APICALL  EhwListResult                 /* List Result                 */
  925.   (
  926.   void             * pSession,         /* In  -- session pointer      */
  927.   unsigned long      ulResultHandle,   /* In  -- result handle        */
  928.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  929.   char            ** ppDataStream,     /* Out -- result information   */
  930.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  931.   );                                   /* function value: return code */
  932.  
  933.  
  934. unsigned long
  935. APICALL  EhwListServers                /* List Servers                */
  936.   (
  937.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  938.   char            ** ppDataStream,     /* Out -- server list          */
  939.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  940.   );                                   /* function value: return code */
  941.  
  942.  
  943. unsigned long
  944. APICALL  EhwNarrowQuery
  945. (
  946.   void               *pvSession,       /* In  -- session pointer      */
  947.   unsigned long      ulResultHandle,   /* In  -- result handle        */
  948.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  949.   char            ** ppDataStream,     /* Out -- data stream          */
  950.   unsigned long      *pulDiagnosisInfo /* Out -- diagnosis info.      */
  951. );
  952.  
  953.  
  954. unsigned long
  955. APICALL  EhwOpenDocument               /* Open Document               */
  956.   (
  957.   void             * pSession,         /* In  -- session pointer      */
  958.   unsigned long      ulResultHandle,   /* In  -- result handle        */
  959.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  960.   char             * pDataStream,      /* In  -- browse specifications*/
  961.   unsigned long      ulCondition,      /* In  -- processing condition */
  962.   unsigned long    * pulDocumentHandle,/* Out -- document handle      */
  963.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  964.   );                                   /* function value: return code */
  965.  
  966. unsigned long
  967. APICALL  EhwOpenIndex                  /* Open Index                  */
  968.   (
  969.   void             * pSession,         /* In  -- session pointer      */
  970.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  971.   char             * pDataStream,      /* In  -- index info (name)    */
  972.   unsigned long    * pulIndexHandle,   /* Out -- index handle         */
  973.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  974.   );                                   /* function value: return code */
  975.  
  976. unsigned long
  977. APICALL  EhwRank                       /* Rank Result Information     */
  978.   (
  979.   void             * pSession,         /* In  -- session pointer      */
  980.   unsigned long      ulResultHandle,   /* In  -- result handle        */
  981.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  982.   );                                   /* function value: return code */
  983.  
  984. unsigned long
  985. APICALL  EhwRegisterIndex              /* Register Index              */
  986.   (
  987.   void             * pSession,         /* In  -- session pointer      */
  988.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  989.   char             * pDataStream,      /* In  -- index information    */
  990.   unsigned long    * pulDataLength,    /* Out -- datastream length    */
  991.   char            ** ppDataStream,     /* Out -- index name           */
  992.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  993.   );                                   /* function value: return code */
  994.  
  995. unsigned long
  996. APICALL  EhwReorgIndex                 /* Reorganize Index            */
  997.   (
  998.   void             * pSession,         /* In  -- session pointer      */
  999.   unsigned long      ulIndexHandle,    /* In  -- index handle         */
  1000.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1001.   );                                   /* function value: return code */
  1002.  
  1003. unsigned long
  1004. APICALL  EhwResumeIndex                /* Resume Index                */
  1005.   (
  1006.   void             * pSession,         /* In  -- session pointer      */
  1007.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  1008.   char             * pDataStream,      /* In  -- index information    */
  1009.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1010.   );                                   /* function value: return code */
  1011.  
  1012. unsigned long
  1013. APICALL  EhwScheduleDocument           /* Schedule Document           */
  1014.   (
  1015.   void             * pSession,         /* In  -- session pointer      */
  1016.   unsigned long      ulIndexHandle,    /* In  -- index handle         */
  1017.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  1018.   char             * pDataStream,      /* In  -- scheduling list      */
  1019.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1020.   );                                   /* function value: return code */
  1021.  
  1022. unsigned long
  1023. APICALL  EhwSearch                     /* Search Index                */
  1024.   (
  1025.   void             * pSession,         /* In  -- session pointer      */
  1026.   unsigned long      ulIndexHandle,    /* In  -- index handle         */
  1027.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  1028.   char             * pDataStream,      /* In  -- query                */
  1029.   unsigned long    * pulResultHandle,  /* Out -- result handle        */
  1030.   unsigned long    * pulResultSize,    /* Out -- result size          */
  1031.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1032.   );                                   /* function value: return code */
  1033.  
  1034. unsigned long
  1035. APICALL  EhwSelectResultView           /* Select Result View          */
  1036.   (
  1037.   void             * pSession,         /* In  -- session pointer      */
  1038.   unsigned long      ulResViewHandle,  /* In  -- result view handle   */
  1039.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  1040.   char             * pDataStream,      /* In  -- selection parameters */
  1041.   unsigned long    * pulResViewHandle, /* Out -- result view handle   */
  1042.   unsigned long    * pulResViewSize,   /* Out -- size of result view  */
  1043.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1044.   );                                   /* function value: return code */
  1045.  
  1046. unsigned long
  1047. APICALL  EhwSetDefaultDocumentModel    /* Set Default Document Model  */
  1048.   (
  1049.   void             *session_ptr,       /* In  -- session pointer      */
  1050.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  1051.   unsigned long    ulDataLength,       /* In  -- length of datastream */
  1052.   char             *pDataStream,       /* In  -- datastream           */
  1053.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  1054.   );                                   /* function value: return_code */
  1055.  
  1056. unsigned long
  1057. APICALL  EhwSetIndexingRules           /* Set Indexing Rules          */
  1058.   (
  1059.   void             *session_ptr,       /* In  -- session pointer      */
  1060.   unsigned long    ulIndexHandle,      /* In  -- index_handle         */
  1061.   unsigned long    ulDataLength,       /* In  -- length of datastream */
  1062.   char             *pDataStream,       /* In  -- datastream           */
  1063.   unsigned long    *pulDiagnosisInfo   /* Out -- diagnosis info       */
  1064.   );                                   /* function value: return_code */
  1065.  
  1066. unsigned long
  1067. APICALL  EhwSetIndexFunctionStatus     /* set status of a function    */
  1068.   (
  1069.    void            *session_ptr,       /* In  -- session pointer      */
  1070.    unsigned long   ulIndexHandle,      /* In  -- index_handle         */
  1071.    unsigned long   function_id,        /* In  -- function id          */
  1072.    unsigned long   action_id,          /* In  -- action requested     */
  1073.    unsigned long   *pulDiagnosisInfo   /* Out -- diagnosis info       */
  1074.   );                                   /* function value: return_code */
  1075.  
  1076.  
  1077. unsigned long
  1078. APICALL  EhwSort                       /* Sort Result Information     */
  1079.   (
  1080.   void             * pSession,         /* In  -- session pointer      */
  1081.   unsigned long      ulResultHandle,   /* In  -- result handle        */
  1082.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  1083.   char             * pDataStream,      /* In  -- sort specifications  */
  1084.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1085.   );                                   /* function value: return code */
  1086.  
  1087. unsigned long
  1088. APICALL  EhwStartBrowseSession         /* Start Browse Session        */
  1089.   (
  1090.   unsigned long      pulDataLength,    /* In  -- datastream length    */
  1091.   char             * pDataStream,      /* In  -- browse data          */
  1092.   void            ** ppSession,        /* Out -- session pointer      */
  1093.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1094.   );                                   /* function value: return_code */
  1095.  
  1096. unsigned long
  1097. APICALL  EhwStartSession               /* Start Session               */
  1098.   (
  1099.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  1100.   char             * pDataStream,      /* In  -- session information  */
  1101.   void            ** ppSession,        /* Out -- session pointer      */
  1102.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1103.   );                                   /* function value: return code */
  1104.  
  1105. unsigned long
  1106. APICALL  EhwStopServer                 /* Stop Server                 */
  1107.   (
  1108.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  1109.   char             * pDataStream,      /* In  -- session information  */
  1110.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1111.   );                                   /* function value: return code */
  1112.  
  1113. unsigned long
  1114. APICALL  EhwSuspendIndex               /* Suspend Index               */
  1115.   (
  1116.   void             * pSession,         /* In  -- session pointer      */
  1117.   unsigned long      ulDataLength,     /* In  -- datastream length    */
  1118.   char             * pDataStream,      /* In  -- index information    */
  1119.   unsigned long      ulSuspendCond,    /* In  -- suspend condition    */
  1120.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1121.   );                                   /* function value: return code */
  1122.  
  1123. unsigned long
  1124. APICALL  EhwUpdateIndex                /* Update Index                */
  1125.   (
  1126.   void             * pSession,         /* In  -- session pointer      */
  1127.   unsigned long      ulIndexHandle,    /* In  -- index handle         */
  1128.   unsigned long    * pulDiagnosisInfo  /* Out -- diagnosis info       */
  1129.   );                                   /* function value: return code */
  1130. #ifdef  __cplusplus
  1131. }
  1132. #endif
  1133.  
  1134. /*
  1135.  The following defines refer to the feature index which is no longer
  1136.  supported.
  1137.  They remain in here to enable compilation of old applications - but code
  1138.  actually using them will no longer run.
  1139. */
  1140.  
  1141. #define    XTADD_FEAT         0x01     /*    -- feature extraction    */
  1142. #define    XTADD_LING_EXT     0x02     /*    -- morph.functionality   */
  1143. #define    XTYP_DUAL          0x02     /*    -- dual                  */
  1144.  
  1145.  
  1146. #define     ID_FEAT          225       /* feature expansion           */
  1147. #define     FEAT_ALL         0x01
  1148. #define     FEAT_PERSON_NAME 0x02
  1149. #define     FEAT_ORG_NAME    0x03
  1150. #define     FEAT_PLACE_NAME  0x04
  1151. #define     FEAT_DOMAIN_TERM 0x05
  1152.  
  1153.  
  1154.  
  1155. #endif                                 /* end of include switch       */
  1156.  
  1157. #endif /* imoapic_h */
  1158.