/[ghosts]/ghosts/gedcomparser/src/GEDCOMParser/Predicates/HasChild.hh
ViewVC logotype

Diff of /ghosts/gedcomparser/src/GEDCOMParser/Predicates/HasChild.hh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by cpcp, Sun Jul 27 19:35:22 2003 UTC revision 1.3 by cpcp, Thu Oct 30 20:05:44 2003 UTC
# Line 10  namespace GEDCOMParser { Line 10  namespace GEDCOMParser {
10      class HasChild  : public std::binary_function<GEDCOMParser::LineageLinkageGedcom const * const, GEDCOMParser::IndividualRecords_elem_t, bool> {      class HasChild  : public std::binary_function<GEDCOMParser::LineageLinkageGedcom const * const, GEDCOMParser::IndividualRecords_elem_t, bool> {
11      public:      public:
12        bool operator()(GEDCOMParser::LineageLinkageGedcom const * const lineage,        bool operator()(GEDCOMParser::LineageLinkageGedcom const * const lineage,
13                        GEDCOMParser::IndividualRecords_elem_t individu) const                        GEDCOMParser::IndividualRecords_elem_t individu_elem) const
14        {        {
15          bool res = lineage->hasChildren(individu.second.getPtr());          GEDCOMParser::IndividualRecord const * const individu = individu_elem.second.getPtr();
16            bool res = false;
17            std::string fam_id;
18            FamilyRecords_t::const_iterator fam_iter;
19            IndividualRecords_t::const_iterator child_iter;
20            if (individu != 0)
21              {
22                SpouseToFamilyLinks_t const &spouse_to_family_links = individu->getSpouseToFamilyLinks();
23                SpouseToFamilyLinks_t::const_iterator spouse_to_family_links_iter = spouse_to_family_links.begin();
24                GEDCOMParser::FamilyRecords_t const &families = lineage->getFamilyRecords();
25                while ((!res) && (spouse_to_family_links_iter != spouse_to_family_links.end()))
26                  {
27                    fam_id = (*spouse_to_family_links_iter)->getFamsXref();
28                    fam_iter = families.find(fam_id);
29                    if (fam_iter != families.end())
30                      {
31                        if ((*fam_iter).second->getChilXrefs().size() > 0)
32                          {
33                            res = true;
34                          }
35                      }
36                    spouse_to_family_links_iter++;
37                  }
38              }
39          return res;          return res;
40        };        };
41      };      };

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26