**** Merged from MCS ****
[mono-project.git] / mcs / class / Novell.Directory.Ldap / Novell.Directory.Ldap / LdapSearchResultReference.cs
blobd63a6f03f9da1fb80bbc0173dc37410b5a2c51bb
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
10 //
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 //
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 /******************************************************************************
23 * The MIT License
24 * Copyright (c) 2003 Novell Inc. www.novell.com
26 * Permission is hereby granted, free of charge, to any person obtaining a copy
27 * of this software and associated documentation files (the Software), to deal
28 * in the Software without restriction, including without limitation the rights
29 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
30 * copies of the Software, and to permit persons to whom the Software is
31 * furnished to do so, subject to the following conditions:
33 * The above copyright notice and this permission notice shall be included in
34 * all copies or substantial portions of the Software.
36 * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
39 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
40 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
41 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
42 * SOFTWARE.
43 *******************************************************************************/
45 // Novell.Directory.Ldap.LdapSearchResultReference.cs
47 // Author:
48 // Sunil Kumar (Sunilk@novell.com)
50 // (C) 2003 Novell, Inc (http://www.novell.com)
53 using System;
54 using Novell.Directory.Ldap.Rfc2251;
55 using Novell.Directory.Ldap.Asn1;
57 namespace Novell.Directory.Ldap
60 /// <summary>
61 /// Encapsulates a continuation reference from an asynchronous search operation.
62 ///
63 /// </summary>
64 public class LdapSearchResultReference:LdapMessage
66 /// <summary> Returns any URLs in the object.
67 ///
68 /// </summary>
69 /// <returns> The URLs.
70 /// </returns>
71 virtual public System.String[] Referrals
73 get
75 Asn1Object[] references = ((RfcSearchResultReference) message.Response).toArray();
76 srefs = new System.String[references.Length];
77 for (int i = 0; i < references.Length; i++)
79 srefs[i] = ((Asn1OctetString) (references[i])).stringValue();
81 return (srefs);
86 private System.String[] srefs;
87 private static System.Object nameLock; // protect agentNum
88 private static int refNum = 0; // Debug, LdapConnection number
89 private System.String name; // String name for debug
90 /*package*/ /// <summary> Constructs an LdapSearchResultReference object.
91 ///
92 /// </summary>
93 /// <param name="message">The LdapMessage with a search reference.
94 /// </param>
95 internal LdapSearchResultReference(RfcLdapMessage message):base(message)
97 return ;
99 static LdapSearchResultReference()
101 nameLock = new System.Object();