1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.ldap.handlers;
21
22
23 import org.apache.directory.api.ldap.model.cursor.Cursor;
24 import org.apache.directory.api.ldap.model.entry.Entry;
25 import org.apache.directory.api.ldap.model.message.AbandonListener;
26 import org.apache.directory.api.ldap.model.message.AbandonableRequest;
27 import org.apache.directory.server.core.api.event.DirectoryListener;
28 import org.apache.directory.server.ldap.LdapServer;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32
33
34
35
36
37
38
39 public class SearchAbandonListener implements AbandonListener
40 {
41 private static final Logger LOG = LoggerFactory.getLogger( SearchAbandonListener.class );
42 private final LdapServer ldapServer;
43 private Cursor<Entry> cursor;
44 private DirectoryListener listener;
45
46
47 public SearchAbandonListener( LdapServer ldapServer, Cursor<Entry> cursor, DirectoryListener listener )
48 {
49 if ( ldapServer == null )
50 {
51 throw new IllegalArgumentException( "ldapServer" );
52 }
53
54 this.ldapServer = ldapServer;
55 this.cursor = cursor;
56 this.listener = listener;
57 }
58
59
60 public SearchAbandonListener( LdapServer ldapServer, DirectoryListener listener )
61 {
62 this( ldapServer, null, listener );
63 }
64
65
66 public SearchAbandonListener( LdapServer ldapServer, Cursor<Entry> cursor )
67 {
68 this( ldapServer, cursor, null );
69 }
70
71
72 public void requestAbandoned( AbandonableRequest req )
73 {
74 if ( listener != null )
75 {
76 ldapServer.getDirectoryService().getEventService().removeListener( listener );
77 }
78 }
79 }