NCBI C Toolkit Cross Reference

C/algo/blast/api/hspstream_queue.h


  1 /*  $Id: hspstream_queue.h,v 1.5 2005/02/09 20:55:38 dondosha Exp $
  2  * ===========================================================================
  3  *
  4  *                            PUBLIC DOMAIN NOTICE
  5  *               National Center for Biotechnology Information
  6  *
  7  *  This software/database is a "United States Government Work" under the
  8  *  terms of the United States Copyright Act.  It was written as part of
  9  *  the author's official duties as a United States Government employee and
 10  *  thus cannot be copyrighted.  This software/database is freely available
 11  *  to the public for use. The National Library of Medicine and the U.S.
 12  *  Government have not placed any restriction on its use or reproduction.
 13  *
 14  *  Although all reasonable efforts have been taken to ensure the accuracy
 15  *  and reliability of the software and data, the NLM and the U.S.
 16  *  Government do not and cannot warrant the performance or results that
 17  *  may be obtained by using this software or data. The NLM and the U.S.
 18  *  Government disclaim all warranties, express or implied, including
 19  *  warranties of performance, merchantability or fitness for any particular
 20  *  purpose.
 21  *
 22  *  Please cite the author in any work or product based on this material.
 23  *
 24  * ===========================================================================
 25  *
 26  * Author:  Ilya Dondoshansky
 27  *
 28  */
 29 
 30 /** @file hspstream_queue.h
 31  * Implementation of the BlastHSPStream interface for producing results on the
 32  * fly.
 33  */
 34 
 35 #ifndef HSPSTREAM_QUEUE_H
 36 #define HSPSTREAM_QUEUE_H
 37 
 38 #ifdef __cplusplus
 39 extern "C" {
 40 #endif
 41 
 42 #include <ncbithr.h>
 43 #include <algo/blast/core/blast_options.h>
 44 #include <algo/blast/core/blast_hits.h>
 45 #include <algo/blast/core/blast_seqsrc.h>
 46 #include <algo/blast/core/blast_hspstream.h>
 47 
 48 /** @addtogroup CToolkitAlgoBlast
 49  *
 50  * @{
 51  */
 52 
 53 /** Data structure for the queue implementation of BlastHSPStream */
 54 typedef struct BlastHSPListQueueData {
 55    ListNode* m_queueStart;  /**< First element of the linked list of HSP 
 56                                lists */
 57    ListNode* m_queueEnd;    /**< Last element in the linked list of HSP 
 58                                lists */
 59    Boolean   m_writingDone; /**< Has writing to this stream been finished? */
 60    TNlmMutex m_resultsMutex;/**< Mutex for writing to this queue. */
 61    TNlmSemaphore m_resultsSema; /**< Semaphore for reading from this queue. */
 62 } BlastHSPListQueueData;
 63 
 64 /** Function to initialize the queue implementation of BlastHSPStream */
 65 BlastHSPStream* Blast_HSPListQueueInit(void);
 66 
 67 /* @} */
 68 
 69 #ifdef __cplusplus
 70 }
 71 #endif
 72 
 73 #endif /* HSPSTREAM_QUEUE_H */
 74 

source navigation ]   [ diff markup ]   [ identifier search ]   [ freetext search ]   [ file search ]  

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.