//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module tdeabc  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


%If ( KDE_3_3_0 -  )
namespace TDEABC
{

class LDIF
{
%TypeHeaderCode
#include <ldif.h>
%End


public:

    enum ParseVal
    {
        None, 
        NewEntry, 
        EndEntry, 
        Item, 
        Control, 
        Err, 
        MoreData
    };


    enum EntryType
    {
        Entry_None, 
        Entry_Add, 
        Entry_Del, 
        Entry_Mod, 
        Entry_Modrdn
    };


    enum ModType
    {
        Mod_None, 
        Mod_Add, 
        Mod_Replace, 
        Mod_Del
    };

                         LDIF ();
    static TQCString      assembleLine (const TQString&, const TQByteArray&, uint = 0, bool = 0);
    static TQCString      assembleLine (const TQString&, const TQCString&, uint = 0, bool = 0);
    static TQCString      assembleLine (const TQString&, const TQString&, uint = 0, bool = 0);
    static bool          splitLine (const TQCString&, TQString&, TQByteArray&);
    static bool          splitControl (const TQCString&, TQString&, bool&, TQByteArray&);
    void                 startParsing ();
    TDEABC::LDIF::ParseVal processLine ();
    TDEABC::LDIF::ParseVal nextItem ();
    void                 setLDIF (const TQByteArray&);
    void                 endLDIF ();
    TDEABC::LDIF::EntryType entryType () const;
    int                  modType () const;
    const TQString&       dn () const;
    const TQString&       newRdn () const;
    const TQString&       newSuperior () const;
    bool                 delOldRdn () const;
    const TQString&       attr () const;
    const TQByteArray&    val () const;
    bool                 isUrl () const;
    bool                 critical () const;
    const TQString&       oid () const;
    uint                 lineNo () const;

};  // class LDIF

};  // namespace TDEABC

%End

