00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KLDAP_LDAPMODELPRIVATE_H
00022 #define KLDAP_LDAPMODELPRIVATE_H
00023
00024 #include "ldapconnection.h"
00025 #include "ldapdn.h"
00026 #include "ldapmodel.h"
00027 #include "ldapobject.h"
00028
00029 namespace KLDAP {
00030
00031 class LdapModelDNNode;
00032 class LdapSearch;
00033
00037 class LdapModel::LdapModelPrivate
00038 {
00039 public:
00040 enum SearchType {
00041 NotSearching = 0,
00042 NamingContexts,
00043 BaseDN,
00044 ChildObjects
00045 };
00046
00047 explicit LdapModelPrivate( LdapModel *parent );
00048 explicit LdapModelPrivate( LdapModel *parent, LdapConnection &connection );
00049
00050 ~LdapModelPrivate();
00051
00052 void setConnection( LdapConnection &connection );
00053
00054 bool search( const LdapDN &searchBase,
00055 LdapUrl::Scope scope = LdapUrl::Sub,
00056 const QString &filter = QString(),
00057 const QStringList &attributes = QStringList(),
00058 int pagesize = 0 );
00059
00060 LdapModelDNNode *rootNode() { return m_root; }
00061 LdapSearch *search() { return m_search; }
00062
00063 LdapObjects &searchResults() { return m_searchResultObjects; }
00064 const LdapObjects &searchResults() const { return m_searchResultObjects; }
00065
00066 void recreateRootItem();
00067
00068 void setBaseDN( const LdapDN &baseDN ) { m_baseDN = baseDN; }
00069 LdapDN &baseDN() { return m_baseDN; }
00070 const LdapDN &baseDN() const { return m_baseDN; }
00071
00072 void setSearchType( SearchType t, LdapModelDNNode *item = 0 );
00073
00074 SearchType searchType() { return m_searchType; }
00075 LdapModelDNNode *searchItem() { return m_searchItem; }
00076
00077 void createConnections();
00078 void populateRootToBaseDN();
00079 void gotSearchResult( KLDAP::LdapSearch *search );
00080 void gotSearchData( KLDAP::LdapSearch *search, const KLDAP::LdapObject &obj );
00081
00082 private:
00083 LdapModel *m_parent;
00084 LdapModelDNNode *m_root;
00085 LdapSearch *m_search;
00086 LdapObjects m_searchResultObjects;
00087 LdapDN m_baseDN;
00088 SearchType m_searchType;
00089 LdapModelDNNode *m_searchItem;
00090 };
00091
00092 }
00093 #endif