forgot this
[mono.git] / mcs / class / System / System.Net / CookieContainer.cs
1 //\r
2 // System.Net.CookieContainer\r
3 //\r
4 // Author:\r
5 //   Lawrence Pit (loz@cable.a2000.nl)\r
6 //\r
7 \r
8 using System;\r
9 using System.Collections;\r
10 using System.Runtime.Serialization;\r
11 \r
12 namespace System.Net \r
13 {\r
14         [Serializable]\r
15         public class CookieContainer\r
16         {               \r
17                 private int count;\r
18                 private int capacity;\r
19                 private int perDomainCapacity;\r
20                 private int maxCookieSize;\r
21                                 \r
22                 // ctors\r
23                 public CookieContainer () : this (DefaultCookieLimit) \r
24                 { \r
25                 } \r
26         \r
27                 public CookieContainer (int capacity) : \r
28                         this (capacity, DefaultPerDomainCookieLimit, DefaultCookieLengthLimit) \r
29                 { \r
30                 }\r
31                 \r
32                 public CookieContainer (int capacity, int perDomainCapacity, int maxCookieSize)\r
33                 {\r
34                         this.capacity = capacity;\r
35                         this.perDomainCapacity = perDomainCapacity;\r
36                         this.maxCookieSize = maxCookieSize;\r
37                         this.count = 0;\r
38                 }\r
39 \r
40                 // fields               \r
41                 \r
42                 public const int DefaultCookieLengthLimit = 4096;\r
43                 public const int DefaultCookieLimit = 300;\r
44                 public const int DefaultPerDomainCookieLimit = 20;\r
45                 \r
46                 // properties\r
47                 \r
48                 public int Count { \r
49                         get { return count; }\r
50                 }\r
51                 \r
52                 public int Capacity {\r
53                         get { return capacity; }\r
54                         set { \r
55                                 if ((value <= 0) ||\r
56                                     (value < perDomainCapacity && perDomainCapacity != Int32.MaxValue))\r
57                                         throw new ArgumentOutOfRangeException ("value");\r
58                                 if (value < maxCookieSize)\r
59                                         maxCookieSize = value;\r
60                                 capacity = value;                                                       \r
61                         }\r
62                 }\r
63                 \r
64                 public int MaxCookieSize {\r
65                         get { return maxCookieSize; }\r
66                         set {\r
67                                 if (value <= 0)\r
68                                         throw new ArgumentOutOfRangeException ("value");                                \r
69                                 maxCookieSize = value;\r
70                         }\r
71                 }\r
72                 \r
73                 public int PerDomainCapacity {\r
74                         get { return perDomainCapacity; }\r
75                         set {\r
76                                 if ((value <= 0) ||\r
77                                     (value > DefaultCookieLimit && value != Int32.MaxValue))\r
78                                         throw new ArgumentOutOfRangeException ("value");                                        \r
79                                 if (value < perDomainCapacity)\r
80                                         perDomainCapacity = value;\r
81                                 perDomainCapacity = value;\r
82                         }\r
83                 }\r
84                 \r
85                 [MonoTODO]\r
86                 public void Add (Cookie cookie) \r
87                 {\r
88                         throw new NotImplementedException ();\r
89                 }\r
90 \r
91                 [MonoTODO]\r
92                 public void Add (CookieCollection cookies)\r
93                 {\r
94                         throw new NotImplementedException ();\r
95                 }\r
96 \r
97                 [MonoTODO]\r
98                 public void Add (Uri uri, Cookie cookie)\r
99                 {\r
100                         throw new NotImplementedException ();\r
101                 }\r
102 \r
103                 [MonoTODO]\r
104                 public void Add (Uri uri, CookieCollection cookies)\r
105                 {\r
106                         throw new NotImplementedException ();\r
107                 }               \r
108 \r
109                 [MonoTODO]\r
110                 public string GetCookieHeader (Uri uri)\r
111                 {\r
112                         throw new NotImplementedException ();\r
113                 }\r
114 \r
115                 [MonoTODO]\r
116                 public CookieCollection GetCookies (Uri uri)\r
117                 {\r
118                         throw new NotImplementedException ();                           \r
119                 }\r
120 \r
121                 [MonoTODO]\r
122                 public void SetCookies (Uri uri, string cookieHeader)\r
123                 {\r
124                         throw new NotImplementedException ();                   \r
125                 }\r
126 \r
127         } // CookieContainer\r
128 \r
129 } // System.Net\r
130 \r