1/*
2 This file is part of libkldap.
3 Copyright (c) 2006 Sean Harmer <sh@theharmers.co.uk>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/
20
21#ifndef KLDAP_LDAPDN_H
22#define KLDAP_LDAPDN_H
23
24#include "kldap_export.h"
25
26#include <QtCore/QStringList>
27
28#include <kldap/kldap_export.h>
29
30namespace KLDAP {
31
32class KLDAP_EXPORT LdapDN
33{
34 public:
35 explicit LdapDN();
36 explicit LdapDN( const QString &dn );
37
38 LdapDN( const LdapDN &that );
39 LdapDN &operator=( const LdapDN &that );
40
41 ~LdapDN();
42
43 void clear();
44
45 bool isEmpty() const;
46
47 /**
48 * \returns A QString representing the DN.
49 */
50 QString toString() const;
51
52 /**
53 * \param depth The depth of the DN to return using a zero-based index.
54 * \returns A QString representing the DN levels deep in the directory.
55 */
56 QString toString( int depth ) const;
57
58 /**
59 * \returns A QString representing the RDN of this DN.
60 */
61 QString rdnString() const;
62
63 /**
64 * \param depth The depth of the RDN to return using a zero-based index.
65 * \returns A QString representing the RDN levels deep in the directory.
66 */
67 QString rdnString( int depth ) const;
68
69 /**
70 * \returns True if this is a valid DN, false otherwise.
71 */
72 bool isValid() const;
73
74 /**
75 * \returns The depth of this DN in the directory.
76 */
77 int depth() const;
78
79 bool operator == ( const LdapDN &rhs ) const;
80
81 bool operator != ( const LdapDN &rhs ) const;
82
83 private:
84 class LdapDNPrivate;
85 LdapDNPrivate *const d;
86};
87
88}
89
90#endif
91