1 /* $NetBSD: LdifReader.h,v 1.1.1.2 2010/03/08 02:14:20 lukem Exp $ */ 2 3 /* 4 * Copyright 2008, OpenLDAP Foundation, All Rights Reserved. 5 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 6 */ 7 8 #ifndef LDIF_READER_H 9 #define LDIF_READER_H 10 11 #include <LDAPEntry.h> 12 #include <iosfwd> 13 #include <list> 14 15 typedef std::list< std::pair<std::string, std::string> > LdifRecord; 16 class LdifReader 17 { 18 public: 19 LdifReader( std::istream &input ); 20 21 inline bool isEntryRecords() const 22 { 23 return !m_ldifTypeRequest; 24 } 25 26 inline bool isChangeRecords() const 27 { 28 return m_ldifTypeRequest; 29 } 30 31 inline int getVersion() const 32 { 33 return m_version; 34 } 35 36 LDAPEntry getEntryRecord(); 37 int readNextRecord( bool first=false ); 38 //LDAPRequest getChangeRecord(); 39 40 private: 41 int getLdifLine(std::string &line); 42 43 void splitLine(const std::string& line, 44 std::string &type, 45 std::string &value ) const; 46 47 std::string readIncludeLine( const std::string &line) const; 48 49 std::istream &m_ldifstream; 50 LdifRecord m_currentRecord; 51 int m_version; 52 int m_curRecType; 53 int m_lineNumber; 54 bool m_ldifTypeRequest; 55 bool m_currentIsFirst; 56 }; 57 58 #endif /* LDIF_READER_H */ 59