1 /*=========================================================================== 2 * 3 * PUBLIC DOMAIN NOTICE 4 * National Center for Biotechnology Information 5 * 6 * This software/database is a "United States Government Work" under the 7 * terms of the United States Copyright Act. It was written as part of 8 * the author's official duties as a United States Government employee and 9 * thus cannot be copyrighted. This software/database is freely available 10 * to the public for use. The National Library of Medicine and the U.S. 11 * Government have not placed any restriction on its use or reproduction. 12 * 13 * Although all reasonable efforts have been taken to ensure the accuracy 14 * and reliability of the software and data, the NLM and the U.S. 15 * Government do not and cannot warrant the performance or results that 16 * may be obtained by using this software or data. The NLM and the U.S. 17 * Government disclaim all warranties, express or implied, including 18 * warranties of performance, merchantability or fitness for any particular 19 * purpose. 20 * 21 * Please cite the author in any work or product based on this material. 22 * 23 * =========================================================================== 24 * 25 */ 26 27 #ifndef _hpp_ngs_reference_iterator_ 28 #define _hpp_ngs_reference_iterator_ 29 30 #ifndef _hpp_ngs_reference_ 31 #include <ngs/Reference.hpp> 32 #endif 33 34 namespace ngs 35 { 36 /*---------------------------------------------------------------------- 37 * ReferenceIterator 38 * iterates across a list of References 39 */ 40 class ReferenceIterator : public Reference 41 { 42 public: 43 44 /* nextReference 45 * advance to first Reference on initial invocation 46 * advance to next Reference subsequently 47 * returns false if no more References are available. 48 * throws exception if more References should be available, 49 * but could not be accessed. 50 */ 51 bool nextReference () 52 NGS_THROWS ( ErrorMsg ); 53 54 public: 55 56 // C++ support 57 58 ReferenceIterator ( ReferenceRef ref ) 59 NGS_NOTHROW (); 60 61 ReferenceIterator & operator = ( const ReferenceIterator & obj ) 62 NGS_THROWS ( ErrorMsg ); 63 ReferenceIterator ( const ReferenceIterator & obj ) 64 NGS_THROWS ( ErrorMsg ); 65 66 ~ ReferenceIterator () 67 NGS_NOTHROW (); 68 69 private: 70 71 Reference & operator = ( const Reference & obj ) 72 NGS_THROWS ( ErrorMsg ); 73 ReferenceIterator & operator = ( ReferenceRef ref ) 74 NGS_NOTHROW (); 75 }; 76 77 } // namespace ngs 78 79 80 #ifndef _inl_ngs_reference_iterator_ 81 #include <ngs/inl/ReferenceIterator.hpp> 82 #endif 83 84 #endif // _hpp_ngs_reference_iterator_ 85