remove svn:executable from .cs files
[mono.git] / mcs / class / Novell.Directory.Ldap / Novell.Directory.Ldap.Rfc2251 / RfcControls.cs
1 /******************************************************************************
2 * The MIT License
3 * Copyright (c) 2003 Novell Inc.  www.novell.com
4
5 * Permission is hereby granted, free of charge, to any person obtaining  a copy
6 * of this software and associated documentation files (the Software), to deal
7 * in the Software without restriction, including  without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
9 * copies of the Software, and to  permit persons to whom the Software is 
10 * furnished to do so, subject to the following conditions:
11
12 * The above copyright notice and this permission notice shall be included in 
13 * all copies or substantial portions of the Software.
14
15 * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 * SOFTWARE.
22 *******************************************************************************/
23 //
24 // Novell.Directory.Ldap.Rfc2251.RfcControls.cs
25 //
26 // Author:
27 //   Sunil Kumar (Sunilk@novell.com)
28 //
29 // (C) 2003 Novell, Inc (http://www.novell.com)
30 //
31
32 using System;
33 using Novell.Directory.Ldap.Asn1;
34 using Novell.Directory.Ldap.Rfc2251;
35
36 namespace Novell.Directory.Ldap.Rfc2251
37 {
38         
39         /// <summary> Represents Ldap Contreols.
40         /// 
41         /// <pre>
42         /// Controls ::= SEQUENCE OF Control
43         /// </pre>
44         /// </summary>
45         public class RfcControls:Asn1SequenceOf
46         {
47                 
48                 /// <summary> Controls context specific tag</summary>
49                 public const int CONTROLS = 0;
50                 
51                 //*************************************************************************
52                 // Constructors for Controls
53                 //*************************************************************************
54                 
55                 /// <summary> Constructs a Controls object. This constructor is used in combination
56                 /// with the add() method to construct a set of Controls to send to the
57                 /// server.
58                 /// </summary>
59                 public RfcControls():base(5)
60                 {
61                 }
62                 
63                 /// <summary> Constructs a Controls object by decoding it from an InputStream.</summary>
64                 [CLSCompliantAttribute(false)]
65                 public RfcControls(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(dec, in_Renamed, len)
66                 {
67                         
68                         // Convert each SEQUENCE element to a Control
69                         for (int i = 0; i < size(); i++)
70                         {
71                                 RfcControl tempControl = new RfcControl((Asn1Sequence) get_Renamed(i));
72                                 set_Renamed(i, tempControl);
73                         }
74                 }
75                 
76                 //*************************************************************************
77                 // Mutators
78                 //*************************************************************************
79                 
80                 /// <summary> Override add() of Asn1SequenceOf to only accept a Control type.</summary>
81                 public void  add(RfcControl control)
82                 {
83                         base.add(control);
84                 }
85                 
86                 /// <summary> Override set() of Asn1SequenceOf to only accept a Control type.</summary>
87                 public void  set_Renamed(int index, RfcControl control)
88                 {
89                         base.set_Renamed(index, control);
90                 }
91                 
92                 //*************************************************************************
93                 // Accessors
94                 //*************************************************************************
95                 
96                 /// <summary> Override getIdentifier to return a context specific id.</summary>
97                 public override Asn1Identifier getIdentifier()
98                 {
99                         return new Asn1Identifier(Asn1Identifier.CONTEXT, true, CONTROLS);
100                 }
101         }
102 }