Initialize the gmime for upstream
[platform/upstream/gmime.git] / mono / HeaderList.custom
1                 [DllImport ("gmime")]
2                 static extern IntPtr g_mime_header_list_set (IntPtr raw, IntPtr name, IntPtr value);
3                 
4                 [DllImport ("gmime")]
5                 static extern IntPtr g_mime_header_list_get (IntPtr raw, IntPtr name);
6                 
7                 public string this[string name] {
8                         get {
9                                 if (name == null)
10                                         throw new ArgumentNullException ("name");
11                                 
12                                 IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
13                                 IntPtr raw_ret = g_mime_header_list_get (Handle, native_name);
14                                 string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
15                                 GLib.Marshaller.Free (native_name);
16                                 
17                                 return ret;
18                         }
19                         
20                         set {
21                                 if (name == null)
22                                         throw new ArgumentNullException ("name");
23                                 
24                                 IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
25                                 IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
26                                 g_mime_header_list_set (Handle, native_name, native_value);
27                                 GLib.Marshaller.Free (native_value);
28                                 GLib.Marshaller.Free (native_name);
29                         }
30                 }
31                 
32                 [DllImport ("gmime")]
33                 static extern bool g_mime_header_list_get_iter (IntPtr raw, IntPtr iter);
34                 
35                 internal HeaderIter GetIter ()
36                 {
37                         HeaderIter iter = new HeaderIter ();
38                         
39                         g_mime_header_list_get_iter (Handle, iter.Handle);
40                         
41                         return iter;
42                 }
43                 
44                 public IEnumerator GetEnumerator ()
45                 {
46                         return new HeaderEnumerator (this);
47                 }
48                 
49                 public StreamWrapper Stream {
50                         get {
51                                 GMime.StreamMem mem_stream = new GMime.StreamMem ();
52                                 this.WriteToStream (mem_stream);
53                                 mem_stream.Seek (0);
54                                 return new StreamWrapper (mem_stream);
55                         }
56                 }