1*549b59edSchristos /* $NetBSD: LdifReader.h,v 1.3 2021/08/14 16:14:49 christos Exp $ */ 24e6df137Slukem 3d11b170bStron // $OpenLDAP$ 42de962bdSlukem /* 5*549b59edSchristos * Copyright 2008-2021 The OpenLDAP Foundation, All Rights Reserved. 62de962bdSlukem * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 72de962bdSlukem */ 82de962bdSlukem 92de962bdSlukem #ifndef LDIF_READER_H 102de962bdSlukem #define LDIF_READER_H 112de962bdSlukem 122de962bdSlukem #include <LDAPEntry.h> 132de962bdSlukem #include <iosfwd> 142de962bdSlukem #include <list> 152de962bdSlukem 162de962bdSlukem typedef std::list< std::pair<std::string, std::string> > LdifRecord; 172de962bdSlukem class LdifReader 182de962bdSlukem { 192de962bdSlukem public: 202de962bdSlukem LdifReader( std::istream &input ); 212de962bdSlukem isEntryRecords()222de962bdSlukem inline bool isEntryRecords() const 232de962bdSlukem { 242de962bdSlukem return !m_ldifTypeRequest; 252de962bdSlukem } 262de962bdSlukem isChangeRecords()272de962bdSlukem inline bool isChangeRecords() const 282de962bdSlukem { 292de962bdSlukem return m_ldifTypeRequest; 302de962bdSlukem } 312de962bdSlukem getVersion()322de962bdSlukem inline int getVersion() const 332de962bdSlukem { 342de962bdSlukem return m_version; 352de962bdSlukem } 362de962bdSlukem 372de962bdSlukem LDAPEntry getEntryRecord(); 382de962bdSlukem int readNextRecord( bool first=false ); 392de962bdSlukem //LDAPRequest getChangeRecord(); 402de962bdSlukem 412de962bdSlukem private: 422de962bdSlukem int getLdifLine(std::string &line); 432de962bdSlukem 442de962bdSlukem void splitLine(const std::string& line, 452de962bdSlukem std::string &type, 462de962bdSlukem std::string &value ) const; 472de962bdSlukem 482de962bdSlukem std::string readIncludeLine( const std::string &line) const; 492de962bdSlukem 502de962bdSlukem std::istream &m_ldifstream; 512de962bdSlukem LdifRecord m_currentRecord; 522de962bdSlukem int m_version; 532de962bdSlukem int m_curRecType; 542de962bdSlukem int m_lineNumber; 552de962bdSlukem bool m_ldifTypeRequest; 562de962bdSlukem bool m_currentIsFirst; 572de962bdSlukem }; 582de962bdSlukem 592de962bdSlukem #endif /* LDIF_READER_H */ 60