topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-FindByContent.h / h



  /*
       File:       FindByContent.h
   
       Contains:   Public search interface for the Find by Content shared library
   
       Version:    Technology: 2.0
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1997-2001 by Apple Computer, Inc., all rights reserved.
   
       Bugs?:      For bug reports, consult the following page on
                   the World Wide Web:
   
                       http://developer.apple.com/bugreporter/
   
  */
  ifndef __FINDBYCONTENT__
  define __FINDBYCONTENT__
  
  ifndef __MACTYPES__
  include <MacTypes.h>
  endif
  
  ifndef __FILES__
  include <Files.h>
  endif
  
  ifndef __MACERRORS__
  include <MacErrors.h>
  endif
  
  if PRAGMA_ONCE
  #pragma once
  endif
  
  ifdef __cplusplus
  extern "C" {
  endif
  
  if PRAGMA_IMPORT
  #pragma import on
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=mac68k
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  endif
  
  /*
     ***************************************************************************
     Phase values
     These values are passed to the client's callback function to indicate what
     the FBC code is doing.
     ***************************************************************************
  */
  enum {
                                                                  /* indexing phases*/
      kFBCphIndexing              = 0,
      kFBCphFlushing              = 1,
      kFBCphMerging               = 2,
      kFBCphMakingIndexAccessor   = 3,
      kFBCphCompacting            = 4,
      kFBCphIndexWaiting          = 5,                            /* access phases*/
      kFBCphSearching             = 6,
      kFBCphMakingAccessAccessor  = 7,
      kFBCphAccessWaiting         = 8,                            /* summarization*/
      kFBCphSummarizing           = 9,                            /* indexing or access*/
      kFBCphIdle                  = 10,
      kFBCphCanceling             = 11
  };
  
  /*
     ***************************************************************************
     Pointer types
     These point to memory allocated by the FBC shared library, and must be deallocated
     by calls that are defined below.
     ***************************************************************************
  */
  
  /* A collection of state information for searching*/
  typedef struct OpaqueFBCSearchSession*  FBCSearchSession;
  /* An ordinary C string (used for hit/doc terms)*/
  typedef char *                          FBCWordItem;
  /* An array of WordItems*/
  typedef FBCWordItem *                   FBCWordList;
  /*
     ***************************************************************************
     Callback function type for progress reporting and cancelation during
     searching and indexing.  The client's callback function should call
     WaitNextEvent; a "sleep" value of 1 is suggested.  If the callback function
     wants to cancel the current operation (indexing, search, or doc-terms
     retrieval) it should return true.
     ***************************************************************************
  */
  
  typedef CALLBACK_API_C( Boolean , FBCCallbackProcPtr )(UInt16 phase, float percentDone, void *data);
  /*
     ***************************************************************************
     Set the callback function for progress reporting and cancelation during
     searching and indexing, and set the amount of heap space to reserve for
     the client's use when FBC allocates memory.
     ***************************************************************************
  */
  EXTERN_API_C( void )
  FBCSetCallback                  (FBCCallbackProcPtr     fn,
                                   void *                 data);
  
  EXTERN_API_C( void )
  FBCSetHeapReservation           (UInt32                 bytes);
  
  /*
     ***************************************************************************
     Find out whether a volume is indexed, the date & time of its last
     completed  update, and its physical size.
     ***************************************************************************
  */
  
  EXTERN_API_C( Boolean )
  FBCVolumeIsIndexed              (SInt16                 theVRefNum);
  
  EXTERN_API_C( Boolean )
  FBCVolumeIsRemote               (SInt16                 theVRefNum);
  
  EXTERN_API_C( OSErr )
  FBCVolumeIndexTimeStamp         (SInt16                 theVRefNum,
                                   UInt32 *               timeStamp);
  
  EXTERN_API_C( OSErr )
  FBCVolumeIndexPhysicalSize      (SInt16                 theVRefNum,
                                   UInt32 *               size);
  
  /*
     ***************************************************************************
     Create & configure a search session
     ***************************************************************************
  */
  
  EXTERN_API_C( OSErr )
  FBCCreateSearchSession          (FBCSearchSession *     searchSession);
  
  EXTERN_API_C( OSErr )
  FBCAddAllVolumesToSession       (FBCSearchSession       theSession,
                                   Boolean                includeRemote);
  
  EXTERN_API_C( OSErr )
  FBCSetSessionVolumes            (FBCSearchSession       theSession,
                                   const SInt16           vRefNums[],
                                   UInt16                 numVolumes);
  
  EXTERN_API_C( OSErr )
  FBCAddVolumeToSession           (FBCSearchSession       theSession,
                                   SInt16                 vRefNum);
  
  EXTERN_API_C( OSErr )
  FBCRemoveVolumeFromSession      (FBCSearchSession       theSession,
                                   SInt16                 vRefNum);
  
  EXTERN_API_C( OSErr )
  FBCGetSessionVolumeCount        (FBCSearchSession       theSession,
                                   UInt16 *               count);
  
  EXTERN_API_C( OSErr )
  FBCGetSessionVolumes            (FBCSearchSession       theSession,
                                   SInt16                 vRefNums[],
                                   UInt16 *               numVolumes);
  
  EXTERN_API_C( OSErr )
  FBCCloneSearchSession           (FBCSearchSession       original,
                                   FBCSearchSession *     clone);
  
  /*
     ***************************************************************************
     Execute a search
     ***************************************************************************
  */
  
  EXTERN_API_C( OSErr )
  FBCDoQuerySearch                (FBCSearchSession       theSession,
                                   char *                 queryText,
                                   const FSSpec           targetDirs[],
                                   UInt32                 numTargets,
                                   UInt32                 maxHits,
                                   UInt32                 maxHitWords);
  
  EXTERN_API_C( OSErr )
  FBCDoExampleSearch              (FBCSearchSession       theSession,
                                   const UInt32 *         exampleHitNums,
                                   UInt32                 numExamples,
                                   const FSSpec           targetDirs[],
                                   UInt32                 numTargets,
                                   UInt32                 maxHits,
                                   UInt32                 maxHitWords);
  
  EXTERN_API_C( OSErr )
  FBCBlindExampleSearch           (FSSpec                 examples[],
                                   UInt32                 numExamples,
                                   const FSSpec           targetDirs[],
                                   UInt32                 numTargets,
                                   UInt32                 maxHits,
                                   UInt32                 maxHitWords,
                                   Boolean                allIndexes,
                                   Boolean                includeRemote,
                                   FBCSearchSession *     theSession);
  
  /*
     ***************************************************************************
     Get information about hits [wrapper for THitItem C++ API]
     ***************************************************************************
  */
  
  EXTERN_API_C( OSErr )
  FBCGetHitCount                  (FBCSearchSession       theSession,
                                   UInt32 *               count);
  
  EXTERN_API_C( OSErr )
  FBCGetHitDocument               (FBCSearchSession       theSession,
                                   UInt32                 hitNumber,
                                   FSSpec *               theDocument);
  
  EXTERN_API_C( OSErr )
  FBCGetHitScore                  (FBCSearchSession       theSession,
                                   UInt32                 hitNumber,
                                   float *                score);
  
  EXTERN_API_C( OSErr )
  FBCGetMatchedWords              (FBCSearchSession       theSession,
                                   UInt32                 hitNumber,
                                   UInt32 *               wordCount,
                                   FBCWordList *          list);
  
  EXTERN_API_C( OSErr )
  FBCGetTopicWords                (FBCSearchSession       theSession,
                                   UInt32                 hitNumber,
                                   UInt32 *               wordCount,
                                   FBCWordList *          list);
  
  /*
     ***************************************************************************
     Summarize a buffer of text
     ***************************************************************************
  */
  
  EXTERN_API_C( OSErr )
  FBCSummarize                    (void *                 inBuf,
                                   UInt32                 inLength,
                                   void *                 outBuf,
                                   UInt32 *               outLength,
                                   UInt32 *               numSentences);
  
  /*
     ***************************************************************************
     Deallocate hit lists, word arrays, and search sessions
     ***************************************************************************
  */
  
  EXTERN_API_C( OSErr )
  FBCReleaseSessionHits           (FBCSearchSession       theSession);
  
  EXTERN_API_C( OSErr )
  FBCDestroyWordList              (FBCWordList            theList,
                                   UInt32                 wordCount);
  
  EXTERN_API_C( OSErr )
  FBCDestroySearchSession         (FBCSearchSession       theSession);
  
  /*
     ***************************************************************************
     Index one or more files and/or folders
     ***************************************************************************
  */
  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( OSErr )
  FBCIndexItems                   (FSSpecArrayPtr         theItems,
                                   UInt32                 itemCount);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=reset
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(pop)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack()
  endif
  
  ifdef PRAGMA_IMPORT_OFF
  #pragma import off
  #elif PRAGMA_IMPORT
  #pragma import reset
  endif
  
  ifdef __cplusplus
  }
  endif
  
  endif /* __FINDBYCONTENT__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.