summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Willcox <snopr@snorp.net>2005-11-20 17:37:32 +0000
committerJames Willcox <snopr@snorp.net>2005-11-20 17:37:32 +0000
commit69d2b9fee695cf2e65f1eda9c8ce66085efe2856 (patch)
tree563399c4decadf9edf57126c726175db6a2fbe5d
parent669c4118ae5a01b7ce76dcd56e40e2dec7eaaaca (diff)
move JoinServiceName and SplitServiceName to the Client class
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1021 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
-rw-r--r--avahi-sharp/AvahiTest.cs2
-rw-r--r--avahi-sharp/Client.cs62
-rw-r--r--avahi-sharp/EntryGroup.cs62
3 files changed, 63 insertions, 63 deletions
diff --git a/avahi-sharp/AvahiTest.cs b/avahi-sharp/AvahiTest.cs
index 99cd6e2..07b5396 100644
--- a/avahi-sharp/AvahiTest.cs
+++ b/avahi-sharp/AvahiTest.cs
@@ -32,7 +32,7 @@ public class AvahiTest {
public static void Main () {
client = new Client ();
- Console.WriteLine ("joined service name: " + EntryGroup.JoinServiceName ("FooBar", "_foo", "local"));
+ Console.WriteLine ("joined service name: " + Client.JoinServiceName ("FooBar", "_foo", "local"));
EntryGroup eg = new EntryGroup (client);
eg.StateChanged += OnEntryGroupChanged;
diff --git a/avahi-sharp/Client.cs b/avahi-sharp/Client.cs
index 01b08bd..80349dd 100644
--- a/avahi-sharp/Client.cs
+++ b/avahi-sharp/Client.cs
@@ -24,6 +24,7 @@ using System;
using System.Threading;
using System.Collections;
using System.Runtime.InteropServices;
+using Mono.Unix;
namespace Avahi
{
@@ -161,6 +162,15 @@ namespace Avahi
[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);
@@ -272,6 +282,58 @@ namespace Avahi
}
}
+ 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;
diff --git a/avahi-sharp/EntryGroup.cs b/avahi-sharp/EntryGroup.cs
index ccdeec9..ab89544 100644
--- a/avahi-sharp/EntryGroup.cs
+++ b/avahi-sharp/EntryGroup.cs
@@ -128,16 +128,6 @@ namespace Avahi
private static extern void avahi_string_list_free (IntPtr list);
[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 ("avahi-common")]
private static extern IntPtr avahi_alternative_service_name (byte[] name);
public event EntryGroupStateHandler StateChanged;
@@ -371,58 +361,6 @@ namespace Avahi
}
}
- 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);
- }
-
public static string GetAlternativeServiceName (string name) {
return Utility.PtrToStringFree (avahi_alternative_service_name (Utility.StringToBytes (name)));
}