00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00046 PB_ASSOC_CLASS_T_DEC
00047 typename PB_ASSOC_CLASS_C_DEC::iterator
00048 PB_ASSOC_CLASS_C_DEC::s_end_it;
00049
00050 PB_ASSOC_CLASS_T_DEC
00051 typename PB_ASSOC_CLASS_C_DEC::const_iterator
00052 PB_ASSOC_CLASS_C_DEC::s_const_end_it;
00053
00054 PB_ASSOC_CLASS_T_DEC
00055 inline typename PB_ASSOC_CLASS_C_DEC::iterator
00056 PB_ASSOC_CLASS_C_DEC::
00057 begin()
00058 {
00059 pointer p_value;
00060 size_type pos;
00061
00062 get_start_it_state(p_value, pos);
00063
00064 return (iterator(p_value, pos, this));
00065 }
00066
00067 PB_ASSOC_CLASS_T_DEC
00068 inline typename PB_ASSOC_CLASS_C_DEC::iterator
00069 PB_ASSOC_CLASS_C_DEC::
00070 end()
00071 {
00072 return (s_end_it);
00073 }
00074
00075 PB_ASSOC_CLASS_T_DEC
00076 inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
00077 PB_ASSOC_CLASS_C_DEC::
00078 begin() const
00079 {
00080 const_pointer p_value;
00081 size_type pos;
00082
00083 get_start_it_state(p_value, pos);
00084
00085 return (const_iterator(p_value, pos, this));
00086 }
00087
00088 PB_ASSOC_CLASS_T_DEC
00089 inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
00090 PB_ASSOC_CLASS_C_DEC::
00091 end() const
00092 {
00093 return (s_const_end_it);
00094 }
00095
00096 #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
00097 PB_ASSOC_CLASS_T_DEC
00098 void
00099 PB_ASSOC_CLASS_C_DEC::
00100 inc_it_state(pointer& r_p_value, size_type& r_pos) const
00101 {
00102 PB_ASSOC_DBG_ASSERT(r_p_value != NULL);
00103
00104 for (++r_pos; r_pos < m_num_e; ++r_pos)
00105 {
00106 const_entry_pointer p_e =& m_a_entries[r_pos];
00107
00108 if (p_e->m_stat == VALID_ENTRY_STATUS)
00109 {
00110 r_p_value = static_cast<const_pointer>(&p_e->m_value);
00111
00112 return;
00113 }
00114 }
00115
00116 r_p_value = NULL;
00117 }
00118 #endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
00119
00120 PB_ASSOC_CLASS_T_DEC
00121 void
00122 PB_ASSOC_CLASS_C_DEC::
00123 inc_it_state(const_pointer& r_p_value, size_type& r_pos) const
00124 {
00125 PB_ASSOC_DBG_ASSERT(r_p_value != NULL);
00126
00127 for (++r_pos; r_pos < m_num_e; ++r_pos)
00128 {
00129 const_entry_pointer p_e =& m_a_entries[r_pos];
00130
00131 if (p_e->m_stat == VALID_ENTRY_STATUS)
00132 {
00133 r_p_value = static_cast<const_pointer>(&p_e->m_value);
00134
00135 return;
00136 }
00137 }
00138
00139 r_p_value = NULL;
00140 }
00141
00142 PB_ASSOC_CLASS_T_DEC
00143 void
00144 PB_ASSOC_CLASS_C_DEC::
00145 get_start_it_state(const_pointer& r_p_value, size_type& r_pos) const
00146 {
00147 for (r_pos = 0; r_pos < m_num_e; ++r_pos)
00148 {
00149 const_entry_pointer p_e =& m_a_entries[r_pos];
00150
00151 if (p_e->m_stat == VALID_ENTRY_STATUS)
00152 {
00153 r_p_value =& p_e->m_value;
00154
00155 return;
00156 }
00157 }
00158
00159 r_p_value = NULL;
00160 }
00161
00162 PB_ASSOC_CLASS_T_DEC
00163 void
00164 PB_ASSOC_CLASS_C_DEC::
00165 get_start_it_state(pointer& r_p_value, size_type& r_pos)
00166 {
00167 for (r_pos = 0; r_pos < m_num_e; ++r_pos)
00168 {
00169 entry_pointer p_e =& m_a_entries[r_pos];
00170
00171 if (p_e->m_stat == VALID_ENTRY_STATUS)
00172 {
00173 r_p_value = const_cast<pointer>(&p_e->m_value);
00174
00175 return;
00176 }
00177 }
00178
00179 r_p_value = NULL;
00180 }
00181