23 |
GEDCOMParser::GEDCOMFactory factory; |
GEDCOMParser::GEDCOMFactory factory; |
24 |
GEDCOMParser::GEDCOMFactoryAccessor::Init(&factory); |
GEDCOMParser::GEDCOMFactoryAccessor::Init(&factory); |
25 |
GEDCOMParser::Parser viewparser(&factory); |
GEDCOMParser::Parser viewparser(&factory); |
26 |
if (argc == 3) |
if (argc == 2) |
27 |
{ |
{ |
28 |
char * gedcom_filename = argv[1]; |
char * gedcom_filename = argv[1]; |
|
char * output_filename = argv[2]; |
|
29 |
GEDCOMParser::ParseErrorManagement::ParseErrorManager parse_error_manager = viewparser.Parse(gedcom_filename); |
GEDCOMParser::ParseErrorManagement::ParseErrorManager parse_error_manager = viewparser.Parse(gedcom_filename); |
30 |
if (parse_error_manager.ErrorCount() == 0) |
if (parse_error_manager.ErrorCount() == 0) |
31 |
{ |
{ |
32 |
std::cerr << _("Parsing passed") << std::endl; |
std::cerr << _("Parsing passed") << std::endl; |
33 |
GEDCOMParser::LineageLinkageGedcom * const lineage = viewparser.getLineageLinkageGedcom(); |
GEDCOMParser::LineageLinkageGedcom * const lineage = viewparser.getLineageLinkageGedcom(); |
|
lineage->addFamilyRecord(); |
|
|
lineage->addIndividualRecord(); |
|
|
lineage->addMultimediaRecord(); |
|
|
lineage->addNoteRecord(); |
|
|
lineage->addSourceRecord(); |
|
|
lineage->addRepositoryRecord(); |
|
|
lineage->addSubmitterRecord(); |
|
|
GEDCOMParser::IndividualRecords_t individus = lineage->getIndividualRecords(); |
|
|
GEDCOMParser::IndividualRecords_t::iterator individu_iter = individus.begin(); |
|
|
GEDCOMParser::IndividualRecord * individu = individu_iter->second.getPtr(); |
|
|
std::cerr << "before AddSpouse" << std::endl; |
|
|
GEDCOMParser::SpouseToFamilyLink * spouse_link = lineage->AddSpouse(individu); |
|
|
std::cerr << "AddSpouse done : " << spouse_link << std::endl; |
|
|
std::cerr << "before RemoveSpouseToFamilyLink" << std::endl; |
|
|
lineage->RemoveSpouseToFamilyLink(individu, spouse_link); |
|
|
std::cerr << "RemoveSpouseToFamilyLink done" << std::endl; |
|
|
std::cerr << "before AddParents" << std::endl; |
|
|
GEDCOMParser::ChildToFamilyLink * child_link = lineage->AddParents(individu); |
|
|
std::cerr << "AddParents done : " << child_link << std::endl; |
|
|
std::cerr << "before RemoveChildToFamilyLink" << std::endl; |
|
|
lineage->RemoveChildToFamilyLink(individu, child_link); |
|
|
std::cerr << "RemoveChildToFamilyLink done" << std::endl; |
|
|
|
|
34 |
GEDCOMParser::Writer * writer = new GEDCOMParser::GEDCOMWriter(); |
GEDCOMParser::Writer * writer = new GEDCOMParser::GEDCOMWriter(); |
|
writer->setFile(output_filename); |
|
35 |
GEDCOMParser::GEDCOMSerializerVisitor * visitor = new GEDCOMParser::GEDCOMSerializerVisitor(); |
GEDCOMParser::GEDCOMSerializerVisitor * visitor = new GEDCOMParser::GEDCOMSerializerVisitor(); |
36 |
visitor->setWriter(writer); |
visitor->setWriter(writer); |
|
writer->OpenTransaction(); |
|
37 |
lineage->Accept(visitor); |
lineage->Accept(visitor); |
38 |
writer->CloseTransaction(); |
std::cout << writer->getBuffer() << std::endl; |
39 |
delete writer; writer = 0; |
delete writer; writer = 0; |
40 |
delete visitor; visitor = 0; |
delete visitor; visitor = 0; |
41 |
} |
} |