memberlist.inl
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: memberlist.inl,v $
  4.  * PRODUCTION Revision 1000.0  2003/10/29 17:24:14  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.5
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #if defined(MEMBERLIST__HPP)  &&  !defined(MEMBERLIST__INL)
  10. #define MEMBERLIST__INL
  11. /*  $Id: memberlist.inl,v 1000.0 2003/10/29 17:24:14 gouriano Exp $
  12. * ===========================================================================
  13. *
  14. *                            PUBLIC DOMAIN NOTICE
  15. *               National Center for Biotechnology Information
  16. *
  17. *  This software/database is a "United States Government Work" under the
  18. *  terms of the United States Copyright Act.  It was written as part of
  19. *  the author's official duties as a United States Government employee and
  20. *  thus cannot be copyrighted.  This software/database is freely available
  21. *  to the public for use. The National Library of Medicine and the U.S.
  22. *  Government have not placed any restriction on its use or reproduction.
  23. *
  24. *  Although all reasonable efforts have been taken to ensure the accuracy
  25. *  and reliability of the software and data, the NLM and the U.S.
  26. *  Government do not and cannot warrant the performance or results that
  27. *  may be obtained by using this software or data. The NLM and the U.S.
  28. *  Government disclaim all warranties, express or implied, including
  29. *  warranties of performance, merchantability or fitness for any particular
  30. *  purpose.
  31. *
  32. *  Please cite the author in any work or product based on this material.
  33. *
  34. * ===========================================================================
  35. *
  36. * Author: Eugene Vasilchenko
  37. *
  38. * File Description:
  39. *   !!! PUT YOUR DESCRIPTION HERE !!!
  40. */
  41. inline
  42. CItemInfo* CItemsInfo::x_GetItemInfo(TMemberIndex index) const
  43. {
  44.     _ASSERT(index >= FirstIndex() && index <= LastIndex());
  45.     return m_Items[index - FirstIndex()].get();
  46. }
  47. inline
  48. const CItemInfo* CItemsInfo::GetItemInfo(TMemberIndex index) const
  49. {
  50.     return x_GetItemInfo(index);
  51. }
  52. inline
  53. CItemsInfo::CIterator::CIterator(const CItemsInfo& items)
  54.     : m_CurrentIndex(items.FirstIndex()),
  55.       m_LastIndex(items.LastIndex())
  56. {
  57. }
  58. inline
  59. CItemsInfo::CIterator::CIterator(const CItemsInfo& items, TMemberIndex index)
  60.     : m_CurrentIndex(index),
  61.       m_LastIndex(items.LastIndex())
  62. {
  63.     _ASSERT(index >= kFirstMemberIndex);
  64.     _ASSERT(index <= (m_LastIndex + 1));
  65. }
  66. inline
  67. void CItemsInfo::CIterator::SetIndex(TMemberIndex index)
  68. {
  69.     _ASSERT(index >= kFirstMemberIndex);
  70.     _ASSERT(index <= (m_LastIndex + 1));
  71.     m_CurrentIndex = index;
  72. }
  73. inline
  74. CItemsInfo::CIterator& CItemsInfo::CIterator::operator=(TMemberIndex index)
  75. {
  76.     SetIndex(index);
  77.     return *this;
  78. }
  79. inline
  80. bool CItemsInfo::CIterator::Valid(void) const
  81. {
  82.     return m_CurrentIndex <= m_LastIndex;
  83. }
  84. inline
  85. void CItemsInfo::CIterator::Next(void)
  86. {
  87.     ++m_CurrentIndex;
  88. }
  89. inline
  90. void CItemsInfo::CIterator::operator++(void)
  91. {
  92.     Next();
  93. }
  94. inline
  95. TMemberIndex CItemsInfo::CIterator::GetIndex(void) const
  96. {
  97.     return m_CurrentIndex;
  98. }
  99. inline
  100. TMemberIndex CItemsInfo::CIterator::operator*(void) const
  101. {
  102.     return GetIndex();
  103. }
  104. inline
  105. const CItemInfo* CItemsInfo::GetItemInfo(const CIterator& i) const
  106. {
  107.     return GetItemInfo(*i);
  108. }
  109. #endif /* def MEMBERLIST__HPP  &&  ndef MEMBERLIST__INL */
  110. /* ---------------------------------------------------------------------------
  111. * $Log: memberlist.inl,v $
  112. * Revision 1000.0  2003/10/29 17:24:14  gouriano
  113. * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.5
  114. *
  115. * Revision 1.5  2002/12/23 18:38:51  dicuccio
  116. * Added WIn32 export specifier: NCBI_XSERIAL_EXPORT.
  117. * Moved all CVS logs to the end.
  118. *
  119. * Revision 1.4  2000/10/03 17:22:33  vasilche
  120. * Reduced header dependency.
  121. * Reduced size of debug libraries on WorkShop by 3 times.
  122. * Fixed tag allocation for parent classes.
  123. * Fixed CObject allocation/deallocation in streams.
  124. * Moved instantiation of several templates in separate source file.
  125. *
  126. * Revision 1.3  2000/09/18 20:00:03  vasilche
  127. * Separated CVariantInfo and CMemberInfo.
  128. * Implemented copy hooks.
  129. * All hooks now are stored in CTypeInfo/CMemberInfo/CVariantInfo.
  130. * Most type specific functions now are implemented via function pointers instead of virtual functions.
  131. *
  132. * Revision 1.2  2000/06/16 16:31:05  vasilche
  133. * Changed implementation of choices and classes info to allow use of the same classes in generated and user written classes.
  134. *
  135. * Revision 1.1  2000/04/10 18:01:52  vasilche
  136. * Added Erase() for STL types in type iterators.
  137. *
  138. * ===========================================================================
  139. */