summaryrefslogtreecommitdiffstats
path: root/trunk/avahi-sharp
diff options
context:
space:
mode:
authorFederico Lucifredi <flucifredi@acm.org>2006-12-19 19:11:45 +0000
committerFederico Lucifredi <flucifredi@acm.org>2006-12-19 19:11:45 +0000
commit6386804f93ee272fcff73459a9cfe0b847101609 (patch)
tree26fa54c9fdaeb608560ccaa249f153e04e6e5798 /trunk/avahi-sharp
parent16ed6d63c6c231cb5e606421ae3a245b2948185f (diff)
Branching for wide-area publishing work
git-svn-id: file:///home/lennart/svn/public/avahi/branches/federico@1344 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'trunk/avahi-sharp')
-rw-r--r--trunk/avahi-sharp/AddressResolver.cs192
-rw-r--r--trunk/avahi-sharp/AssemblyInfo.cs50
-rw-r--r--trunk/avahi-sharp/AvahiTest.cs133
-rw-r--r--trunk/avahi-sharp/BrowserBase.cs52
-rw-r--r--trunk/avahi-sharp/Client.cs385
-rw-r--r--trunk/avahi-sharp/ClientException.cs125
-rw-r--r--trunk/avahi-sharp/DomainBrowser.cs200
-rw-r--r--trunk/avahi-sharp/EntryGroup.cs378
-rw-r--r--trunk/avahi-sharp/HostNameResolver.cs169
-rw-r--r--trunk/avahi-sharp/Makefile.am84
-rw-r--r--trunk/avahi-sharp/RecordBrowser.cs227
-rw-r--r--trunk/avahi-sharp/ResolverBase.cs36
-rw-r--r--trunk/avahi-sharp/ServiceBrowser.cs216
-rw-r--r--trunk/avahi-sharp/ServiceResolver.cs224
-rw-r--r--trunk/avahi-sharp/ServiceTypeBrowser.cs199
-rw-r--r--trunk/avahi-sharp/Utility.cs114
-rw-r--r--trunk/avahi-sharp/avahi-sharp-docs.source4
-rw-r--r--trunk/avahi-sharp/avahi-sharp.dll.config.in5
-rw-r--r--trunk/avahi-sharp/avahi.snkbin0 -> 596 bytes
-rw-r--r--trunk/avahi-sharp/en/Avahi.xml6
-rw-r--r--trunk/avahi-sharp/en/Avahi/AddressResolver.xml113
-rw-r--r--trunk/avahi-sharp/en/Avahi/BrowserBase.xml59
-rw-r--r--trunk/avahi-sharp/en/Avahi/Client.xml178
-rw-r--r--trunk/avahi-sharp/en/Avahi/ClientException.xml29
-rw-r--r--trunk/avahi-sharp/en/Avahi/ClientFlags.xml51
-rw-r--r--trunk/avahi-sharp/en/Avahi/ClientState.xml66
-rw-r--r--trunk/avahi-sharp/en/Avahi/ClientStateArgs.xml41
-rw-r--r--trunk/avahi-sharp/en/Avahi/ClientStateHandler.xml23
-rw-r--r--trunk/avahi-sharp/en/Avahi/DomainBrowser.xml101
-rw-r--r--trunk/avahi-sharp/en/Avahi/DomainBrowserType.xml66
-rw-r--r--trunk/avahi-sharp/en/Avahi/DomainInfo.xml61
-rw-r--r--trunk/avahi-sharp/en/Avahi/DomainInfoArgs.xml41
-rw-r--r--trunk/avahi-sharp/en/Avahi/DomainInfoHandler.xml23
-rw-r--r--trunk/avahi-sharp/en/Avahi/EntryGroup.xml491
-rw-r--r--trunk/avahi-sharp/en/Avahi/EntryGroupState.xml66
-rw-r--r--trunk/avahi-sharp/en/Avahi/EntryGroupStateArgs.xml41
-rw-r--r--trunk/avahi-sharp/en/Avahi/EntryGroupStateHandler.xml23
-rw-r--r--trunk/avahi-sharp/en/Avahi/ErrorCode.xml526
-rw-r--r--trunk/avahi-sharp/en/Avahi/ErrorCodeArgs.xml41
-rw-r--r--trunk/avahi-sharp/en/Avahi/ErrorCodeHandler.xml23
-rw-r--r--trunk/avahi-sharp/en/Avahi/HostAddressArgs.xml55
-rw-r--r--trunk/avahi-sharp/en/Avahi/HostAddressHandler.xml23
-rw-r--r--trunk/avahi-sharp/en/Avahi/HostNameResolver.xml115
-rw-r--r--trunk/avahi-sharp/en/Avahi/LookupFlags.xml71
-rw-r--r--trunk/avahi-sharp/en/Avahi/LookupResultFlags.xml81
-rw-r--r--trunk/avahi-sharp/en/Avahi/Protocol.xml46
-rw-r--r--trunk/avahi-sharp/en/Avahi/PublishFlags.xml121
-rw-r--r--trunk/avahi-sharp/en/Avahi/RecordBrowser.xml107
-rw-r--r--trunk/avahi-sharp/en/Avahi/RecordClass.xml26
-rw-r--r--trunk/avahi-sharp/en/Avahi/RecordInfo.xml94
-rw-r--r--trunk/avahi-sharp/en/Avahi/RecordInfoArgs.xml41
-rw-r--r--trunk/avahi-sharp/en/Avahi/RecordInfoHandler.xml23
-rw-r--r--trunk/avahi-sharp/en/Avahi/RecordType.xml116
-rw-r--r--trunk/avahi-sharp/en/Avahi/ResolverBase.xml37
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceBrowser.xml119
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceInfo.xml138
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceInfoArgs.xml41
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceInfoHandler.xml23
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceResolver.xml125
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceTypeBrowser.xml113
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceTypeInfo.xml72
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceTypeInfoArgs.xml41
-rw-r--r--trunk/avahi-sharp/en/Avahi/ServiceTypeInfoHandler.xml23
-rw-r--r--trunk/avahi-sharp/en/index.xml79
-rwxr-xr-xtrunk/avahi-sharp/gencfg.sh12
65 files changed, 6604 insertions, 0 deletions
diff --git a/trunk/avahi-sharp/AddressResolver.cs b/trunk/avahi-sharp/AddressResolver.cs
new file mode 100644
index 0000000..3025102
--- /dev/null
+++ b/trunk/avahi-sharp/AddressResolver.cs
@@ -0,0 +1,192 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Collections;
+using System.Net;
+using System.Runtime.InteropServices;
+using Mono.Unix;
+
+namespace Avahi
+{
+
+ internal delegate void AddressResolverCallback (IntPtr resolver, int iface, Protocol proto,
+ ResolverEvent revent, IntPtr address,
+ IntPtr hostname, LookupResultFlags flags, IntPtr userdata);
+
+ public delegate void HostAddressHandler (object o, HostAddressArgs args);
+
+ public class HostAddressArgs : EventArgs
+ {
+ private string host;
+ private IPAddress address;
+
+ public string Host
+ {
+ get { return host; }
+ }
+
+ public IPAddress Address
+ {
+ get { return address; }
+ }
+
+ public HostAddressArgs (string host, IPAddress address)
+ {
+ this.host = host;
+ this.address = address;
+ }
+ }
+
+ public class AddressResolver : ResolverBase, IDisposable
+ {
+ private IntPtr handle;
+ private Client client;
+ private int iface;
+ private Protocol proto;
+ private IPAddress address;
+ private LookupFlags flags;
+ private AddressResolverCallback cb;
+
+ private IPAddress currentAddress;
+ private string currentHost;
+
+ private ArrayList foundListeners = new ArrayList ();
+ private ArrayList timeoutListeners = new ArrayList ();
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_address_resolver_new (IntPtr client, int iface, Protocol proto,
+ IntPtr address, LookupFlags flags,
+ AddressResolverCallback cb,
+ IntPtr userdata);
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_address_resolver_free (IntPtr handle);
+
+ public event HostAddressHandler Found
+ {
+ add {
+ foundListeners.Add (value);
+ Start ();
+ }
+ remove {
+ foundListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public event EventHandler Timeout
+ {
+ add {
+ timeoutListeners.Add (value);
+ Start ();
+ }
+ remove {
+ timeoutListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public IPAddress Address
+ {
+ get { return currentAddress; }
+ }
+
+ public string HostName
+ {
+ get { return currentHost; }
+ }
+
+ public AddressResolver (Client client, IPAddress address) : this (client, -1, Protocol.Unspecified,
+ address, LookupFlags.None)
+ {
+ }
+
+ public AddressResolver (Client client, int iface, Protocol proto, IPAddress address, LookupFlags flags)
+ {
+ this.client = client;
+ this.iface = iface;
+ this.proto = proto;
+ this.address = address;
+ this.flags = flags;
+ cb = OnAddressResolverCallback;
+ }
+
+ ~AddressResolver ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ Stop (true);
+ }
+
+ private void Start ()
+ {
+ if (client.Handle == IntPtr.Zero || handle != IntPtr.Zero ||
+ (foundListeners.Count == 0 && timeoutListeners.Count == 0))
+ return;
+
+ IntPtr addrPtr = Utility.AddressToPtr (address);
+
+ lock (client) {
+ handle = avahi_address_resolver_new (client.Handle, iface, proto, addrPtr, flags,
+ cb, IntPtr.Zero);
+
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
+ }
+
+ Utility.Free (addrPtr);
+ }
+
+ private void Stop (bool force)
+ {
+ if (client.Handle != IntPtr.Zero && handle != IntPtr.Zero &&
+ (force || (foundListeners.Count == 0 && timeoutListeners.Count == 0))) {
+
+ lock (client) {
+ avahi_address_resolver_free (handle);
+ handle = IntPtr.Zero;
+ }
+ }
+ }
+
+ private void OnAddressResolverCallback (IntPtr resolver, int iface, Protocol proto,
+ ResolverEvent revent, IntPtr address,
+ IntPtr hostname, LookupResultFlags flags, IntPtr userdata)
+ {
+ switch (revent) {
+ case ResolverEvent.Found:
+ currentAddress = Utility.PtrToAddress (address);
+ currentHost = Utility.PtrToString (hostname);
+
+ foreach (HostAddressHandler handler in foundListeners)
+ handler (this, new HostAddressArgs (currentHost, currentAddress));
+ break;
+ case ResolverEvent.Failure:
+ EmitFailure (client.LastError);
+ break;
+ }
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/AssemblyInfo.cs b/trunk/avahi-sharp/AssemblyInfo.cs
new file mode 100644
index 0000000..f8dd4ed
--- /dev/null
+++ b/trunk/avahi-sharp/AssemblyInfo.cs
@@ -0,0 +1,50 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("avahi-sharp")]
+[assembly: AssemblyDescription("Mono bindings for the Avahi mDNS/DNS-SD stack")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("(C) 2005 James Willcox <snorp@snorp.net>")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.0")]
diff --git a/trunk/avahi-sharp/AvahiTest.cs b/trunk/avahi-sharp/AvahiTest.cs
new file mode 100644
index 0000000..ba4d59b
--- /dev/null
+++ b/trunk/avahi-sharp/AvahiTest.cs
@@ -0,0 +1,133 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Collections;
+using System.Text;
+using System.Net;
+using Avahi;
+
+public class AvahiTest {
+ private static Client client;
+ private static ArrayList objects = new ArrayList ();
+
+ public static void Main () {
+ client = new Client ();
+
+ Console.WriteLine ("joined service name: " + Client.JoinServiceName ("FooBar", "_foo", "local"));
+
+ EntryGroup eg = new EntryGroup (client);
+ eg.StateChanged += OnEntryGroupChanged;
+ eg.AddService ("foobar2", "_dingdong._tcp", client.DomainName,
+ 444, new string[] { "foo=stuff", "bar=stuff2", "baz=stuff3" });
+ eg.Commit ();
+ BrowseServiceTypes ("local");
+ Console.WriteLine ("Press enter to quit");
+ Console.ReadLine ();
+ client.Dispose ();
+ }
+
+ private static void OnEntryGroupChanged (object o, EntryGroupStateArgs args)
+ {
+ Console.WriteLine ("Entry group status: " + args.State);
+ if (args.State == EntryGroupState.Established) {
+ DomainBrowser browser = new DomainBrowser (client);
+ objects.Add (browser);
+
+ browser.DomainAdded += OnDomainAdded;
+ }
+ }
+
+ private static void OnDomainAdded (object o, DomainInfoArgs args)
+ {
+ Console.WriteLine ("Got domain added: " + args.Domain.Domain);
+ // BrowseServiceTypes (args.Domain.Domain);
+ }
+
+ private static void BrowseServiceTypes (string domain)
+ {
+ ServiceTypeBrowser stb = new ServiceTypeBrowser (client, domain);
+ objects.Add (stb);
+
+ stb.CacheExhausted += OnCacheExhausted;
+ stb.ServiceTypeAdded += OnServiceTypeAdded;
+ }
+
+ private static void OnCacheExhausted (object o, EventArgs args)
+ {
+ Console.WriteLine ("Cache is exhausted");
+ }
+
+ private static void OnServiceTypeAdded (object o, ServiceTypeInfoArgs args)
+ {
+ Console.WriteLine ("Got service type: " + args.ServiceType.ServiceType);
+ ServiceBrowser sb = new ServiceBrowser (client, args.ServiceType.ServiceType, args.ServiceType.Domain);
+ objects.Add (sb);
+
+ sb.ServiceAdded += OnServiceAdded;
+ }
+
+ private static void OnServiceAdded (object o, ServiceInfoArgs args)
+ {
+ // Console.WriteLine ("Got service: " + info.Name);
+ ServiceResolver resolver = new ServiceResolver (client, args.Service);
+ objects.Add (resolver);
+ resolver.Found += OnServiceResolved;
+ }
+
+ private static void OnServiceResolved (object o, ServiceInfoArgs args)
+ {
+ objects.Remove (o);
+
+ Console.WriteLine ("Service '{0}' at {1}:{2}", args.Service.Name, args.Service.HostName, args.Service.Port);
+ foreach (byte[] bytes in args.Service.Text) {
+ Console.WriteLine ("Text: " + Encoding.UTF8.GetString (bytes));
+ }
+
+ AddressResolver ar = new AddressResolver (client, args.Service.Address);
+ objects.Add (ar);
+
+ ar.Found += OnAddressResolved;
+ ar.Failed += OnAddressResolverFailed;
+ }
+
+ private static void OnAddressResolverFailed (object o, ErrorCodeArgs args)
+ {
+ Console.WriteLine ("Failed to resolve '{0}': {1}", (o as AddressResolver).Address, args.ErrorCode);
+ }
+
+ private static void OnAddressResolved (object o, HostAddressArgs args)
+ {
+ objects.Remove (o);
+
+ Console.WriteLine ("Resolved {0} to {1}", args.Address, args.Host);
+ HostNameResolver hr = new HostNameResolver (client, args.Host);
+ objects.Add (hr);
+
+ hr.Found += OnHostNameResolved;
+ }
+
+ private static void OnHostNameResolved (object o, HostAddressArgs args)
+ {
+ objects.Remove (o);
+ Console.WriteLine ("Resolved {0} to {1}", args.Host, args.Address);
+ }
+}
diff --git a/trunk/avahi-sharp/BrowserBase.cs b/trunk/avahi-sharp/BrowserBase.cs
new file mode 100644
index 0000000..0a1e3a7
--- /dev/null
+++ b/trunk/avahi-sharp/BrowserBase.cs
@@ -0,0 +1,52 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+
+namespace Avahi
+{
+ public abstract class BrowserBase
+ {
+ public event EventHandler CacheExhausted;
+ public event EventHandler AllForNow;
+ public event EventHandler Failed;
+
+ internal void EmitBrowserEvent (BrowserEvent bevent)
+ {
+ switch (bevent) {
+ case BrowserEvent.CacheExhausted:
+ if (CacheExhausted != null)
+ CacheExhausted (this, new EventArgs ());
+ break;
+ case BrowserEvent.AllForNow:
+ if (AllForNow != null)
+ AllForNow (this, new EventArgs ());
+ break;
+ case BrowserEvent.Failure:
+ if (Failed != null)
+ Failed (this, new EventArgs ());
+ break;
+ default:
+ break;
+ }
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/Client.cs b/trunk/avahi-sharp/Client.cs
new file mode 100644
index 0000000..02763d4
--- /dev/null
+++ b/trunk/avahi-sharp/Client.cs
@@ -0,0 +1,385 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+
+using System;
+using System.Threading;
+using System.Collections;
+using System.Runtime.InteropServices;
+using Mono.Unix;
+using Mono.Unix.Native;
+
+using Stdlib = Mono.Unix.Native.Stdlib;
+
+namespace Avahi
+{
+ internal enum ResolverEvent {
+ Found,
+ Failure
+ }
+
+ internal enum BrowserEvent {
+ Added,
+ Removed,
+ CacheExhausted,
+ AllForNow,
+ Failure
+ }
+
+ internal delegate int PollCallback (IntPtr ufds, uint nfds, int timeout);
+ internal delegate void ClientCallback (IntPtr client, ClientState state, IntPtr userData);
+
+ public delegate void ClientStateHandler (object o, ClientStateArgs state);
+
+ public class ClientStateArgs : EventArgs
+ {
+ private ClientState state;
+ private ErrorCode error;
+
+ public ClientState State
+ {
+ get { return state; }
+ }
+
+ public ErrorCode Error
+ {
+ get { return error; }
+ }
+
+ public ClientStateArgs (ClientState state, ErrorCode error)
+ {
+ this.state = state;
+ this.error = error;
+ }
+ }
+
+ public enum Protocol {
+ Unspecified = -1,
+ IPv4 = 0,
+ IPv6 = 1
+ }
+
+ internal enum ServerState {
+ Invalid,
+ Registering,
+ Running,
+ Collision
+ }
+
+ public enum ClientState {
+ Registering = ServerState.Registering,
+ Running = ServerState.Running,
+ Collision = ServerState.Collision,
+ Failure = 100,
+ Connecting = 101
+ }
+
+ [Flags]
+ public enum LookupFlags {
+ None = 0,
+ UseWideArea = 1,
+ UseMulticast = 2,
+ NoTxt = 4,
+ NoAddress = 8
+ }
+
+ [Flags]
+ public enum LookupResultFlags {
+ None = 0,
+ Cached = 1,
+ WideArea = 2,
+ Multicast = 4,
+ Local = 8,
+ OurOwn = 16,
+ }
+
+ [Flags]
+ public enum ClientFlags {
+ None = 0,
+ IgnoreUserConfig = 1,
+ NoFail = 2
+ }
+
+ public class Client : IDisposable
+ {
+ private IntPtr handle;
+ private ClientCallback cb;
+ private PollCallback pollcb;
+ private IntPtr spoll;
+
+ private Thread thread;
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_client_new (IntPtr poll, ClientFlags flags, ClientCallback handler,
+ IntPtr userData, out int error);
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_client_free (IntPtr handle);
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_client_get_version_string (IntPtr handle);
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_client_get_host_name (IntPtr handle);
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_client_get_domain_name (IntPtr handle);
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_client_get_host_name_fqdn (IntPtr handle);
+
+ [DllImport ("avahi-client")]
+ private static extern ClientState avahi_client_get_state (IntPtr handle);
+
+ [DllImport ("avahi-client")]
+ private static extern int avahi_client_errno (IntPtr handle);
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_simple_poll_new ();
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_simple_poll_get (IntPtr spoll);
+
+ [DllImport ("avahi-common")]
+ private static extern void avahi_simple_poll_free (IntPtr spoll);
+
+ [DllImport ("avahi-common")]
+ private static extern int avahi_simple_poll_loop (IntPtr spoll);
+
+ [DllImport ("avahi-common")]
+ private static extern void avahi_simple_poll_set_func (IntPtr spoll, PollCallback cb);
+
+ [DllImport ("avahi-common")]
+ private static extern void avahi_simple_poll_quit (IntPtr spoll);
+
+ [DllImport ("avahi-client")]
+ private static extern uint avahi_client_get_local_service_cookie (IntPtr client);
+
+ [DllImport ("avahi-common")]
+ private static extern int avahi_service_name_join (IntPtr buf, int len, byte[] name, byte[] type,
+ byte[] domain);
+
+ [DllImport ("avahi-common")]
+ private static extern int avahi_service_name_split (byte[] service, IntPtr name, int name_len,
+ IntPtr type, int type_len,
+ IntPtr domain, int domain_len);
+
+
+ [DllImport ("libc")]
+ private static extern int poll(IntPtr ufds, uint nfds, int timeout);
+
+ public event ClientStateHandler StateChanged;
+
+ internal IntPtr Handle
+ {
+ get { return handle; }
+ }
+
+ public string Version
+ {
+ get {
+ lock (this) {
+ return Utility.PtrToString (avahi_client_get_version_string (handle));
+ }
+ }
+ }
+
+ public string HostName
+ {
+ get {
+ lock (this) {
+ return Utility.PtrToString (avahi_client_get_host_name (handle));
+ }
+ }
+ }
+
+ public string DomainName
+ {
+ get {
+ lock (this) {
+ return Utility.PtrToString (avahi_client_get_domain_name (handle));
+ }
+ }
+ }
+
+ public string HostNameFqdn
+ {
+ get {
+ lock (this) {
+ return Utility.PtrToString (avahi_client_get_host_name_fqdn (handle));
+ }
+ }
+ }
+
+ public ClientState State
+ {
+ get {
+ lock (this) {
+ return (ClientState) avahi_client_get_state (handle);
+ }
+ }
+ }
+
+ public uint LocalServiceCookie
+ {
+ get {
+ lock (this) {
+ return avahi_client_get_local_service_cookie (handle);
+ }
+ }
+ }
+
+ internal ErrorCode LastError
+ {
+ get {
+ lock (this) {
+ return (ErrorCode) avahi_client_errno (handle);
+ }
+ }
+ }
+
+ public Client (ClientFlags flags)
+ {
+ spoll = avahi_simple_poll_new ();
+
+ pollcb = OnPollCallback;
+ avahi_simple_poll_set_func (spoll, pollcb);
+ IntPtr poll = avahi_simple_poll_get (spoll);
+ cb = OnClientCallback;
+
+ int error;
+ handle = avahi_client_new (poll, flags, cb, IntPtr.Zero, out error);
+ if (error != 0)
+ throw new ClientException (error);
+
+ thread = new Thread (PollLoop);
+ thread.IsBackground = true;
+ thread.Start ();
+ }
+
+ public Client () : this (ClientFlags.None) {
+ }
+
+ ~Client ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ if (handle != IntPtr.Zero) {
+ lock (this) {
+ avahi_client_free (handle);
+ handle = IntPtr.Zero;
+
+ avahi_simple_poll_quit (spoll);
+ Monitor.Wait (this);
+
+ avahi_simple_poll_free (spoll);
+ }
+ }
+ }
+
+ public static string JoinServiceName (string name, string type, string domain)
+ {
+ int len = 4 * (name.Length + type.Length + domain.Length) + 4;
+ IntPtr buf = Stdlib.malloc ((ulong) len);
+
+ int ret = avahi_service_name_join (buf, len,
+ Utility.StringToBytes (name),
+ Utility.StringToBytes (type),
+ Utility.StringToBytes (domain));
+
+ if (ret < 0) {
+ Utility.Free (buf);
+ return null; // FIXME, should throw exception
+ }
+
+ string service = Utility.PtrToString (buf);
+ Utility.Free (buf);
+
+ return service;
+ }
+
+ public static void SplitServiceName (string service, out string name, out string type, out string domain)
+ {
+ int len = 1024;
+
+ IntPtr namePtr = Stdlib.malloc ((ulong) len);
+ IntPtr typePtr = Stdlib.malloc ((ulong) len);
+ IntPtr domainPtr = Stdlib.malloc ((ulong) len);
+
+ int ret = avahi_service_name_split (Utility.StringToBytes (service), namePtr, len, typePtr, len,
+ domainPtr, len);
+
+ if (ret < 0) {
+ Utility.Free (namePtr);
+ Utility.Free (typePtr);
+ Utility.Free (domainPtr);
+
+ name = null;
+ type = null;
+ domain = null;
+ return;
+ }
+
+ name = Utility.PtrToString (namePtr);
+ type = Utility.PtrToString (typePtr);
+ domain = Utility.PtrToString (domainPtr);
+
+ Utility.Free (namePtr);
+ Utility.Free (typePtr);
+ Utility.Free (domainPtr);
+ }
+
+ internal void ThrowError ()
+ {
+ ErrorCode error = LastError;
+
+ if (error != ErrorCode.Ok)
+ throw new ClientException (error);
+ }
+
+ private void OnClientCallback (IntPtr client, ClientState state, IntPtr userData)
+ {
+ if (StateChanged != null)
+ StateChanged (this, new ClientStateArgs (state, LastError));
+ }
+
+ private int OnPollCallback (IntPtr ufds, uint nfds, int timeout) {
+ Monitor.Exit (this);
+ int result = poll (ufds, nfds, timeout);
+ Monitor.Enter (this);
+ return result;
+ }
+
+ private void PollLoop () {
+ try {
+ lock (this) {
+ avahi_simple_poll_loop (spoll);
+ Monitor.Pulse (this);
+ }
+ } catch (Exception e) {
+ Console.Error.WriteLine ("Error in avahi-sharp event loop: " + e);
+ }
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/ClientException.cs b/trunk/avahi-sharp/ClientException.cs
new file mode 100644
index 0000000..fadcce9
--- /dev/null
+++ b/trunk/avahi-sharp/ClientException.cs
@@ -0,0 +1,125 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace Avahi
+{
+ public enum ErrorCode {
+ Ok = 0,
+ Failure = -1,
+ BadState = -2,
+ InvalidHostName = - 3,
+ InvalidDomainName = -4,
+ NoNetwork = -5,
+ InvalidTTL = -6,
+ IsPattern = -7,
+ Collision = -8,
+ InvalidRecord = -9,
+ InvalidServiceName = -10,
+ InvalidServiceType = -11,
+ InvalidPort = -12,
+ InvalidKey = -13,
+ InvalidAddress = -14,
+ Timeout = -15,
+ TooManyClients = -16,
+ TooManyObjects = -17,
+ TooManyEntries = -18,
+ OS = -19,
+ AccessDenied = -20,
+ InvalidOperation = -21,
+ DBusError = -22,
+ Disconnected = -23,
+ NoMemory = -24,
+ InvalidObject = -25,
+ NoDaemon = -26,
+ InvalidInterface = -27,
+ InvalidProtocol = -28,
+ InvalidFlags = -29,
+ NotFound = -30,
+ InvalidConfig = -31,
+ VersionMismatch = -32,
+ InvalidServiceSubtype = -33,
+ InvalidPacket = -34,
+ InvalidDnsError = -35,
+ DnsFormErr = -36,
+ DnsServFail = -37,
+ DnsNxDomain = -38,
+ DnsNoTimp = -39,
+ DnsRefused = -40,
+ DnsYxDomain = -41,
+ DnsYxRrSet = -42,
+ DnsNxRrSet = -43,
+ DnsNotAuth = -44,
+ DnsNotZone = -45,
+ InvalidRData = -46,
+ InvalidDnsClass = -47,
+ InvalidDnsType = -48,
+ NotSupported = -49,
+ NotPermitted = -50
+ }
+
+ public delegate void ErrorCodeHandler (object o, ErrorCodeArgs args);
+
+ public class ErrorCodeArgs : EventArgs
+ {
+ private ErrorCode code;
+
+ public ErrorCode ErrorCode
+ {
+ get { return code; }
+ }
+
+ public ErrorCodeArgs (ErrorCode code)
+ {
+ this.code = code;
+ }
+ }
+
+ public class ClientException : ApplicationException
+ {
+ private ErrorCode code;
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_strerror (ErrorCode code);
+
+ public ErrorCode ErrorCode
+ {
+ get { return code; }
+ }
+
+ internal ClientException (int code) : this ((ErrorCode) code) {
+ }
+
+ internal ClientException (ErrorCode code) : base (GetErrorString (code))
+ {
+ this.code = code;
+ }
+
+ private static string GetErrorString (ErrorCode code)
+ {
+ IntPtr str = avahi_strerror (code);
+ return Utility.PtrToString (str);
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/DomainBrowser.cs b/trunk/avahi-sharp/DomainBrowser.cs
new file mode 100644
index 0000000..50da54e
--- /dev/null
+++ b/trunk/avahi-sharp/DomainBrowser.cs
@@ -0,0 +1,200 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Collections;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Avahi
+{
+ internal delegate void DomainBrowserCallback (IntPtr browser, int iface, Protocol proto, BrowserEvent bevent,
+ IntPtr domain, LookupResultFlags flags, IntPtr userdata);
+
+ public enum DomainBrowserType {
+ Browse,
+ BrowseDefault,
+ Register,
+ RegisterDefault,
+ BrowseLegacy
+ }
+
+ public struct DomainInfo
+ {
+ public int NetworkInterface;
+ public Protocol Protocol;
+ public string Domain;
+ public LookupResultFlags Flags;
+ }
+
+ public class DomainInfoArgs : EventArgs
+ {
+ private DomainInfo domain;
+
+ public DomainInfo Domain
+ {
+ get { return domain; }
+ }
+
+ public DomainInfoArgs (DomainInfo domain)
+ {
+ this.domain = domain;
+ }
+ }
+
+ public delegate void DomainInfoHandler (object o, DomainInfoArgs args);
+
+ public class DomainBrowser : BrowserBase, IDisposable
+ {
+ private IntPtr handle;
+ private ArrayList infos = new ArrayList ();
+ private Client client;
+ private int iface;
+ private Protocol proto;
+ private string domain;
+ private DomainBrowserType btype;
+ private LookupFlags flags;
+ private DomainBrowserCallback cb;
+
+ private ArrayList addListeners = new ArrayList ();
+ private ArrayList removeListeners = new ArrayList ();
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_domain_browser_new (IntPtr client, int iface, int proto,
+ byte[] domain, int btype, LookupFlags flags,
+ DomainBrowserCallback cb,
+ IntPtr userdata);
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_domain_browser_free (IntPtr handle);
+
+ public event DomainInfoHandler DomainAdded
+ {
+ add {
+ addListeners.Add (value);
+ Start ();
+ }
+ remove {
+ addListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public event DomainInfoHandler DomainRemoved
+ {
+ add {
+ removeListeners.Add (value);
+ Start ();
+ }
+ remove {
+ removeListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public DomainInfo[] Domains
+ {
+ get { return (DomainInfo[]) infos.ToArray (typeof (DomainInfo)); }
+ }
+
+ public DomainBrowser (Client client) : this (client, -1, Protocol.Unspecified, client.DomainName,
+ DomainBrowserType.Browse, LookupFlags.None) {
+ }
+
+ public DomainBrowser (Client client, int iface, Protocol proto, string domain,
+ DomainBrowserType btype, LookupFlags flags)
+ {
+ this.client = client;
+ this.iface = iface;
+ this.proto = proto;
+ this.domain = domain;
+ this.btype = btype;
+ this.flags = flags;
+ cb = OnDomainBrowserCallback;
+ }
+
+ ~DomainBrowser ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ Stop (true);
+ }
+
+ private void Start ()
+ {
+ if (client.Handle == IntPtr.Zero && handle != IntPtr.Zero ||
+ (addListeners.Count == 0 && removeListeners.Count == 0))
+ return;
+
+ lock (client) {
+ handle = avahi_domain_browser_new (client.Handle, iface, (int) proto,
+ Utility.StringToBytes (domain), (int) btype, flags,
+ cb, IntPtr.Zero);
+
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
+ }
+ }
+
+ private void Stop (bool force)
+ {
+ if (client.Handle != IntPtr.Zero && handle != IntPtr.Zero &&
+ (force || (addListeners.Count == 0 && removeListeners.Count == 0))) {
+ lock (client) {
+ avahi_domain_browser_free (handle);
+ handle = IntPtr.Zero;
+ }
+ }
+ }
+
+ private void OnDomainBrowserCallback (IntPtr browser, int iface, Protocol proto, BrowserEvent bevent,
+ IntPtr domain, LookupResultFlags flags, IntPtr userdata)
+ {
+
+ DomainInfo info;
+ info.NetworkInterface = iface;
+ info.Protocol = proto;
+ info.Domain = Utility.PtrToString (domain);
+ info.Flags = flags;
+
+ switch (bevent) {
+ case BrowserEvent.Added:
+ infos.Add (info);
+
+ foreach (DomainInfoHandler handler in addListeners)
+ handler (this, new DomainInfoArgs (info));
+ break;
+ case BrowserEvent.Removed:
+ infos.Remove (info);
+
+ foreach (DomainInfoHandler handler in removeListeners)
+ handler (this, new DomainInfoArgs (info));
+ break;
+ default:
+ EmitBrowserEvent (bevent);
+ break;
+ }
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/EntryGroup.cs b/trunk/avahi-sharp/EntryGroup.cs
new file mode 100644
index 0000000..02be643
--- /dev/null
+++ b/trunk/avahi-sharp/EntryGroup.cs
@@ -0,0 +1,378 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Net;
+using System.Runtime.InteropServices;
+using System.Text;
+using Mono.Unix;
+
+namespace Avahi
+{
+
+ [Flags]
+ public enum PublishFlags {
+ None = 0,
+ Unique = 1,
+ NoProbe = 2,
+ NoAnnounce = 4,
+ AllowMultiple = 8,
+ NoReverse = 16,
+ NoCookie = 32,
+ Update = 64,
+ UseWideArea = 128,
+ UseMulticast = 256
+ }
+
+ public enum EntryGroupState {
+ Uncommited,
+ Registering,
+ Established,
+ Collision,
+ Failure
+ }
+
+ public class EntryGroupStateArgs : EventArgs
+ {
+ private EntryGroupState state;
+
+ public EntryGroupState State
+ {
+ get { return state; }
+ }
+
+ public EntryGroupStateArgs (EntryGroupState state)
+ {
+ this.state = state;
+ }
+ }
+
+ internal delegate void EntryGroupCallback (IntPtr group, EntryGroupState state, IntPtr userdata);
+ public delegate void EntryGroupStateHandler (object o, EntryGroupStateArgs args);
+
+ public class EntryGroup : IDisposable
+ {
+ private Client client;
+ private IntPtr handle;
+ private EntryGroupCallback cb;
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_entry_group_new (IntPtr client, EntryGroupCallback cb, IntPtr userdata);
+
+ [DllImport ("avahi-client")]
+ private static extern int avahi_entry_group_commit (IntPtr group);
+
+ [DllImport ("avahi-client")]
+ private static extern int avahi_entry_group_reset (IntPtr group);
+
+ [DllImport ("avahi-client")]
+ private static extern EntryGroupState avahi_entry_group_get_state (IntPtr group);
+
+ [DllImport ("avahi-client")]
+ private static extern bool avahi_entry_group_is_empty (IntPtr group);
+
+ [DllImport ("avahi-client")]
+ private static extern int avahi_entry_group_add_service_strlst (IntPtr group, int iface, Protocol proto,
+ PublishFlags flags, byte[] name, byte[] type,
+ byte[] domain, byte[] host, UInt16 port,
+ IntPtr strlst);
+
+ [DllImport ("avahi-client")]
+ private static extern int avahi_entry_group_update_service_strlst (IntPtr group, int iface, Protocol proto,
+ PublishFlags flags, byte[] name,
+ byte[] type, byte[] domain, IntPtr strlst);
+
+ [DllImport ("avahi-client")]
+ private static extern int avahi_entry_group_add_service_subtype (IntPtr group, int iface, Protocol proto,
+ PublishFlags flags, byte[] name, byte[] type,
+ byte[] domain, byte[] subtype);
+
+ [DllImport ("avahi-client")]
+ private static extern int avahi_entry_group_add_address (IntPtr group, int iface, Protocol proto,
+ PublishFlags flags, byte[] name, IntPtr address);
+
+
+ [DllImport ("avahi-client")]
+ private static extern int avahi_entry_group_add_record (IntPtr group, int iface, Protocol proto,
+ PublishFlags flags, byte[] name, RecordClass clazz,
+ RecordType type, uint ttl, byte[] rdata, int size);
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_entry_group_free (IntPtr group);
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_string_list_new (IntPtr txt);
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_string_list_add (IntPtr list, byte[] txt);
+
+ [DllImport ("avahi-common")]
+ private static extern void avahi_string_list_free (IntPtr list);
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_alternative_service_name (byte[] name);
+
+ public event EntryGroupStateHandler StateChanged;
+
+ public EntryGroupState State
+ {
+ get {
+ lock (client) {
+ return avahi_entry_group_get_state (handle);
+ }
+ }
+ }
+
+ public bool IsEmpty
+ {
+ get {
+ lock (client) {
+ return avahi_entry_group_is_empty (handle);
+ }
+ }
+ }
+
+ public EntryGroup (Client client)
+ {
+ this.client = client;
+ cb = OnEntryGroupCallback;
+
+ lock (client) {
+ handle = avahi_entry_group_new (client.Handle, cb, IntPtr.Zero);
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
+ }
+ }
+
+ ~EntryGroup ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ if (client.Handle != IntPtr.Zero && handle != IntPtr.Zero) {
+ lock (client) {
+ avahi_entry_group_free (handle);
+ handle = IntPtr.Zero;
+ }
+ }
+ }
+
+ public void Commit ()
+ {
+ lock (client) {
+ if (avahi_entry_group_commit (handle) < 0)
+ client.ThrowError ();
+ }
+ }
+
+ public void Reset ()
+ {
+ lock (client) {
+ if (avahi_entry_group_reset (handle) < 0)
+ client.ThrowError ();
+ }
+ }
+
+ public void AddService (string name, string type, string domain,
+ UInt16 port, params string[] txt)
+ {
+ AddService (PublishFlags.None, name, type, domain, port, txt);
+ }
+
+ public void AddService (PublishFlags flags, string name, string type, string domain,
+ UInt16 port, params string[] txt)
+ {
+ AddService (-1, Protocol.Unspecified, flags, name, type, domain, null, port, txt);
+ }
+
+ public void AddService (int iface, Protocol proto, PublishFlags flags, string name, string type, string domain,
+ string host, UInt16 port, params string[] txt)
+ {
+ IntPtr list = avahi_string_list_new (IntPtr.Zero);
+
+ if (txt != null) {
+ foreach (string item in txt) {
+ list = avahi_string_list_add (list, Utility.StringToBytes (item));
+ }
+ }
+
+ AddService (iface, proto, flags, name, type, domain, host, port, list);
+ }
+
+ public void AddService (int iface, Protocol proto, PublishFlags flags, string name, string type, string domain,
+ string host, UInt16 port, params byte[][] txt)
+ {
+ IntPtr list = avahi_string_list_new (IntPtr.Zero);
+
+ if (txt != null) {
+ foreach (byte[] item in txt) {
+ list = avahi_string_list_add (list, item);
+ }
+ }
+
+ AddService (iface, proto, flags, name, type, domain, host, port, list);
+ }
+
+ private void AddService (int iface, Protocol proto, PublishFlags flags, string name, string type,
+ string domain, string host, UInt16 port, IntPtr list)
+ {
+ int ret;
+
+ lock (client) {
+ ret = avahi_entry_group_add_service_strlst (handle, iface, proto, flags,
+ Utility.StringToBytes (name),
+ Utility.StringToBytes (type),
+ Utility.StringToBytes (domain),
+ Utility.StringToBytes (host), port, list);
+ }
+
+ avahi_string_list_free (list);
+
+ if (ret < 0) {
+ client.ThrowError ();
+ }
+ }
+
+ public void UpdateService (string name, string type, string domain, params string[] txt)
+ {
+ UpdateService (-1, Protocol.Unspecified, PublishFlags.None, name, type, domain, txt);
+ }
+
+ public void UpdateService (int iface, Protocol proto, PublishFlags flags, string name, string type,
+ string domain, params string[] txt)
+ {
+ IntPtr list = avahi_string_list_new (IntPtr.Zero);
+
+ if (txt != null) {
+ foreach (string item in txt) {
+ list = avahi_string_list_add (list, Utility.StringToBytes (item));
+ }
+ }
+
+ UpdateService (iface, proto, flags, name, type, domain, list);
+ }
+
+ public void UpdateService (int iface, Protocol proto, PublishFlags flags, string name, string type,
+ string domain, params byte[][] txt)
+ {
+ IntPtr list = avahi_string_list_new (IntPtr.Zero);
+
+ if (txt != null) {
+ foreach (byte[] item in txt) {
+ list = avahi_string_list_add (list, item);
+ }
+ }
+
+ UpdateService (iface, proto, flags, name, type, domain, list);
+ }
+
+ private void UpdateService (int iface, Protocol proto, PublishFlags flags, string name, string type,
+ string domain, IntPtr list)
+ {
+ lock (client) {
+ int ret = avahi_entry_group_update_service_strlst (handle, iface, proto, flags,
+ Utility.StringToBytes (name),
+ Utility.StringToBytes (type),
+ Utility.StringToBytes (domain),
+ list);
+
+ avahi_string_list_free (list);
+
+ if (ret < 0) {
+ client.ThrowError ();
+ }
+ }
+ }
+
+ public void AddServiceSubtype (string name, string type, string domain, string subtype)
+ {
+ AddServiceSubtype (-1, Protocol.Unspecified, PublishFlags.None, name, type, domain, subtype);
+ }
+
+ public void AddServiceSubtype (int iface, Protocol proto, PublishFlags flags, string name,
+ string type, string domain, string subtype)
+ {
+ lock (client) {
+ int ret = avahi_entry_group_add_service_subtype (handle, iface, proto, flags,
+ Utility.StringToBytes (name),
+ Utility.StringToBytes (type),
+ Utility.StringToBytes (domain),
+ Utility.StringToBytes (subtype));
+
+ if (ret < 0) {
+ client.ThrowError ();
+ }
+ }
+ }
+
+ public void AddAddress (string name, IPAddress address)
+ {
+ AddAddress (-1, Protocol.Unspecified, PublishFlags.None, name, address);
+ }
+
+ public void AddAddress (int iface, Protocol proto, PublishFlags flags, string name, IPAddress address)
+ {
+ IntPtr addressPtr = Utility.AddressToPtr (address);
+
+ lock (client) {
+ int ret = avahi_entry_group_add_address (handle, iface, proto, flags,
+ Utility.StringToBytes (name), addressPtr);
+
+ Utility.Free (addressPtr);
+
+ if (ret < 0) {
+ client.ThrowError ();
+ }
+ }
+ }
+
+ public void AddRecord (string name, RecordClass clazz, RecordType type, uint ttl, byte[] rdata, int length)
+ {
+ AddRecord (-1, Protocol.Unspecified, PublishFlags.None, name, clazz, type, ttl, rdata, length);
+ }
+
+ public void AddRecord (int iface, Protocol proto, PublishFlags flags, string name,
+ RecordClass clazz, RecordType type, uint ttl, byte[] rdata, int length)
+ {
+ lock (client) {
+ int ret = avahi_entry_group_add_record (handle, iface, proto, flags,
+ Utility.StringToBytes (name),
+ clazz, type, ttl, rdata, length);
+
+ if (ret < 0) {
+ client.ThrowError ();
+ }
+ }
+ }
+
+ public static string GetAlternativeServiceName (string name) {
+ return Utility.PtrToStringFree (avahi_alternative_service_name (Utility.StringToBytes (name)));
+ }
+
+ private void OnEntryGroupCallback (IntPtr group, EntryGroupState state, IntPtr userdata)
+ {
+ if (StateChanged != null)
+ StateChanged (this, new EntryGroupStateArgs (state));
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/HostNameResolver.cs b/trunk/avahi-sharp/HostNameResolver.cs
new file mode 100644
index 0000000..81305fd
--- /dev/null
+++ b/trunk/avahi-sharp/HostNameResolver.cs
@@ -0,0 +1,169 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Collections;
+using System.Net;
+using System.Runtime.InteropServices;
+using System.Text;
+using Mono.Unix;
+
+namespace Avahi
+{
+
+ internal delegate void HostNameResolverCallback (IntPtr resolver, int iface, Protocol proto,
+ ResolverEvent revent, IntPtr hostname, IntPtr address,
+ LookupResultFlags flags, IntPtr userdata);
+
+ public class HostNameResolver : ResolverBase, IDisposable
+ {
+ private IntPtr handle;
+ private Client client;
+ private int iface;
+ private Protocol proto;
+ private string hostname;
+ private Protocol aproto;
+ private LookupFlags flags;
+ private HostNameResolverCallback cb;
+
+ private IPAddress currentAddress;
+ private string currentHost;
+
+ private ArrayList foundListeners = new ArrayList ();
+ private ArrayList timeoutListeners = new ArrayList ();
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_host_name_resolver_new (IntPtr client, int iface, Protocol proto,
+ byte[] hostname, Protocol aproto, LookupFlags flags,
+ HostNameResolverCallback cb, IntPtr userdata);
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_host_name_resolver_free (IntPtr handle);
+
+ public event HostAddressHandler Found
+ {
+ add {
+ foundListeners.Add (value);
+ Start ();
+ }
+ remove {
+ foundListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public event EventHandler Timeout
+ {
+ add {
+ timeoutListeners.Add (value);
+ Start ();
+ }
+ remove {
+ timeoutListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public IPAddress Address
+ {
+ get { return currentAddress; }
+ }
+
+ public string HostName
+ {
+ get { return currentHost; }
+ }
+
+ public HostNameResolver (Client client, string hostname) : this (client, -1, Protocol.Unspecified,
+ hostname, Protocol.Unspecified,
+ LookupFlags.None)
+ {
+ }
+
+ public HostNameResolver (Client client, int iface, Protocol proto, string hostname,
+ Protocol aproto, LookupFlags flags)
+ {
+ this.client = client;
+ this.iface = iface;
+ this.proto = proto;
+ this.hostname = hostname;
+ this.aproto = aproto;
+ this.flags = flags;
+ cb = OnHostNameResolverCallback;
+ }
+
+ ~HostNameResolver ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ Stop (true);
+ }
+
+ private void Start ()
+ {
+ if (client.Handle == IntPtr.Zero || handle != IntPtr.Zero ||
+ (foundListeners.Count == 0 && timeoutListeners.Count == 0))
+ return;
+
+ lock (client) {
+ handle = avahi_host_name_resolver_new (client.Handle, iface, proto,
+ Utility.StringToBytes (hostname), aproto, flags,
+ cb, IntPtr.Zero);
+
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
+ }
+ }
+
+ private void Stop (bool force)
+ {
+ if (client.Handle != IntPtr.Zero && handle != IntPtr.Zero &&
+ (force || (foundListeners.Count == 0 && timeoutListeners.Count == 0))) {
+
+ lock (client) {
+ avahi_host_name_resolver_free (handle);
+ handle = IntPtr.Zero;
+ }
+ }
+ }
+
+ private void OnHostNameResolverCallback (IntPtr resolver, int iface, Protocol proto,
+ ResolverEvent revent, IntPtr hostname, IntPtr address,
+ LookupResultFlags flags, IntPtr userdata)
+ {
+ switch (revent) {
+ case ResolverEvent.Found:
+ currentAddress = Utility.PtrToAddress (address);
+ currentHost = Utility.PtrToString (hostname);
+
+ foreach (HostAddressHandler handler in foundListeners)
+ handler (this, new HostAddressArgs (currentHost, currentAddress));
+ break;
+ case ResolverEvent.Failure:
+ EmitFailure (client.LastError);
+ break;
+ }
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/Makefile.am b/trunk/avahi-sharp/Makefile.am
new file mode 100644
index 0000000..43ab428
--- /dev/null
+++ b/trunk/avahi-sharp/Makefile.am
@@ -0,0 +1,84 @@
+# $Id$
+
+# This file is part of avahi.
+#
+# avahi is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# avahi is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with avahi; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA.
+
+ASSEMBLY = avahi-sharp.dll
+
+CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb $(ASSEMBLY).config
+
+AVAHISOURCES = \
+ $(srcdir)/AddressResolver.cs \
+ $(srcdir)/AssemblyInfo.cs \
+ $(srcdir)/BrowserBase.cs \
+ $(srcdir)/Client.cs \
+ $(srcdir)/ClientException.cs \
+ $(srcdir)/DomainBrowser.cs \
+ $(srcdir)/EntryGroup.cs \
+ $(srcdir)/HostNameResolver.cs \
+ $(srcdir)/RecordBrowser.cs \
+ $(srcdir)/ResolverBase.cs \
+ $(srcdir)/ServiceBrowser.cs \
+ $(srcdir)/ServiceResolver.cs \
+ $(srcdir)/ServiceTypeBrowser.cs \
+ $(srcdir)/Utility.cs
+
+EXTRA_DIST = \
+ $(AVAHISOURCES) \
+ $(srcdir)/AvahiTest.cs \
+ $(srcdir)/avahi.snk \
+ $(srcdir)/$(ASSEMBLY).config.in \
+ $(srcdir)/avahi-sharp-docs.source \
+ $(srcdir)/en/*.xml \
+ $(srcdir)/en/*/*.xml \
+ $(srcdir)/gencfg.sh
+
+$(ASSEMBLY): $(AVAHISOURCES)
+ mcs -keyfile:$(srcdir)/avahi.snk -target:library -out:$@ -debug $(AVAHISOURCES) -r:Mono.Posix
+
+
+$(ASSEMBLY).config: $(ASSEMBLY).config.in
+ $(srcdir)/gencfg.sh $(top_builddir)/avahi-client/libavahi-client.la \
+ $(top_builddir)/avahi-common/libavahi-common.la \
+ $(top_builddir)/avahi-glib/libavahi-glib.la < $< > $@
+
+if HAVE_MONO
+if HAVE_DBUS
+all: $(ASSEMBLY) $(ASSEMBLY).config
+
+if HAVE_MONODOC
+update-docs: $(ASSEMBLY)
+ $(MONODOCER) -assembly:$(ASSEMBLY) -path:en
+
+avahi-sharp-docs.zip: avahi-sharp-docs.tree
+
+avahi-sharp-docs.tree: $(srcdir)/en/*/*
+ $(MDASSEMBLER) --out avahi-sharp-docs --ecma $(srcdir)/en
+
+monodocdir = $(MONODOC_DIR)
+monodoc_DATA = avahi-sharp-docs.zip avahi-sharp-docs.tree avahi-sharp-docs.source
+
+endif
+
+install-data-hook: $(ASSEMBLY)
+ $(GACUTIL) /i $(ASSEMBLY) /package avahi-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
+
+uninstall-hook: $(ASSEMBLY)
+ $(GACUTIL) /u avahi-sharp /package avahi-sharp /gacdir $(libdir) /root $(DESTDIR)$(libdir)
+
+endif
+endif
diff --git a/trunk/avahi-sharp/RecordBrowser.cs b/trunk/avahi-sharp/RecordBrowser.cs
new file mode 100644
index 0000000..f65f8ac
--- /dev/null
+++ b/trunk/avahi-sharp/RecordBrowser.cs
@@ -0,0 +1,227 @@
+/* $Id: ServiceBrowser.cs 635 2005-09-26 03:57:30Z snorp $ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Net;
+using System.Collections;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Avahi
+{
+
+ public delegate void RecordInfoHandler (object o, RecordInfoArgs args);
+
+ internal delegate void RecordBrowserCallback (IntPtr browser, int iface, Protocol proto, BrowserEvent bevent,
+ IntPtr name, ushort clazz, ushort type, IntPtr rdata, int size,
+ LookupResultFlags flags, IntPtr userdata);
+
+ public enum RecordClass {
+ In = 1
+ }
+
+ public enum RecordType {
+ A = 1,
+ Ns = 2,
+ Cname = 5,
+ Soa = 6,
+ Ptr = 12,
+ Hinfo = 13,
+ Mx = 15,
+ Txt = 16,
+ Aaa = 28,
+ Srv = 33
+ }
+
+ public struct RecordInfo
+ {
+ public int NetworkInterface;
+ public Protocol Protocol;
+ public string Name;
+ public RecordClass Class;
+ public RecordType Type;
+ public byte[] Data;
+ public LookupResultFlags Flags;
+ }
+
+ public class RecordInfoArgs : EventArgs
+ {
+ private RecordInfo record;
+
+ public RecordInfo Record {
+ get { return record; }
+ }
+
+ public RecordInfoArgs (RecordInfo record)
+ {
+ this.record = record;
+ }
+ }
+
+ public class RecordBrowser : BrowserBase, IDisposable
+ {
+ private IntPtr handle;
+ private ArrayList infos = new ArrayList ();
+ private Client client;
+ private int iface;
+ private Protocol proto;
+ private string name;
+ private RecordClass clazz;
+ private RecordType type;
+ private LookupFlags flags;
+ private RecordBrowserCallback cb;
+
+ private ArrayList addListeners = new ArrayList ();
+ private ArrayList removeListeners = new ArrayList ();
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_record_browser_new (IntPtr client, int iface, Protocol proto,
+ byte[] name, ushort clazz, ushort type,
+ LookupFlags flags, RecordBrowserCallback cb,
+ IntPtr userdata);
+
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_record_browser_free (IntPtr handle);
+
+ public event RecordInfoHandler RecordAdded
+ {
+ add {
+ addListeners.Add (value);
+ Start ();
+ }
+ remove {
+ addListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public event RecordInfoHandler RecordRemoved
+ {
+ add {
+ removeListeners.Add (value);
+ Start ();
+ }
+ remove {
+ removeListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public RecordInfo[] Records
+ {
+ get { return (RecordInfo[]) infos.ToArray (typeof (RecordInfo)); }
+ }
+
+ public RecordBrowser (Client client, string name, RecordType type) :
+ this (client, -1, Protocol.Unspecified, name, RecordClass.In, type, LookupFlags.None)
+ {
+ }
+
+ public RecordBrowser (Client client, int iface, Protocol proto, string name, RecordClass clazz,
+ RecordType type, LookupFlags flags)
+ {
+ this.client = client;
+ this.iface = iface;
+ this.proto = proto;
+ this.name = name;
+ this.clazz = clazz;
+ this.type = type;
+ this.flags = flags;
+ cb = OnRecordBrowserCallback;
+ }
+
+ ~RecordBrowser ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ Stop (true);
+ }
+
+ private void Start ()
+ {
+ if (client.Handle == IntPtr.Zero || handle != IntPtr.Zero ||
+ (addListeners.Count == 0 && removeListeners.Count == 0))
+ return;
+
+ lock (client) {
+ handle = avahi_record_browser_new (client.Handle, iface, proto, Utility.StringToBytes (name),
+ (ushort) clazz, (ushort) type, flags, cb, IntPtr.Zero);
+
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
+ }
+ }
+
+ private void Stop (bool force)
+ {
+ if (client.Handle != IntPtr.Zero && handle != IntPtr.Zero &&
+ (force || (addListeners.Count == 0 && removeListeners.Count == 0))) {
+
+ lock (client) {
+ avahi_record_browser_free (handle);
+ handle = IntPtr.Zero;
+ }
+ }
+ }
+
+ private void OnRecordBrowserCallback (IntPtr browser, int iface, Protocol proto, BrowserEvent bevent,
+ IntPtr name, ushort clazz, ushort type, IntPtr rdata, int size,
+ LookupResultFlags flags, IntPtr userdata)
+ {
+ RecordInfo info;
+ info.NetworkInterface = iface;
+ info.Protocol = proto;
+ info.Name = Utility.PtrToString (name);
+ info.Class = (RecordClass) clazz;
+ info.Type = (RecordType) type;
+ info.Flags = flags;
+ info.Data = new byte[size];
+
+ if (rdata != IntPtr.Zero) {
+ Marshal.Copy (rdata, info.Data, 0, size);
+ }
+
+ switch (bevent) {
+ case BrowserEvent.Added:
+ infos.Add (info);
+
+ foreach (RecordInfoHandler handler in addListeners)
+ handler (this, new RecordInfoArgs (info));
+
+ break;
+ case BrowserEvent.Removed:
+ infos.Remove (info);
+
+ foreach (RecordInfoHandler handler in removeListeners)
+ handler (this, new RecordInfoArgs (info));
+
+ break;
+ default:
+ EmitBrowserEvent (bevent);
+ break;
+ }
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/ResolverBase.cs b/trunk/avahi-sharp/ResolverBase.cs
new file mode 100644
index 0000000..0a5a2a8
--- /dev/null
+++ b/trunk/avahi-sharp/ResolverBase.cs
@@ -0,0 +1,36 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+
+namespace Avahi
+{
+ public abstract class ResolverBase
+ {
+ public event ErrorCodeHandler Failed;
+
+ internal void EmitFailure (ErrorCode code)
+ {
+ if (Failed != null)
+ Failed (this, new ErrorCodeArgs (code));
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/ServiceBrowser.cs b/trunk/avahi-sharp/ServiceBrowser.cs
new file mode 100644
index 0000000..520e339
--- /dev/null
+++ b/trunk/avahi-sharp/ServiceBrowser.cs
@@ -0,0 +1,216 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Net;
+using System.Collections;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Avahi
+{
+ internal delegate void ServiceBrowserCallback (IntPtr browser, int iface, Protocol proto, BrowserEvent bevent,
+ IntPtr name, IntPtr type, IntPtr domain, LookupResultFlags flags,
+ IntPtr userdata);
+
+ public struct ServiceInfo
+ {
+ public int NetworkInterface;
+ public Protocol Protocol;
+ public string Domain;
+ public string ServiceType;
+ public string Name;
+
+ public string HostName;
+ public IPAddress Address;
+ public UInt16 Port;
+ public byte[][] Text;
+ public LookupResultFlags Flags;
+
+ public static ServiceInfo Zero = new ServiceInfo ();
+ }
+
+ public class ServiceInfoArgs : EventArgs
+ {
+ private ServiceInfo service;
+
+ public ServiceInfo Service {
+ get { return service; }
+ }
+
+ public ServiceInfoArgs (ServiceInfo service)
+ {
+ this.service = service;
+ }
+ }
+
+ public delegate void ServiceInfoHandler (object o, ServiceInfoArgs args);
+
+ public class ServiceBrowser : BrowserBase, IDisposable
+ {
+ private IntPtr handle;
+ private ArrayList infos = new ArrayList ();
+ private Client client;
+ private int iface;
+ private Protocol proto;
+ private string domain;
+ private string type;
+ private LookupFlags flags;
+ private ServiceBrowserCallback cb;
+
+ private ArrayList addListeners = new ArrayList ();
+ private ArrayList removeListeners = new ArrayList ();
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_service_browser_new (IntPtr client, int iface, int proto, byte[] type,
+ byte[] domain, LookupFlags flags,
+ ServiceBrowserCallback cb,
+ IntPtr userdata);
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_service_browser_free (IntPtr handle);
+
+ public event ServiceInfoHandler ServiceAdded
+ {
+ add {
+ addListeners.Add (value);
+ Start ();
+ }
+ remove {
+ addListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public event ServiceInfoHandler ServiceRemoved
+ {
+ add {
+ removeListeners.Add (value);
+ Start ();
+ }
+ remove {
+ removeListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public ServiceInfo[] Services
+ {
+ get { return (ServiceInfo[]) infos.ToArray (typeof (ServiceInfo)); }
+ }
+
+ public ServiceBrowser (Client client, string type) : this (client, type, client.DomainName)
+ {
+ }
+
+ public ServiceBrowser (Client client, string type, string domain) : this (client, -1, Protocol.Unspecified,
+ type, domain, LookupFlags.None)
+ {
+ }
+
+ public ServiceBrowser (Client client, int iface, Protocol proto, string type, string domain, LookupFlags flags)
+ {
+ this.client = client;
+ this.iface = iface;
+ this.proto = proto;
+ this.domain = domain;
+ this.type = type;
+ this.flags = flags;
+ cb = OnServiceBrowserCallback;
+ }
+
+ ~ServiceBrowser ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ Stop (true);
+ }
+
+ private void Start ()
+ {
+ if (client.Handle == IntPtr.Zero || handle != IntPtr.Zero ||
+ (addListeners.Count == 0 && removeListeners.Count == 0))
+ return;
+
+ lock (client) {
+ handle = avahi_service_browser_new (client.Handle, iface, (int) proto,
+ Utility.StringToBytes (type), Utility.StringToBytes (domain),
+ flags, cb, IntPtr.Zero);
+
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
+ }
+ }
+
+ private void Stop (bool force)
+ {
+ if (client.Handle != IntPtr.Zero && handle != IntPtr.Zero &&
+ (force || (addListeners.Count == 0 && removeListeners.Count == 0))) {
+
+ lock (client) {
+ avahi_service_browser_free (handle);
+ handle = IntPtr.Zero;
+ }
+ }
+ }
+
+ private void OnServiceBrowserCallback (IntPtr browser, int iface, Protocol proto, BrowserEvent bevent,
+ IntPtr name, IntPtr type, IntPtr domain, LookupResultFlags flags,
+ IntPtr userdata)
+ {
+
+ ServiceInfo info;
+ info.NetworkInterface = iface;
+ info.Protocol = proto;
+ info.Domain = Utility.PtrToString (domain);
+ info.ServiceType = Utility.PtrToString (type);
+ info.Name = Utility.PtrToString (name);
+ info.HostName = null;
+ info.Address = null;
+ info.Port = 0;
+ info.Text = null;
+ info.Flags = flags;
+
+ switch (bevent) {
+ case BrowserEvent.Added:
+ infos.Add (info);
+
+ foreach (ServiceInfoHandler handler in addListeners)
+ handler (this, new ServiceInfoArgs (info));
+
+ break;
+ case BrowserEvent.Removed:
+ infos.Remove (info);
+
+ foreach (ServiceInfoHandler handler in removeListeners)
+ handler (this, new ServiceInfoArgs (info));
+
+ break;
+ default:
+ EmitBrowserEvent (bevent);
+ break;
+ }
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/ServiceResolver.cs b/trunk/avahi-sharp/ServiceResolver.cs
new file mode 100644
index 0000000..945372b
--- /dev/null
+++ b/trunk/avahi-sharp/ServiceResolver.cs
@@ -0,0 +1,224 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Collections;
+using System.Net;
+using System.Runtime.InteropServices;
+using System.Text;
+using Mono.Unix;
+
+namespace Avahi
+{
+
+ internal delegate void ServiceResolverCallback (IntPtr resolver, int iface, Protocol proto,
+ ResolverEvent revent, IntPtr name, IntPtr type,
+ IntPtr domain, IntPtr host, IntPtr address,
+ UInt16 port, IntPtr txt, LookupResultFlags flags,
+ IntPtr userdata);
+
+ public class ServiceResolver : ResolverBase, IDisposable
+ {
+ private IntPtr handle;
+ private ServiceInfo currentInfo;
+ private Client client;
+ private int iface;
+ private Protocol proto;
+ private string name;
+ private string type;
+ private string domain;
+ private Protocol aproto;
+ private LookupFlags flags;
+ private ServiceResolverCallback cb;
+
+ private ArrayList foundListeners = new ArrayList ();
+ private ArrayList timeoutListeners = new ArrayList ();
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_service_resolver_new (IntPtr client, int iface, Protocol proto,
+ byte[] name, byte[] type, byte[] domain,
+ Protocol aproto, LookupFlags flags,
+ ServiceResolverCallback cb,
+ IntPtr userdata);
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_string_list_get_next (IntPtr list);
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_string_list_get_text (IntPtr list);
+
+ [DllImport ("avahi-common")]
+ private static extern int avahi_string_list_get_size (IntPtr list);
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_service_resolver_free (IntPtr handle);
+
+ public event ServiceInfoHandler Found
+ {
+ add {
+ foundListeners.Add (value);
+ Start ();
+ }
+ remove {
+ foundListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public event EventHandler Timeout
+ {
+ add {
+ timeoutListeners.Add (value);
+ Start ();
+ }
+ remove {
+ timeoutListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public ServiceInfo Service
+ {
+ get { return currentInfo; }
+ }
+
+ public ServiceResolver (Client client, string name, string type, string domain) : this (client, -1,
+ Protocol.Unspecified,
+ name, type, domain,
+ Protocol.Unspecified,
+ LookupFlags.None)
+ {
+ }
+
+ public ServiceResolver (Client client, ServiceInfo service) : this (client, service.NetworkInterface,
+ service.Protocol, service.Name,
+ service.ServiceType, service.Domain,
+ Protocol.Unspecified,
+ GetLookupFlags (service.Flags))
+ {
+ }
+
+ public ServiceResolver (Client client, int iface, Protocol proto, string name,
+ string type, string domain, Protocol aproto, LookupFlags flags)
+ {
+ this.client = client;
+ this.iface = iface;
+ this.proto = proto;
+ this.name = name;
+ this.type = type;
+ this.domain = domain;
+ this.aproto = aproto;
+ this.flags = flags;
+ cb = OnServiceResolverCallback;
+ }
+
+ ~ServiceResolver ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ Stop (true);
+ }
+
+ private void Start ()
+ {
+ if (client.Handle == IntPtr.Zero || handle != IntPtr.Zero ||
+ (foundListeners.Count == 0 && timeoutListeners.Count == 0))
+ return;
+
+ lock (client) {
+ handle = avahi_service_resolver_new (client.Handle, iface, proto,
+ Utility.StringToBytes (name), Utility.StringToBytes (type),
+ Utility.StringToBytes (domain), aproto, flags, cb, IntPtr.Zero);
+
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
+ }
+ }
+
+ private void Stop (bool force)
+ {
+ if (client.Handle != IntPtr.Zero && handle != IntPtr.Zero &&
+ (force || (foundListeners.Count == 0 && timeoutListeners.Count == 0))) {
+
+ lock (client) {
+ avahi_service_resolver_free (handle);
+ handle = IntPtr.Zero;
+ }
+ }
+ }
+
+ private void OnServiceResolverCallback (IntPtr resolver, int iface, Protocol proto,
+ ResolverEvent revent, IntPtr name, IntPtr type,
+ IntPtr domain, IntPtr host, IntPtr address,
+ UInt16 port, IntPtr txt, LookupResultFlags flags,
+ IntPtr userdata)
+ {
+ ServiceInfo info;
+ info.NetworkInterface = iface;
+ info.Protocol = proto;
+ info.Domain = Utility.PtrToString (domain);
+ info.ServiceType = Utility.PtrToString (type);
+ info.Name = Utility.PtrToString (name);
+ info.HostName = Utility.PtrToString (host);
+ info.Address = Utility.PtrToAddress (address);
+ info.Port = port;
+
+ ArrayList txtlist = new ArrayList ();
+ for (IntPtr l = txt; l != IntPtr.Zero; l = avahi_string_list_get_next (l)) {
+ IntPtr buf = avahi_string_list_get_text (l);
+ int len = avahi_string_list_get_size (l);
+
+ byte[] txtbuf = new byte[len];
+ Marshal.Copy (buf, txtbuf, 0, len);
+ txtlist.Add (txtbuf);
+ }
+
+ info.Text = (byte[][]) txtlist.ToArray (typeof (byte[]));
+ info.Flags = flags;
+
+ switch (revent) {
+ case ResolverEvent.Found:
+ currentInfo = info;
+
+ foreach (ServiceInfoHandler handler in foundListeners)
+ handler (this, new ServiceInfoArgs (info));
+ break;
+ case ResolverEvent.Failure:
+ EmitFailure (client.LastError);
+ break;
+ }
+ }
+
+ private static LookupFlags GetLookupFlags (LookupResultFlags rflags) {
+ LookupFlags ret = LookupFlags.None;
+
+ if ((rflags & LookupResultFlags.Multicast) > 0)
+ ret |= LookupFlags.UseMulticast;
+ if ((rflags & LookupResultFlags.WideArea) > 0)
+ ret |= LookupFlags.UseWideArea;
+
+ return ret;
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/ServiceTypeBrowser.cs b/trunk/avahi-sharp/ServiceTypeBrowser.cs
new file mode 100644
index 0000000..3796d60
--- /dev/null
+++ b/trunk/avahi-sharp/ServiceTypeBrowser.cs
@@ -0,0 +1,199 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Collections;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Avahi
+{
+ internal delegate void ServiceTypeBrowserCallback (IntPtr browser, int iface, Protocol proto, BrowserEvent bevent,
+ IntPtr type, IntPtr domain, LookupResultFlags flags,
+ IntPtr userdata);
+
+ public struct ServiceTypeInfo
+ {
+ public int NetworkInterface;
+ public Protocol Protocol;
+ public string Domain;
+ public string ServiceType;
+ public LookupResultFlags Flags;
+ }
+
+ public class ServiceTypeInfoArgs : EventArgs
+ {
+ private ServiceTypeInfo type;
+
+ public ServiceTypeInfo ServiceType
+ {
+ get { return type; }
+ }
+
+ public ServiceTypeInfoArgs (ServiceTypeInfo type)
+ {
+ this.type = type;
+ }
+ }
+
+ public delegate void ServiceTypeInfoHandler (object o, ServiceTypeInfoArgs args);
+
+ public class ServiceTypeBrowser : BrowserBase, IDisposable
+ {
+ private IntPtr handle;
+ private ArrayList infos = new ArrayList ();
+ private Client client;
+ private int iface;
+ private Protocol proto;
+ private string domain;
+ private LookupFlags flags;
+ private ServiceTypeBrowserCallback cb;
+
+ private ArrayList addListeners = new ArrayList ();
+ private ArrayList removeListeners = new ArrayList ();
+
+ [DllImport ("avahi-client")]
+ private static extern IntPtr avahi_service_type_browser_new (IntPtr client, int iface, int proto,
+ byte[] domain, LookupFlags flags,
+ ServiceTypeBrowserCallback cb,
+ IntPtr userdata);
+
+ [DllImport ("avahi-client")]
+ private static extern void avahi_service_type_browser_free (IntPtr handle);
+
+ public event ServiceTypeInfoHandler ServiceTypeAdded
+ {
+ add {
+ addListeners.Add (value);
+ Start ();
+ }
+ remove {
+ addListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public event ServiceTypeInfoHandler ServiceTypeRemoved
+ {
+ add {
+ removeListeners.Add (value);
+ Start ();
+ }
+ remove {
+ removeListeners.Remove (value);
+ Stop (false);
+ }
+ }
+
+ public ServiceTypeInfo[] ServiceTypes
+ {
+ get { return (ServiceTypeInfo[]) infos.ToArray (typeof (ServiceTypeInfo)); }
+ }
+
+ public ServiceTypeBrowser (Client client) : this (client, client.DomainName)
+ {
+ }
+
+ public ServiceTypeBrowser (Client client, string domain) : this (client, -1, Protocol.Unspecified,
+ domain, LookupFlags.None)
+ {
+ }
+
+ public ServiceTypeBrowser (Client client, int iface, Protocol proto, string domain, LookupFlags flags)
+ {
+ this.client = client;
+ this.iface = iface;
+ this.proto = proto;
+ this.domain = domain;
+ this.flags = flags;
+ cb = OnServiceTypeBrowserCallback;
+ }
+
+ ~ServiceTypeBrowser ()
+ {
+ Dispose ();
+ }
+
+ public void Dispose ()
+ {
+ Stop (true);
+ }
+
+ private void Start ()
+ {
+ if (client.Handle == IntPtr.Zero || handle != IntPtr.Zero ||
+ (addListeners.Count == 0 && removeListeners.Count == 0))
+ return;
+
+ lock (client) {
+ handle = avahi_service_type_browser_new (client.Handle, iface, (int) proto,
+ Utility.StringToBytes (domain), flags,
+ cb, IntPtr.Zero);
+
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
+ }
+ }
+
+ private void Stop (bool force)
+ {
+ if (client.Handle != IntPtr.Zero && handle != IntPtr.Zero &&
+ (force || (addListeners.Count == 0 && removeListeners.Count == 0))) {
+
+ lock (client) {
+ avahi_service_type_browser_free (handle);
+ handle = IntPtr.Zero;
+ }
+ }
+ }
+
+ private void OnServiceTypeBrowserCallback (IntPtr browser, int iface, Protocol proto, BrowserEvent bevent,
+ IntPtr type, IntPtr domain, LookupResultFlags flags,
+ IntPtr userdata)
+ {
+
+ ServiceTypeInfo info;
+ info.NetworkInterface = iface;
+ info.Protocol = proto;
+ info.Domain = Utility.PtrToString (domain);
+ info.ServiceType = Utility.PtrToString (type);
+ info.Flags = flags;
+
+ switch (bevent) {
+ case BrowserEvent.Added:
+ infos.Add (info);
+
+ foreach (ServiceTypeInfoHandler handler in addListeners)
+ handler (this, new ServiceTypeInfoArgs (info));
+ break;
+ case BrowserEvent.Removed:
+ infos.Remove (info);
+
+ foreach (ServiceTypeInfoHandler handler in removeListeners)
+ handler (this, new ServiceTypeInfoArgs (info));
+ break;
+ default:
+ EmitBrowserEvent (bevent);
+ break;
+ }
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/Utility.cs b/trunk/avahi-sharp/Utility.cs
new file mode 100644
index 0000000..9081b01
--- /dev/null
+++ b/trunk/avahi-sharp/Utility.cs
@@ -0,0 +1,114 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+using System;
+using System.Net;
+using System.Text;
+using System.Runtime.InteropServices;
+using Mono.Unix;
+using Mono.Unix.Native;
+
+using Stdlib = Mono.Unix.Native.Stdlib;
+
+namespace Avahi
+{
+ internal class Utility
+ {
+ [DllImport ("libc")]
+ private static extern int strlen (IntPtr ptr);
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_address_snprint (IntPtr buf, int size, IntPtr address);
+
+ [DllImport ("avahi-common")]
+ private static extern IntPtr avahi_address_parse (IntPtr str, Protocol proto, IntPtr ret);
+
+ public static string PtrToString (IntPtr ptr)
+ {
+ if (ptr == IntPtr.Zero)
+ return null;
+
+ int len = strlen (ptr);
+ byte[] bytes = new byte[len];
+ Marshal.Copy (ptr, bytes, 0, len);
+ return Encoding.UTF8.GetString (bytes);
+ }
+
+ public static string PtrToStringFree (IntPtr ptr)
+ {
+ if (ptr == IntPtr.Zero)
+ return null;
+
+ string ret = PtrToString (ptr);
+ Free (ptr);
+ return ret;
+ }
+
+ public static byte[] StringToBytes (string str)
+ {
+ if (str == null)
+ return null;
+
+ return Encoding.UTF8.GetBytes (str + "\0"); // lame.
+ }
+
+ private static IntPtr StringToPtr (string str)
+ {
+ if (str == null)
+ return IntPtr.Zero;
+
+ byte[] bytes = Utility.StringToBytes (str);
+ IntPtr buf = Stdlib.malloc ((uint) bytes.Length + 1);
+ Marshal.Copy (bytes, 0, buf, bytes.Length);
+ Marshal.WriteByte (buf, bytes.Length, 0);
+ return buf;
+ }
+
+ public static void Free (IntPtr ptr)
+ {
+ Stdlib.free (ptr);
+ }
+
+ public static IntPtr AddressToPtr (IPAddress address)
+ {
+ IntPtr straddr = Utility.StringToPtr (address.ToString ());
+ IntPtr addrPtr = Stdlib.malloc (32);
+ avahi_address_parse (straddr, Protocol.Unspecified, addrPtr);
+ Utility.Free (straddr);
+
+ return addrPtr;
+ }
+
+ public static IPAddress PtrToAddress (IntPtr ptr)
+ {
+ IPAddress address = null;
+
+ if (ptr != IntPtr.Zero) {
+ IntPtr buf = Stdlib.malloc (256);
+ IntPtr addrPtr = avahi_address_snprint (buf, 256, ptr);
+ address = IPAddress.Parse (Utility.PtrToString (addrPtr));
+ Utility.Free (addrPtr);
+ }
+
+ return address;
+ }
+ }
+}
diff --git a/trunk/avahi-sharp/avahi-sharp-docs.source b/trunk/avahi-sharp/avahi-sharp-docs.source
new file mode 100644
index 0000000..f3b3c75
--- /dev/null
+++ b/trunk/avahi-sharp/avahi-sharp-docs.source
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<monodoc>
+ <source provider="ecma" basefile="avahi-sharp-docs" path="various" title="Avahi" />
+</monodoc>
diff --git a/trunk/avahi-sharp/avahi-sharp.dll.config.in b/trunk/avahi-sharp/avahi-sharp.dll.config.in
new file mode 100644
index 0000000..5bae58f
--- /dev/null
+++ b/trunk/avahi-sharp/avahi-sharp.dll.config.in
@@ -0,0 +1,5 @@
+<configuration>
+ <dllmap dll="avahi-client" target="@CLIENT_DLNAME@"/>
+ <dllmap dll="avahi-common" target="@COMMON_DLNAME@"/>
+ <dllmap dll="avahi-glib" target="@GLIB_DLNAME@"/>
+</configuration>
diff --git a/trunk/avahi-sharp/avahi.snk b/trunk/avahi-sharp/avahi.snk
new file mode 100644
index 0000000..58c23bc
--- /dev/null
+++ b/trunk/avahi-sharp/avahi.snk
Binary files differ
diff --git a/trunk/avahi-sharp/en/Avahi.xml b/trunk/avahi-sharp/en/Avahi.xml
new file mode 100644
index 0000000..0739013
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi.xml
@@ -0,0 +1,6 @@
+<Namespace Name="Avahi">
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Namespace>
diff --git a/trunk/avahi-sharp/en/Avahi/AddressResolver.xml b/trunk/avahi-sharp/en/Avahi/AddressResolver.xml
new file mode 100644
index 0000000..064e505
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/AddressResolver.xml
@@ -0,0 +1,113 @@
+<Type Name="AddressResolver" FullName="Avahi.AddressResolver">
+ <TypeSignature Language="C#" Value="public class AddressResolver : Avahi.ResolverBase, System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>Avahi.ResolverBase</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public AddressResolver (Avahi.Client client, System.Net.IPAddress address);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="address" Type="System.Net.IPAddress" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="address">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Found">
+ <MemberSignature Language="C#" Value="public event Avahi.HostAddressHandler Found;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.HostAddressHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Timeout">
+ <MemberSignature Language="C#" Value="public event EventHandler Timeout;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>System.EventHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Address">
+ <MemberSignature Language="C#" Value="public System.Net.IPAddress Address { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Net.IPAddress</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="HostName">
+ <MemberSignature Language="C#" Value="public string HostName { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public AddressResolver (Avahi.Client client, int iface, Avahi.Protocol proto, System.Net.IPAddress address, Avahi.LookupFlags flags);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="address" Type="System.Net.IPAddress" />
+ <Parameter Name="flags" Type="Avahi.LookupFlags" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="address">To be added.</param>
+ <param name="flags">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/BrowserBase.xml b/trunk/avahi-sharp/en/Avahi/BrowserBase.xml
new file mode 100644
index 0000000..fa6d2ad
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/BrowserBase.xml
@@ -0,0 +1,59 @@
+<Type Name="BrowserBase" FullName="Avahi.BrowserBase">
+ <TypeSignature Language="C#" Value="public abstract class BrowserBase" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="protected BrowserBase ();" />
+ <MemberType>Constructor</MemberType>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="CacheExhausted">
+ <MemberSignature Language="C#" Value="public event EventHandler CacheExhausted;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>System.EventHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AllForNow">
+ <MemberSignature Language="C#" Value="public event EventHandler AllForNow;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>System.EventHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Failed">
+ <MemberSignature Language="C#" Value="public event EventHandler Failed;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>System.EventHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/Client.xml b/trunk/avahi-sharp/en/Avahi/Client.xml
new file mode 100644
index 0000000..0abecf7
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/Client.xml
@@ -0,0 +1,178 @@
+<Type Name="Client" FullName="Avahi.Client">
+ <TypeSignature Language="C#" Value="public class Client : System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public Client ();" />
+ <MemberType>Constructor</MemberType>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="StateChanged">
+ <MemberSignature Language="C#" Value="public event Avahi.ClientStateHandler StateChanged;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientStateHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Version">
+ <MemberSignature Language="C#" Value="public string Version { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="HostName">
+ <MemberSignature Language="C#" Value="public string HostName { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="DomainName">
+ <MemberSignature Language="C#" Value="public string DomainName { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="HostNameFqdn">
+ <MemberSignature Language="C#" Value="public string HostNameFqdn { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="State">
+ <MemberSignature Language="C#" Value="public Avahi.ClientState State { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="LocalServiceCookie">
+ <MemberSignature Language="C#" Value="public uint LocalServiceCookie { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.UInt32</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public Client (Avahi.ClientFlags flags);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="flags" Type="Avahi.ClientFlags" />
+ </Parameters>
+ <Docs>
+ <param name="flags">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="JoinServiceName">
+ <MemberSignature Language="C#" Value="public static string JoinServiceName (string name, string type, string domain);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="SplitServiceName">
+ <MemberSignature Language="C#" Value="public static void SplitServiceName (string service, out string name, out string type, out string domain);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="service" Type="System.String" />
+ <Parameter Name="name" Type="System.String&amp;" RefType="out" />
+ <Parameter Name="type" Type="System.String&amp;" RefType="out" />
+ <Parameter Name="domain" Type="System.String&amp;" RefType="out" />
+ </Parameters>
+ <Docs>
+ <param name="service">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ClientException.xml b/trunk/avahi-sharp/en/Avahi/ClientException.xml
new file mode 100644
index 0000000..3b8319b
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ClientException.xml
@@ -0,0 +1,29 @@
+<Type Name="ClientException" FullName="Avahi.ClientException">
+ <TypeSignature Language="C#" Value="public class ClientException : System.ApplicationException" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.ApplicationException</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName="ErrorCode">
+ <MemberSignature Language="C#" Value="public Avahi.ErrorCode ErrorCode { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ClientFlags.xml b/trunk/avahi-sharp/en/Avahi/ClientFlags.xml
new file mode 100644
index 0000000..d4ea291
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ClientFlags.xml
@@ -0,0 +1,51 @@
+<Type Name="ClientFlags" FullName="Avahi.ClientFlags">
+ <TypeSignature Language="C#" Value="public enum ClientFlags" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Flags</AttributeName>
+ </Attribute>
+ </Attributes>
+ <Members>
+ <Member MemberName="NoFail">
+ <MemberSignature Language="C#" Value="NoFail" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="None">
+ <MemberSignature Language="C#" Value="None" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="IgnoreUserConfig">
+ <MemberSignature Language="C#" Value="IgnoreUserConfig" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ClientState.xml b/trunk/avahi-sharp/en/Avahi/ClientState.xml
new file mode 100644
index 0000000..c20a02b
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ClientState.xml
@@ -0,0 +1,66 @@
+<Type Name="ClientState" FullName="Avahi.ClientState">
+ <TypeSignature Language="C#" Value="public enum ClientState" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Members>
+ <Member MemberName="Collision">
+ <MemberSignature Language="C#" Value="Collision" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Registering">
+ <MemberSignature Language="C#" Value="Registering" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Running">
+ <MemberSignature Language="C#" Value="Running" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Connecting">
+ <MemberSignature Language="C#" Value="Connecting" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Failure">
+ <MemberSignature Language="C#" Value="Failure" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ClientStateArgs.xml b/trunk/avahi-sharp/en/Avahi/ClientStateArgs.xml
new file mode 100644
index 0000000..e5da11d
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ClientStateArgs.xml
@@ -0,0 +1,41 @@
+<Type Name="ClientStateArgs" FullName="Avahi.ClientStateArgs">
+ <TypeSignature Language="C#" Value="public class ClientStateArgs : System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ClientStateArgs (Avahi.ClientState state);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="state" Type="Avahi.ClientState" />
+ </Parameters>
+ <Docs>
+ <param name="state">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="State">
+ <MemberSignature Language="C#" Value="public Avahi.ClientState State { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ClientState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ClientStateHandler.xml b/trunk/avahi-sharp/en/Avahi/ClientStateHandler.xml
new file mode 100644
index 0000000..0576975
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ClientStateHandler.xml
@@ -0,0 +1,23 @@
+<Type Name="ClientStateHandler" FullName="Avahi.ClientStateHandler">
+ <TypeSignature Language="C#" Value="public delegate void ClientStateHandler(object o, Avahi.ClientStateArgs state);" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Delegate</BaseTypeName>
+ </Base>
+ <Parameters>
+ <Parameter Name="o" Type="System.Object" />
+ <Parameter Name="state" Type="Avahi.ClientStateArgs" />
+ </Parameters>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <param name="o">To be added.</param>
+ <param name="state">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/DomainBrowser.xml b/trunk/avahi-sharp/en/Avahi/DomainBrowser.xml
new file mode 100644
index 0000000..20536e0
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/DomainBrowser.xml
@@ -0,0 +1,101 @@
+<Type Name="DomainBrowser" FullName="Avahi.DomainBrowser">
+ <TypeSignature Language="C#" Value="public class DomainBrowser : Avahi.BrowserBase, System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>Avahi.BrowserBase</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public DomainBrowser (Avahi.Client client);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="DomainAdded">
+ <MemberSignature Language="C#" Value="public event Avahi.DomainInfoHandler DomainAdded;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="DomainRemoved">
+ <MemberSignature Language="C#" Value="public event Avahi.DomainInfoHandler DomainRemoved;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Domains">
+ <MemberSignature Language="C#" Value="public Avahi.DomainInfo[] Domains { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainInfo[]</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public DomainBrowser (Avahi.Client client, int iface, Avahi.Protocol proto, string domain, Avahi.DomainBrowserType btype, Avahi.LookupFlags flags);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="btype" Type="Avahi.DomainBrowserType" />
+ <Parameter Name="flags" Type="Avahi.LookupFlags" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="btype">To be added.</param>
+ <param name="flags">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/DomainBrowserType.xml b/trunk/avahi-sharp/en/Avahi/DomainBrowserType.xml
new file mode 100644
index 0000000..9743524
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/DomainBrowserType.xml
@@ -0,0 +1,66 @@
+<Type Name="DomainBrowserType" FullName="Avahi.DomainBrowserType">
+ <TypeSignature Language="C#" Value="public enum DomainBrowserType" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Members>
+ <Member MemberName="RegisterDefault">
+ <MemberSignature Language="C#" Value="RegisterDefault" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainBrowserType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="BrowseDefault">
+ <MemberSignature Language="C#" Value="BrowseDefault" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainBrowserType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Register">
+ <MemberSignature Language="C#" Value="Register" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainBrowserType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="BrowseLegacy">
+ <MemberSignature Language="C#" Value="BrowseLegacy" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainBrowserType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Browse">
+ <MemberSignature Language="C#" Value="Browse" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainBrowserType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/DomainInfo.xml b/trunk/avahi-sharp/en/Avahi/DomainInfo.xml
new file mode 100644
index 0000000..dddfd60
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/DomainInfo.xml
@@ -0,0 +1,61 @@
+<Type Name="DomainInfo" FullName="Avahi.DomainInfo">
+ <TypeSignature Language="C#" Value="public struct DomainInfo" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.ValueType</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName="NetworkInterface">
+ <MemberSignature Language="C#" Value="public int NetworkInterface;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Int32</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Protocol">
+ <MemberSignature Language="C#" Value="public Avahi.Protocol Protocol;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.Protocol</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Domain">
+ <MemberSignature Language="C#" Value="public string Domain;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Flags">
+ <MemberSignature Language="C#" Value="public Avahi.LookupResultFlags Flags;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/DomainInfoArgs.xml b/trunk/avahi-sharp/en/Avahi/DomainInfoArgs.xml
new file mode 100644
index 0000000..1967447
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/DomainInfoArgs.xml
@@ -0,0 +1,41 @@
+<Type Name="DomainInfoArgs" FullName="Avahi.DomainInfoArgs">
+ <TypeSignature Language="C#" Value="public class DomainInfoArgs : System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public DomainInfoArgs (Avahi.DomainInfo domain);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="domain" Type="Avahi.DomainInfo" />
+ </Parameters>
+ <Docs>
+ <param name="domain">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Domain">
+ <MemberSignature Language="C#" Value="public Avahi.DomainInfo Domain { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.DomainInfo</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/DomainInfoHandler.xml b/trunk/avahi-sharp/en/Avahi/DomainInfoHandler.xml
new file mode 100644
index 0000000..793e2b7
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/DomainInfoHandler.xml
@@ -0,0 +1,23 @@
+<Type Name="DomainInfoHandler" FullName="Avahi.DomainInfoHandler">
+ <TypeSignature Language="C#" Value="public delegate void DomainInfoHandler(object o, Avahi.DomainInfoArgs args);" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Delegate</BaseTypeName>
+ </Base>
+ <Parameters>
+ <Parameter Name="o" Type="System.Object" />
+ <Parameter Name="args" Type="Avahi.DomainInfoArgs" />
+ </Parameters>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <param name="o">To be added.</param>
+ <param name="args">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/EntryGroup.xml b/trunk/avahi-sharp/en/Avahi/EntryGroup.xml
new file mode 100644
index 0000000..93fec22
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/EntryGroup.xml
@@ -0,0 +1,491 @@
+<Type Name="EntryGroup" FullName="Avahi.EntryGroup">
+ <TypeSignature Language="C#" Value="public class EntryGroup : System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public EntryGroup (Avahi.Client client);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="StateChanged">
+ <MemberSignature Language="C#" Value="public event Avahi.EntryGroupStateHandler StateChanged;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.EntryGroupStateHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Commit">
+ <MemberSignature Language="C#" Value="public void Commit ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Reset">
+ <MemberSignature Language="C#" Value="public void Reset ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddService">
+ <MemberSignature Language="C#" Value="public void AddService (string name, string type, string domain, ushort port, string[] txt);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="port" Type="System.UInt16" />
+ <Parameter Name="txt" Type="System.String[]">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.ParamArray</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Parameter>
+ </Parameters>
+ <Docs>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="port">To be added.</param>
+ <param name="txt">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="State">
+ <MemberSignature Language="C#" Value="public Avahi.EntryGroupState State { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.EntryGroupState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="IsEmpty">
+ <MemberSignature Language="C#" Value="public bool IsEmpty { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="GetAlternativeServiceName">
+ <MemberSignature Language="C#" Value="public static string GetAlternativeServiceName (string name);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="name" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="name">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddService">
+ <MemberSignature Language="C#" Value="public void AddService (Avahi.PublishFlags flags, string name, string type, string domain, ushort port, string[] txt);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="flags" Type="Avahi.PublishFlags" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="port" Type="System.UInt16" />
+ <Parameter Name="txt" Type="System.String[]">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.ParamArray</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Parameter>
+ </Parameters>
+ <Docs>
+ <param name="flags">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="port">To be added.</param>
+ <param name="txt">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddService">
+ <MemberSignature Language="C#" Value="public void AddService (int iface, Avahi.Protocol proto, Avahi.PublishFlags flags, string name, string type, string domain, string host, ushort port, string[] txt);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.PublishFlags" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="host" Type="System.String" />
+ <Parameter Name="port" Type="System.UInt16" />
+ <Parameter Name="txt" Type="System.String[]">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.ParamArray</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Parameter>
+ </Parameters>
+ <Docs>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="host">To be added.</param>
+ <param name="port">To be added.</param>
+ <param name="txt">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="UpdateService">
+ <MemberSignature Language="C#" Value="public void UpdateService (string name, string type, string domain, string[] txt);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="txt" Type="System.String[]">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.ParamArray</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Parameter>
+ </Parameters>
+ <Docs>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="txt">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="UpdateService">
+ <MemberSignature Language="C#" Value="public void UpdateService (int iface, Avahi.Protocol proto, Avahi.PublishFlags flags, string name, string type, string domain, string[] txt);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.PublishFlags" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="txt" Type="System.String[]">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.ParamArray</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Parameter>
+ </Parameters>
+ <Docs>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="txt">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddServiceSubtype">
+ <MemberSignature Language="C#" Value="public void AddServiceSubtype (string name, string type, string domain, string subtype);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="subtype" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="subtype">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddServiceSubtype">
+ <MemberSignature Language="C#" Value="public void AddServiceSubtype (int iface, Avahi.Protocol proto, Avahi.PublishFlags flags, string name, string type, string domain, string subtype);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.PublishFlags" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="subtype" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="subtype">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddAddress">
+ <MemberSignature Language="C#" Value="public void AddAddress (string name, System.Net.IPAddress address);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="address" Type="System.Net.IPAddress" />
+ </Parameters>
+ <Docs>
+ <param name="name">To be added.</param>
+ <param name="address">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddAddress">
+ <MemberSignature Language="C#" Value="public void AddAddress (int iface, Avahi.Protocol proto, Avahi.PublishFlags flags, string name, System.Net.IPAddress address);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.PublishFlags" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="address" Type="System.Net.IPAddress" />
+ </Parameters>
+ <Docs>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="address">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddRecord">
+ <MemberSignature Language="C#" Value="public void AddRecord (string name, Avahi.RecordClass clazz, Avahi.RecordType type, uint ttl, byte[] rdata, int length);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="clazz" Type="Avahi.RecordClass" />
+ <Parameter Name="type" Type="Avahi.RecordType" />
+ <Parameter Name="ttl" Type="System.UInt32" />
+ <Parameter Name="rdata" Type="System.Byte[]" />
+ <Parameter Name="length" Type="System.Int32" />
+ </Parameters>
+ <Docs>
+ <param name="name">To be added.</param>
+ <param name="clazz">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="ttl">To be added.</param>
+ <param name="rdata">To be added.</param>
+ <param name="length">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddRecord">
+ <MemberSignature Language="C#" Value="public void AddRecord (int iface, Avahi.Protocol proto, Avahi.PublishFlags flags, string name, Avahi.RecordClass clazz, Avahi.RecordType type, uint ttl, byte[] rdata, int length);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.PublishFlags" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="clazz" Type="Avahi.RecordClass" />
+ <Parameter Name="type" Type="Avahi.RecordType" />
+ <Parameter Name="ttl" Type="System.UInt32" />
+ <Parameter Name="rdata" Type="System.Byte[]" />
+ <Parameter Name="length" Type="System.Int32" />
+ </Parameters>
+ <Docs>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="clazz">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="ttl">To be added.</param>
+ <param name="rdata">To be added.</param>
+ <param name="length">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="AddService">
+ <MemberSignature Language="C#" Value="public void AddService (int iface, Avahi.Protocol proto, Avahi.PublishFlags flags, string name, string type, string domain, string host, ushort port, byte[][] txt);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.PublishFlags" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="host" Type="System.String" />
+ <Parameter Name="port" Type="System.UInt16" />
+ <Parameter Name="txt" Type="System.Byte[][]">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.ParamArray</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Parameter>
+ </Parameters>
+ <Docs>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="host">To be added.</param>
+ <param name="port">To be added.</param>
+ <param name="txt">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="UpdateService">
+ <MemberSignature Language="C#" Value="public void UpdateService (int iface, Avahi.Protocol proto, Avahi.PublishFlags flags, string name, string type, string domain, byte[][] txt);" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.PublishFlags" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="txt" Type="System.Byte[][]">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.ParamArray</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Parameter>
+ </Parameters>
+ <Docs>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="txt">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/EntryGroupState.xml b/trunk/avahi-sharp/en/Avahi/EntryGroupState.xml
new file mode 100644
index 0000000..c01e1df
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/EntryGroupState.xml
@@ -0,0 +1,66 @@
+<Type Name="EntryGroupState" FullName="Avahi.EntryGroupState">
+ <TypeSignature Language="C#" Value="public enum EntryGroupState" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Members>
+ <Member MemberName="Collision">
+ <MemberSignature Language="C#" Value="Collision" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.EntryGroupState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Registering">
+ <MemberSignature Language="C#" Value="Registering" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.EntryGroupState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Uncommited">
+ <MemberSignature Language="C#" Value="Uncommited" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.EntryGroupState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Established">
+ <MemberSignature Language="C#" Value="Established" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.EntryGroupState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Failure">
+ <MemberSignature Language="C#" Value="Failure" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.EntryGroupState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/EntryGroupStateArgs.xml b/trunk/avahi-sharp/en/Avahi/EntryGroupStateArgs.xml
new file mode 100644
index 0000000..c7d6f8c
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/EntryGroupStateArgs.xml
@@ -0,0 +1,41 @@
+<Type Name="EntryGroupStateArgs" FullName="Avahi.EntryGroupStateArgs">
+ <TypeSignature Language="C#" Value="public class EntryGroupStateArgs : System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public EntryGroupStateArgs (Avahi.EntryGroupState state);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="state" Type="Avahi.EntryGroupState" />
+ </Parameters>
+ <Docs>
+ <param name="state">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="State">
+ <MemberSignature Language="C#" Value="public Avahi.EntryGroupState State { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.EntryGroupState</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/EntryGroupStateHandler.xml b/trunk/avahi-sharp/en/Avahi/EntryGroupStateHandler.xml
new file mode 100644
index 0000000..427c519
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/EntryGroupStateHandler.xml
@@ -0,0 +1,23 @@
+<Type Name="EntryGroupStateHandler" FullName="Avahi.EntryGroupStateHandler">
+ <TypeSignature Language="C#" Value="public delegate void EntryGroupStateHandler(object o, Avahi.EntryGroupStateArgs args);" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Delegate</BaseTypeName>
+ </Base>
+ <Parameters>
+ <Parameter Name="o" Type="System.Object" />
+ <Parameter Name="args" Type="Avahi.EntryGroupStateArgs" />
+ </Parameters>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <param name="o">To be added.</param>
+ <param name="args">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ErrorCode.xml b/trunk/avahi-sharp/en/Avahi/ErrorCode.xml
new file mode 100644
index 0000000..687f524
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ErrorCode.xml
@@ -0,0 +1,526 @@
+<Type Name="ErrorCode" FullName="Avahi.ErrorCode">
+ <TypeSignature Language="C#" Value="public enum ErrorCode" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Members>
+ <Member MemberName="TooManyEntries">
+ <MemberSignature Language="C#" Value="TooManyEntries" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="AccessDenied">
+ <MemberSignature Language="C#" Value="AccessDenied" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NotFound">
+ <MemberSignature Language="C#" Value="NotFound" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="TooManyClients">
+ <MemberSignature Language="C#" Value="TooManyClients" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsYxRrSet">
+ <MemberSignature Language="C#" Value="DnsYxRrSet" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidFlags">
+ <MemberSignature Language="C#" Value="InvalidFlags" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="BadState">
+ <MemberSignature Language="C#" Value="BadState" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsNxDomain">
+ <MemberSignature Language="C#" Value="DnsNxDomain" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="TooManyObjects">
+ <MemberSignature Language="C#" Value="TooManyObjects" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidObject">
+ <MemberSignature Language="C#" Value="InvalidObject" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsServFail">
+ <MemberSignature Language="C#" Value="DnsServFail" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Disconnected">
+ <MemberSignature Language="C#" Value="Disconnected" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidPort">
+ <MemberSignature Language="C#" Value="InvalidPort" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Collision">
+ <MemberSignature Language="C#" Value="Collision" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidTTL">
+ <MemberSignature Language="C#" Value="InvalidTTL" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoNetwork">
+ <MemberSignature Language="C#" Value="NoNetwork" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidOperation">
+ <MemberSignature Language="C#" Value="InvalidOperation" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NotPermitted">
+ <MemberSignature Language="C#" Value="NotPermitted" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidDnsType">
+ <MemberSignature Language="C#" Value="InvalidDnsType" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidDnsError">
+ <MemberSignature Language="C#" Value="InvalidDnsError" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsNotAuth">
+ <MemberSignature Language="C#" Value="DnsNotAuth" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidProtocol">
+ <MemberSignature Language="C#" Value="InvalidProtocol" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidConfig">
+ <MemberSignature Language="C#" Value="InvalidConfig" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsNotZone">
+ <MemberSignature Language="C#" Value="DnsNotZone" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Ok">
+ <MemberSignature Language="C#" Value="Ok" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidServiceSubtype">
+ <MemberSignature Language="C#" Value="InvalidServiceSubtype" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsNxRrSet">
+ <MemberSignature Language="C#" Value="DnsNxRrSet" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidServiceType">
+ <MemberSignature Language="C#" Value="InvalidServiceType" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsFormErr">
+ <MemberSignature Language="C#" Value="DnsFormErr" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="IsPattern">
+ <MemberSignature Language="C#" Value="IsPattern" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidPacket">
+ <MemberSignature Language="C#" Value="InvalidPacket" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidRecord">
+ <MemberSignature Language="C#" Value="InvalidRecord" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidKey">
+ <MemberSignature Language="C#" Value="InvalidKey" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidRData">
+ <MemberSignature Language="C#" Value="InvalidRData" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="VersionMismatch">
+ <MemberSignature Language="C#" Value="VersionMismatch" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsRefused">
+ <MemberSignature Language="C#" Value="DnsRefused" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidServiceName">
+ <MemberSignature Language="C#" Value="InvalidServiceName" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidHostName">
+ <MemberSignature Language="C#" Value="InvalidHostName" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidAddress">
+ <MemberSignature Language="C#" Value="InvalidAddress" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoDaemon">
+ <MemberSignature Language="C#" Value="NoDaemon" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidInterface">
+ <MemberSignature Language="C#" Value="InvalidInterface" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Failure">
+ <MemberSignature Language="C#" Value="Failure" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsYxDomain">
+ <MemberSignature Language="C#" Value="DnsYxDomain" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NotSupported">
+ <MemberSignature Language="C#" Value="NotSupported" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoMemory">
+ <MemberSignature Language="C#" Value="NoMemory" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Timeout">
+ <MemberSignature Language="C#" Value="Timeout" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidDnsClass">
+ <MemberSignature Language="C#" Value="InvalidDnsClass" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DBusError">
+ <MemberSignature Language="C#" Value="DBusError" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="DnsNoTimp">
+ <MemberSignature Language="C#" Value="DnsNoTimp" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="OS">
+ <MemberSignature Language="C#" Value="OS" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="InvalidDomainName">
+ <MemberSignature Language="C#" Value="InvalidDomainName" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ErrorCodeArgs.xml b/trunk/avahi-sharp/en/Avahi/ErrorCodeArgs.xml
new file mode 100644
index 0000000..c8a7ccc
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ErrorCodeArgs.xml
@@ -0,0 +1,41 @@
+<Type Name="ErrorCodeArgs" FullName="Avahi.ErrorCodeArgs">
+ <TypeSignature Language="C#" Value="public class ErrorCodeArgs : System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ErrorCodeArgs (Avahi.ErrorCode code);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="code" Type="Avahi.ErrorCode" />
+ </Parameters>
+ <Docs>
+ <param name="code">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ErrorCode">
+ <MemberSignature Language="C#" Value="public Avahi.ErrorCode ErrorCode { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCode</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ErrorCodeHandler.xml b/trunk/avahi-sharp/en/Avahi/ErrorCodeHandler.xml
new file mode 100644
index 0000000..04e22d3
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ErrorCodeHandler.xml
@@ -0,0 +1,23 @@
+<Type Name="ErrorCodeHandler" FullName="Avahi.ErrorCodeHandler">
+ <TypeSignature Language="C#" Value="public delegate void ErrorCodeHandler(object o, Avahi.ErrorCodeArgs args);" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Delegate</BaseTypeName>
+ </Base>
+ <Parameters>
+ <Parameter Name="o" Type="System.Object" />
+ <Parameter Name="args" Type="Avahi.ErrorCodeArgs" />
+ </Parameters>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <param name="o">To be added.</param>
+ <param name="args">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/HostAddressArgs.xml b/trunk/avahi-sharp/en/Avahi/HostAddressArgs.xml
new file mode 100644
index 0000000..2b126e3
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/HostAddressArgs.xml
@@ -0,0 +1,55 @@
+<Type Name="HostAddressArgs" FullName="Avahi.HostAddressArgs">
+ <TypeSignature Language="C#" Value="public class HostAddressArgs : System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public HostAddressArgs (string host, System.Net.IPAddress address);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="host" Type="System.String" />
+ <Parameter Name="address" Type="System.Net.IPAddress" />
+ </Parameters>
+ <Docs>
+ <param name="host">To be added.</param>
+ <param name="address">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Host">
+ <MemberSignature Language="C#" Value="public string Host { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Address">
+ <MemberSignature Language="C#" Value="public System.Net.IPAddress Address { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Net.IPAddress</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/HostAddressHandler.xml b/trunk/avahi-sharp/en/Avahi/HostAddressHandler.xml
new file mode 100644
index 0000000..f0c195e
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/HostAddressHandler.xml
@@ -0,0 +1,23 @@
+<Type Name="HostAddressHandler" FullName="Avahi.HostAddressHandler">
+ <TypeSignature Language="C#" Value="public delegate void HostAddressHandler(object o, Avahi.HostAddressArgs args);" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Delegate</BaseTypeName>
+ </Base>
+ <Parameters>
+ <Parameter Name="o" Type="System.Object" />
+ <Parameter Name="args" Type="Avahi.HostAddressArgs" />
+ </Parameters>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <param name="o">To be added.</param>
+ <param name="args">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/HostNameResolver.xml b/trunk/avahi-sharp/en/Avahi/HostNameResolver.xml
new file mode 100644
index 0000000..37124fd
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/HostNameResolver.xml
@@ -0,0 +1,115 @@
+<Type Name="HostNameResolver" FullName="Avahi.HostNameResolver">
+ <TypeSignature Language="C#" Value="public class HostNameResolver : Avahi.ResolverBase, System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>Avahi.ResolverBase</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public HostNameResolver (Avahi.Client client, string hostname);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="hostname" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="hostname">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Found">
+ <MemberSignature Language="C#" Value="public event Avahi.HostAddressHandler Found;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.HostAddressHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Timeout">
+ <MemberSignature Language="C#" Value="public event EventHandler Timeout;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>System.EventHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Address">
+ <MemberSignature Language="C#" Value="public System.Net.IPAddress Address { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Net.IPAddress</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="HostName">
+ <MemberSignature Language="C#" Value="public string HostName { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public HostNameResolver (Avahi.Client client, int iface, Avahi.Protocol proto, string hostname, Avahi.Protocol aproto, Avahi.LookupFlags flags);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="hostname" Type="System.String" />
+ <Parameter Name="aproto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.LookupFlags" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="hostname">To be added.</param>
+ <param name="aproto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/LookupFlags.xml b/trunk/avahi-sharp/en/Avahi/LookupFlags.xml
new file mode 100644
index 0000000..d7882e0
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/LookupFlags.xml
@@ -0,0 +1,71 @@
+<Type Name="LookupFlags" FullName="Avahi.LookupFlags">
+ <TypeSignature Language="C#" Value="public enum LookupFlags" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Flags</AttributeName>
+ </Attribute>
+ </Attributes>
+ <Members>
+ <Member MemberName="UseMulticast">
+ <MemberSignature Language="C#" Value="UseMulticast" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="UseWideArea">
+ <MemberSignature Language="C#" Value="UseWideArea" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoAddress">
+ <MemberSignature Language="C#" Value="NoAddress" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="None">
+ <MemberSignature Language="C#" Value="None" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoTxt">
+ <MemberSignature Language="C#" Value="NoTxt" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/LookupResultFlags.xml b/trunk/avahi-sharp/en/Avahi/LookupResultFlags.xml
new file mode 100644
index 0000000..0066493
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/LookupResultFlags.xml
@@ -0,0 +1,81 @@
+<Type Name="LookupResultFlags" FullName="Avahi.LookupResultFlags">
+ <TypeSignature Language="C#" Value="public enum LookupResultFlags" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Flags</AttributeName>
+ </Attribute>
+ </Attributes>
+ <Members>
+ <Member MemberName="Multicast">
+ <MemberSignature Language="C#" Value="Multicast" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="WideArea">
+ <MemberSignature Language="C#" Value="WideArea" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Cached">
+ <MemberSignature Language="C#" Value="Cached" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="None">
+ <MemberSignature Language="C#" Value="None" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Local">
+ <MemberSignature Language="C#" Value="Local" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="OurOwn">
+ <MemberSignature Language="C#" Value="OurOwn" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/Protocol.xml b/trunk/avahi-sharp/en/Avahi/Protocol.xml
new file mode 100644
index 0000000..361f034
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/Protocol.xml
@@ -0,0 +1,46 @@
+<Type Name="Protocol" FullName="Avahi.Protocol">
+ <TypeSignature Language="C#" Value="public enum Protocol" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Members>
+ <Member MemberName="IPv4">
+ <MemberSignature Language="C#" Value="IPv4" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.Protocol</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Unspecified">
+ <MemberSignature Language="C#" Value="Unspecified" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.Protocol</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="IPv6">
+ <MemberSignature Language="C#" Value="IPv6" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.Protocol</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/PublishFlags.xml b/trunk/avahi-sharp/en/Avahi/PublishFlags.xml
new file mode 100644
index 0000000..c21774c
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/PublishFlags.xml
@@ -0,0 +1,121 @@
+<Type Name="PublishFlags" FullName="Avahi.PublishFlags">
+ <TypeSignature Language="C#" Value="public enum PublishFlags" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Flags</AttributeName>
+ </Attribute>
+ </Attributes>
+ <Members>
+ <Member MemberName="UseMulticast">
+ <MemberSignature Language="C#" Value="UseMulticast" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Update">
+ <MemberSignature Language="C#" Value="Update" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="AllowMultiple">
+ <MemberSignature Language="C#" Value="AllowMultiple" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="UseWideArea">
+ <MemberSignature Language="C#" Value="UseWideArea" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Unique">
+ <MemberSignature Language="C#" Value="Unique" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoReverse">
+ <MemberSignature Language="C#" Value="NoReverse" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="None">
+ <MemberSignature Language="C#" Value="None" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoCookie">
+ <MemberSignature Language="C#" Value="NoCookie" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoProbe">
+ <MemberSignature Language="C#" Value="NoProbe" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="NoAnnounce">
+ <MemberSignature Language="C#" Value="NoAnnounce" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.PublishFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/RecordBrowser.xml b/trunk/avahi-sharp/en/Avahi/RecordBrowser.xml
new file mode 100644
index 0000000..fdf32ca
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/RecordBrowser.xml
@@ -0,0 +1,107 @@
+<Type Name="RecordBrowser" FullName="Avahi.RecordBrowser">
+ <TypeSignature Language="C#" Value="public class RecordBrowser : Avahi.BrowserBase, System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>Avahi.BrowserBase</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public RecordBrowser (Avahi.Client client, string name, Avahi.RecordType type);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="Avahi.RecordType" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public RecordBrowser (Avahi.Client client, int iface, Avahi.Protocol proto, string name, Avahi.RecordClass clazz, Avahi.RecordType type, Avahi.LookupFlags flags);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="clazz" Type="Avahi.RecordClass" />
+ <Parameter Name="type" Type="Avahi.RecordType" />
+ <Parameter Name="flags" Type="Avahi.LookupFlags" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="clazz">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="flags">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="RecordAdded">
+ <MemberSignature Language="C#" Value="public event Avahi.RecordInfoHandler RecordAdded;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="RecordRemoved">
+ <MemberSignature Language="C#" Value="public event Avahi.RecordInfoHandler RecordRemoved;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Records">
+ <MemberSignature Language="C#" Value="public Avahi.RecordInfo[] Records { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordInfo[]</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/RecordClass.xml b/trunk/avahi-sharp/en/Avahi/RecordClass.xml
new file mode 100644
index 0000000..69787ce
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/RecordClass.xml
@@ -0,0 +1,26 @@
+<Type Name="RecordClass" FullName="Avahi.RecordClass">
+ <TypeSignature Language="C#" Value="public enum RecordClass" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Members>
+ <Member MemberName="In">
+ <MemberSignature Language="C#" Value="In" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordClass</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/RecordInfo.xml b/trunk/avahi-sharp/en/Avahi/RecordInfo.xml
new file mode 100644
index 0000000..708678e
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/RecordInfo.xml
@@ -0,0 +1,94 @@
+<Type Name="RecordInfo" FullName="Avahi.RecordInfo">
+ <TypeSignature Language="C#" Value="public struct RecordInfo" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.ValueType</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName="NetworkInterface">
+ <MemberSignature Language="C#" Value="public int NetworkInterface;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Int32</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Protocol">
+ <MemberSignature Language="C#" Value="public Avahi.Protocol Protocol;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.Protocol</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Name">
+ <MemberSignature Language="C#" Value="public string Name;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Class">
+ <MemberSignature Language="C#" Value="public Avahi.RecordClass Class;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordClass</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Type">
+ <MemberSignature Language="C#" Value="public Avahi.RecordType Type;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Data">
+ <MemberSignature Language="C#" Value="public byte[] Data;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Byte[]</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Flags">
+ <MemberSignature Language="C#" Value="public Avahi.LookupResultFlags Flags;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/RecordInfoArgs.xml b/trunk/avahi-sharp/en/Avahi/RecordInfoArgs.xml
new file mode 100644
index 0000000..81e6e57
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/RecordInfoArgs.xml
@@ -0,0 +1,41 @@
+<Type Name="RecordInfoArgs" FullName="Avahi.RecordInfoArgs">
+ <TypeSignature Language="C#" Value="public class RecordInfoArgs : System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public RecordInfoArgs (Avahi.RecordInfo record);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="record" Type="Avahi.RecordInfo" />
+ </Parameters>
+ <Docs>
+ <param name="record">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Record">
+ <MemberSignature Language="C#" Value="public Avahi.RecordInfo Record { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordInfo</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/RecordInfoHandler.xml b/trunk/avahi-sharp/en/Avahi/RecordInfoHandler.xml
new file mode 100644
index 0000000..f9cbc17
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/RecordInfoHandler.xml
@@ -0,0 +1,23 @@
+<Type Name="RecordInfoHandler" FullName="Avahi.RecordInfoHandler">
+ <TypeSignature Language="C#" Value="public delegate void RecordInfoHandler(object o, Avahi.RecordInfoArgs args);" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Delegate</BaseTypeName>
+ </Base>
+ <Parameters>
+ <Parameter Name="o" Type="System.Object" />
+ <Parameter Name="args" Type="Avahi.RecordInfoArgs" />
+ </Parameters>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <param name="o">To be added.</param>
+ <param name="args">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/RecordType.xml b/trunk/avahi-sharp/en/Avahi/RecordType.xml
new file mode 100644
index 0000000..7913cad
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/RecordType.xml
@@ -0,0 +1,116 @@
+<Type Name="RecordType" FullName="Avahi.RecordType">
+ <TypeSignature Language="C#" Value="public enum RecordType" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Members>
+ <Member MemberName="Cname">
+ <MemberSignature Language="C#" Value="Cname" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Ptr">
+ <MemberSignature Language="C#" Value="Ptr" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Aaa">
+ <MemberSignature Language="C#" Value="Aaa" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Soa">
+ <MemberSignature Language="C#" Value="Soa" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Txt">
+ <MemberSignature Language="C#" Value="Txt" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Hinfo">
+ <MemberSignature Language="C#" Value="Hinfo" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Ns">
+ <MemberSignature Language="C#" Value="Ns" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mx">
+ <MemberSignature Language="C#" Value="Mx" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="A">
+ <MemberSignature Language="C#" Value="A" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Srv">
+ <MemberSignature Language="C#" Value="Srv" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.RecordType</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ResolverBase.xml b/trunk/avahi-sharp/en/Avahi/ResolverBase.xml
new file mode 100644
index 0000000..c7d8549
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ResolverBase.xml
@@ -0,0 +1,37 @@
+<Type Name="ResolverBase" FullName="Avahi.ResolverBase">
+ <TypeSignature Language="C#" Value="public abstract class ResolverBase" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="protected ResolverBase ();" />
+ <MemberType>Constructor</MemberType>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Failed">
+ <MemberSignature Language="C#" Value="public event Avahi.ErrorCodeHandler Failed;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ErrorCodeHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceBrowser.xml b/trunk/avahi-sharp/en/Avahi/ServiceBrowser.xml
new file mode 100644
index 0000000..ff4eedb
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceBrowser.xml
@@ -0,0 +1,119 @@
+<Type Name="ServiceBrowser" FullName="Avahi.ServiceBrowser">
+ <TypeSignature Language="C#" Value="public class ServiceBrowser : Avahi.BrowserBase, System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>Avahi.BrowserBase</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceBrowser (Avahi.Client client, string type);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="type" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="type">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceBrowser (Avahi.Client client, string type, string domain);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ServiceAdded">
+ <MemberSignature Language="C#" Value="public event Avahi.ServiceInfoHandler ServiceAdded;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ServiceRemoved">
+ <MemberSignature Language="C#" Value="public event Avahi.ServiceInfoHandler ServiceRemoved;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Services">
+ <MemberSignature Language="C#" Value="public Avahi.ServiceInfo[] Services { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceInfo[]</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceBrowser (Avahi.Client client, int iface, Avahi.Protocol proto, string type, string domain, Avahi.LookupFlags flags);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="flags" Type="Avahi.LookupFlags" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="flags">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceInfo.xml b/trunk/avahi-sharp/en/Avahi/ServiceInfo.xml
new file mode 100644
index 0000000..d780085
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceInfo.xml
@@ -0,0 +1,138 @@
+<Type Name="ServiceInfo" FullName="Avahi.ServiceInfo">
+ <TypeSignature Language="C#" Value="public struct ServiceInfo" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.ValueType</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName="NetworkInterface">
+ <MemberSignature Language="C#" Value="public int NetworkInterface;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Int32</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Protocol">
+ <MemberSignature Language="C#" Value="public Avahi.Protocol Protocol;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.Protocol</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Domain">
+ <MemberSignature Language="C#" Value="public string Domain;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ServiceType">
+ <MemberSignature Language="C#" Value="public string ServiceType;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Name">
+ <MemberSignature Language="C#" Value="public string Name;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="HostName">
+ <MemberSignature Language="C#" Value="public string HostName;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Address">
+ <MemberSignature Language="C#" Value="public System.Net.IPAddress Address;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Net.IPAddress</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Port">
+ <MemberSignature Language="C#" Value="public ushort Port;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.UInt16</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Text">
+ <MemberSignature Language="C#" Value="public byte[][] Text;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Byte[][]</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Zero">
+ <MemberSignature Language="C#" Value="public static Avahi.ServiceInfo Zero;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceInfo</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Flags">
+ <MemberSignature Language="C#" Value="public Avahi.LookupResultFlags Flags;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceInfoArgs.xml b/trunk/avahi-sharp/en/Avahi/ServiceInfoArgs.xml
new file mode 100644
index 0000000..d2ee14d
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceInfoArgs.xml
@@ -0,0 +1,41 @@
+<Type Name="ServiceInfoArgs" FullName="Avahi.ServiceInfoArgs">
+ <TypeSignature Language="C#" Value="public class ServiceInfoArgs : System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceInfoArgs (Avahi.ServiceInfo service);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="service" Type="Avahi.ServiceInfo" />
+ </Parameters>
+ <Docs>
+ <param name="service">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Service">
+ <MemberSignature Language="C#" Value="public Avahi.ServiceInfo Service { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceInfo</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceInfoHandler.xml b/trunk/avahi-sharp/en/Avahi/ServiceInfoHandler.xml
new file mode 100644
index 0000000..91cf630
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceInfoHandler.xml
@@ -0,0 +1,23 @@
+<Type Name="ServiceInfoHandler" FullName="Avahi.ServiceInfoHandler">
+ <TypeSignature Language="C#" Value="public delegate void ServiceInfoHandler(object o, Avahi.ServiceInfoArgs args);" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Delegate</BaseTypeName>
+ </Base>
+ <Parameters>
+ <Parameter Name="o" Type="System.Object" />
+ <Parameter Name="args" Type="Avahi.ServiceInfoArgs" />
+ </Parameters>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <param name="o">To be added.</param>
+ <param name="args">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceResolver.xml b/trunk/avahi-sharp/en/Avahi/ServiceResolver.xml
new file mode 100644
index 0000000..e8ac750
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceResolver.xml
@@ -0,0 +1,125 @@
+<Type Name="ServiceResolver" FullName="Avahi.ServiceResolver">
+ <TypeSignature Language="C#" Value="public class ServiceResolver : Avahi.ResolverBase, System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>Avahi.ResolverBase</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceResolver (Avahi.Client client, string name, string type, string domain);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceResolver (Avahi.Client client, Avahi.ServiceInfo service);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="service" Type="Avahi.ServiceInfo" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="service">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Found">
+ <MemberSignature Language="C#" Value="public event Avahi.ServiceInfoHandler Found;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Timeout">
+ <MemberSignature Language="C#" Value="public event EventHandler Timeout;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>System.EventHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Service">
+ <MemberSignature Language="C#" Value="public Avahi.ServiceInfo Service { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceInfo</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceResolver (Avahi.Client client, int iface, Avahi.Protocol proto, string name, string type, string domain, Avahi.Protocol aproto, Avahi.LookupFlags flags);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="name" Type="System.String" />
+ <Parameter Name="type" Type="System.String" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="aproto" Type="Avahi.Protocol" />
+ <Parameter Name="flags" Type="Avahi.LookupFlags" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="name">To be added.</param>
+ <param name="type">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="aproto">To be added.</param>
+ <param name="flags">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceTypeBrowser.xml b/trunk/avahi-sharp/en/Avahi/ServiceTypeBrowser.xml
new file mode 100644
index 0000000..5ea64ac
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceTypeBrowser.xml
@@ -0,0 +1,113 @@
+<Type Name="ServiceTypeBrowser" FullName="Avahi.ServiceTypeBrowser">
+ <TypeSignature Language="C#" Value="public class ServiceTypeBrowser : Avahi.BrowserBase, System.IDisposable" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>Avahi.BrowserBase</BaseTypeName>
+ </Base>
+ <Interfaces>
+ <Interface>
+ <InterfaceName>System.IDisposable</InterfaceName>
+ </Interface>
+ </Interfaces>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceTypeBrowser (Avahi.Client client);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceTypeBrowser (Avahi.Client client, string domain);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="domain" Type="System.String" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="domain">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ServiceTypeAdded">
+ <MemberSignature Language="C#" Value="public event Avahi.ServiceTypeInfoHandler ServiceTypeAdded;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceTypeInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ServiceTypeRemoved">
+ <MemberSignature Language="C#" Value="public event Avahi.ServiceTypeInfoHandler ServiceTypeRemoved;" />
+ <MemberType>Event</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceTypeInfoHandler</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Dispose">
+ <MemberSignature Language="C#" Value="public void Dispose ();" />
+ <MemberType>Method</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ServiceTypes">
+ <MemberSignature Language="C#" Value="public Avahi.ServiceTypeInfo[] ServiceTypes { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceTypeInfo[]</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceTypeBrowser (Avahi.Client client, int iface, Avahi.Protocol proto, string domain, Avahi.LookupFlags flags);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="client" Type="Avahi.Client" />
+ <Parameter Name="iface" Type="System.Int32" />
+ <Parameter Name="proto" Type="Avahi.Protocol" />
+ <Parameter Name="domain" Type="System.String" />
+ <Parameter Name="flags" Type="Avahi.LookupFlags" />
+ </Parameters>
+ <Docs>
+ <param name="client">To be added.</param>
+ <param name="iface">To be added.</param>
+ <param name="proto">To be added.</param>
+ <param name="domain">To be added.</param>
+ <param name="flags">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceTypeInfo.xml b/trunk/avahi-sharp/en/Avahi/ServiceTypeInfo.xml
new file mode 100644
index 0000000..5b09ae9
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceTypeInfo.xml
@@ -0,0 +1,72 @@
+<Type Name="ServiceTypeInfo" FullName="Avahi.ServiceTypeInfo">
+ <TypeSignature Language="C#" Value="public struct ServiceTypeInfo" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.ValueType</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName="NetworkInterface">
+ <MemberSignature Language="C#" Value="public int NetworkInterface;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Int32</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Protocol">
+ <MemberSignature Language="C#" Value="public Avahi.Protocol Protocol;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.Protocol</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Domain">
+ <MemberSignature Language="C#" Value="public string Domain;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ServiceType">
+ <MemberSignature Language="C#" Value="public string ServiceType;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Flags">
+ <MemberSignature Language="C#" Value="public Avahi.LookupResultFlags Flags;" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.LookupResultFlags</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceTypeInfoArgs.xml b/trunk/avahi-sharp/en/Avahi/ServiceTypeInfoArgs.xml
new file mode 100644
index 0000000..fd584cd
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceTypeInfoArgs.xml
@@ -0,0 +1,41 @@
+<Type Name="ServiceTypeInfoArgs" FullName="Avahi.ServiceTypeInfoArgs">
+ <TypeSignature Language="C#" Value="public class ServiceTypeInfoArgs : System.EventArgs" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.EventArgs</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public ServiceTypeInfoArgs (Avahi.ServiceTypeInfo type);" />
+ <MemberType>Constructor</MemberType>
+ <Parameters>
+ <Parameter Name="type" Type="Avahi.ServiceTypeInfo" />
+ </Parameters>
+ <Docs>
+ <param name="type">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="ServiceType">
+ <MemberSignature Language="C#" Value="public Avahi.ServiceTypeInfo ServiceType { get; };" />
+ <MemberType>Property</MemberType>
+ <ReturnValue>
+ <ReturnType>Avahi.ServiceTypeInfo</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/Avahi/ServiceTypeInfoHandler.xml b/trunk/avahi-sharp/en/Avahi/ServiceTypeInfoHandler.xml
new file mode 100644
index 0000000..0fd751f
--- /dev/null
+++ b/trunk/avahi-sharp/en/Avahi/ServiceTypeInfoHandler.xml
@@ -0,0 +1,23 @@
+<Type Name="ServiceTypeInfoHandler" FullName="Avahi.ServiceTypeInfoHandler">
+ <TypeSignature Language="C#" Value="public delegate void ServiceTypeInfoHandler(object o, Avahi.ServiceTypeInfoArgs args);" />
+ <AssemblyInfo>
+ <AssemblyName>avahi-sharp</AssemblyName>
+ <AssemblyVersion>1.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Delegate</BaseTypeName>
+ </Base>
+ <Parameters>
+ <Parameter Name="o" Type="System.Object" />
+ <Parameter Name="args" Type="Avahi.ServiceTypeInfoArgs" />
+ </Parameters>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <param name="o">To be added.</param>
+ <param name="args">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Type>
diff --git a/trunk/avahi-sharp/en/index.xml b/trunk/avahi-sharp/en/index.xml
new file mode 100644
index 0000000..e180cd0
--- /dev/null
+++ b/trunk/avahi-sharp/en/index.xml
@@ -0,0 +1,79 @@
+<Overview>
+ <Assemblies>
+ <Assembly Name="avahi-sharp" Version="1.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Reflection.AssemblyTrademark(Trademark="")</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Reflection.AssemblyCopyright(Copyright="(C) 2005 James Willcox &lt;snorp@snorp.net&gt;")</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Reflection.AssemblyProduct(Product="")</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Reflection.AssemblyCompany(Company="")</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Reflection.AssemblyConfiguration(Configuration="")</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Reflection.AssemblyDescription(Description="Mono bindings for the Avahi mDNS/DNS-SD stack")</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Reflection.AssemblyTitle(Title="avahi-sharp")</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
+ </Assemblies>
+ <Remarks>To be added.</Remarks>
+ <Copyright>To be added.</Copyright>
+ <Types>
+ <Namespace Name="Avahi">
+ <Type Name="AddressResolver" />
+ <Type Name="Client" />
+ <Type Name="ClientException" />
+ <Type Name="DomainInfo" />
+ <Type Name="DomainBrowser" />
+ <Type Name="EntryGroup" />
+ <Type Name="HostNameResolver" />
+ <Type Name="ServiceInfo" />
+ <Type Name="ServiceBrowser" />
+ <Type Name="ServiceResolver" />
+ <Type Name="ServiceTypeInfo" />
+ <Type Name="ServiceTypeBrowser" />
+ <Type Name="HostAddressHandler" />
+ <Type Name="ClientStateHandler" />
+ <Type Name="DomainInfoHandler" />
+ <Type Name="EntryGroupStateHandler" />
+ <Type Name="ServiceInfoHandler" />
+ <Type Name="ServiceTypeInfoHandler" />
+ <Type Name="Protocol" />
+ <Type Name="ClientState" />
+ <Type Name="DomainBrowserType" />
+ <Type Name="EntryGroupState" />
+ <Type Name="LookupFlags" />
+ <Type Name="LookupResultFlags" />
+ <Type Name="HostAddressArgs" />
+ <Type Name="ResolverBase" />
+ <Type Name="BrowserBase" />
+ <Type Name="ClientStateArgs" />
+ <Type Name="ErrorCodeArgs" />
+ <Type Name="DomainInfoArgs" />
+ <Type Name="EntryGroupStateArgs" />
+ <Type Name="RecordInfo" />
+ <Type Name="RecordInfoArgs" />
+ <Type Name="RecordBrowser" />
+ <Type Name="ServiceInfoArgs" />
+ <Type Name="ServiceTypeInfoArgs" />
+ <Type Name="ErrorCodeHandler" />
+ <Type Name="RecordInfoHandler" />
+ <Type Name="ClientFlags" />
+ <Type Name="ErrorCode" />
+ <Type Name="PublishFlags" />
+ <Type Name="RecordClass" />
+ <Type Name="RecordType" />
+ </Namespace>
+ </Types>
+ <Title>avahi-sharp</Title>
+</Overview>
diff --git a/trunk/avahi-sharp/gencfg.sh b/trunk/avahi-sharp/gencfg.sh
new file mode 100755
index 0000000..3486187
--- /dev/null
+++ b/trunk/avahi-sharp/gencfg.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+. $1
+client_dlname=$dlname
+. $2
+common_dlname=$dlname
+. $3
+glib_dlname=$dlname
+
+exec sed -e "s,@CLIENT_DLNAME\@,${client_dlname},g" \
+ -e "s,@COMMON_DLNAME\@,${common_dlname},g" \
+ -e "s,@GLIB_DLNAME\@,${glib_dlname},g"