| /*** |
| 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); |
| } |
| } |
| } |