Avahi.Client.SplitServiceName C# (CSharp) Method

SplitServiceName() public static method

public static SplitServiceName ( string service, string &name, string &type, string &domain ) : void
service string
name string
type string
domain string
return void
        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);
        }