cpconnectionmanager.cs

来自「zwave 无线通讯协议 PC controller 控制器源码」· CS 代码 · 共 989 行 · 第 1/4 页

CS
989
字号
//////////////////////////////////////////////////////////////////////////////////////////////// 
//
//          #######
//          #   ##    ####   #####    #####  ##  ##   #####
//             ##    ##  ##  ##  ##  ##      ##  ##  ##
//            ##  #  ######  ##  ##   ####   ##  ##   ####
//           ##  ##  ##      ##  ##      ##   #####      ##
//          #######   ####   ##  ##  #####       ##  #####
//                                           #####
//          Z-Wave, the wireless language.
//
//          Copyright Zensys A/S, 2003,2004
//
//          All Rights Reserved
//
//          Description:   This source file is the sourcefile for the
//                         CpConnectionManager class
//
//                         Source is generated by the Intel DeviceBuilder Tool
//
//          Author:   Johann Sigfredsson
//
//          Last Changed By:  $Author: jch $
//          Revision:         $Revision: 1.2 $
//          Last Changed:     $Date: 2006/04/26 08:57:17 $
//
//////////////////////////////////////////////////////////////////////////////////////////////

using System;
using System.Collections;
using System.Threading;
using Intel.Utilities;
using Intel.UPNP;

namespace MicroStack
{
    /// <summary>
    /// Transparent ClientSide UPnP Service
    /// </summary>
    public class CpConnectionManager
    {
       private Hashtable UnspecifiedTable = Hashtable.Synchronized(new Hashtable());
       internal UPnPService _S;

       public UPnPService GetUPnPService()
       {
            return(_S);
       }
       public static string SERVICE_NAME = "urn:schemas-upnp-org:service:ConnectionManager:";
       public double VERSION
       {
           get
           {
               return(double.Parse(_S.Version));
           }
       }

       public delegate void StateVariableModifiedHandler_SourceProtocolInfo(CpConnectionManager sender, System.String NewValue);
       private WeakEvent OnStateVariable_SourceProtocolInfo_Event = new WeakEvent();
       public event StateVariableModifiedHandler_SourceProtocolInfo OnStateVariable_SourceProtocolInfo
       {
			add{OnStateVariable_SourceProtocolInfo_Event.Register(value);}
			remove{OnStateVariable_SourceProtocolInfo_Event.UnRegister(value);}
       }
       protected void SourceProtocolInfo_ModifiedSink(UPnPStateVariable Var, object NewValue)
       {
            OnStateVariable_SourceProtocolInfo_Event.Fire(this, SourceProtocolInfo);
       }
       public delegate void StateVariableModifiedHandler_SinkProtocolInfo(CpConnectionManager sender, System.String NewValue);
       private WeakEvent OnStateVariable_SinkProtocolInfo_Event = new WeakEvent();
       public event StateVariableModifiedHandler_SinkProtocolInfo OnStateVariable_SinkProtocolInfo
       {
			add{OnStateVariable_SinkProtocolInfo_Event.Register(value);}
			remove{OnStateVariable_SinkProtocolInfo_Event.UnRegister(value);}
       }
       protected void SinkProtocolInfo_ModifiedSink(UPnPStateVariable Var, object NewValue)
       {
            OnStateVariable_SinkProtocolInfo_Event.Fire(this, SinkProtocolInfo);
       }
       public delegate void StateVariableModifiedHandler_CurrentConnectionIDs(CpConnectionManager sender, System.String NewValue);
       private WeakEvent OnStateVariable_CurrentConnectionIDs_Event = new WeakEvent();
       public event StateVariableModifiedHandler_CurrentConnectionIDs OnStateVariable_CurrentConnectionIDs
       {
			add{OnStateVariable_CurrentConnectionIDs_Event.Register(value);}
			remove{OnStateVariable_CurrentConnectionIDs_Event.UnRegister(value);}
       }
       protected void CurrentConnectionIDs_ModifiedSink(UPnPStateVariable Var, object NewValue)
       {
            OnStateVariable_CurrentConnectionIDs_Event.Fire(this, CurrentConnectionIDs);
       }
       public delegate void SubscribeHandler(CpConnectionManager sender, bool Success);
       public event SubscribeHandler OnSubscribe;
       public delegate void Delegate_OnResult_ConnectionComplete(CpConnectionManager sender, System.Int32 ConnectionID, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_ConnectionComplete_Event = new WeakEvent();
       public event Delegate_OnResult_ConnectionComplete OnResult_ConnectionComplete
       {
			add{OnResult_ConnectionComplete_Event.Register(value);}
			remove{OnResult_ConnectionComplete_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_GetCurrentConnectionIDs(CpConnectionManager sender, System.String ConnectionIDs, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetCurrentConnectionIDs_Event = new WeakEvent();
       public event Delegate_OnResult_GetCurrentConnectionIDs OnResult_GetCurrentConnectionIDs
       {
			add{OnResult_GetCurrentConnectionIDs_Event.Register(value);}
			remove{OnResult_GetCurrentConnectionIDs_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_GetCurrentConnectionInfo(CpConnectionManager sender, System.Int32 ConnectionID, System.Int32 RcsID, System.Int32 AVTransportID, System.String ProtocolInfo, System.String PeerConnectionManager, System.Int32 PeerConnectionID, Enum_A_ARG_TYPE_Direction Direction, Enum_A_ARG_TYPE_ConnectionStatus Status, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetCurrentConnectionInfo_Event = new WeakEvent();
       public event Delegate_OnResult_GetCurrentConnectionInfo OnResult_GetCurrentConnectionInfo
       {
			add{OnResult_GetCurrentConnectionInfo_Event.Register(value);}
			remove{OnResult_GetCurrentConnectionInfo_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_GetProtocolInfo(CpConnectionManager sender, System.String Source, System.String Sink, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetProtocolInfo_Event = new WeakEvent();
       public event Delegate_OnResult_GetProtocolInfo OnResult_GetProtocolInfo
       {
			add{OnResult_GetProtocolInfo_Event.Register(value);}
			remove{OnResult_GetProtocolInfo_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_PrepareForConnection(CpConnectionManager sender, System.String RemoteProtocolInfo, System.String PeerConnectionManager, System.Int32 PeerConnectionID, Enum_A_ARG_TYPE_Direction Direction, System.Int32 ConnectionID, System.Int32 AVTransportID, System.Int32 RcsID, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_PrepareForConnection_Event = new WeakEvent();
       public event Delegate_OnResult_PrepareForConnection OnResult_PrepareForConnection
       {
			add{OnResult_PrepareForConnection_Event.Register(value);}
			remove{OnResult_PrepareForConnection_Event.UnRegister(value);}
       }

        public CpConnectionManager(UPnPService s)
        {
            _S = s;
            _S.OnSubscribe += new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink);
            if(HasStateVariable_SourceProtocolInfo) _S.GetStateVariableObject("SourceProtocolInfo").OnModified += new UPnPStateVariable.ModifiedHandler(SourceProtocolInfo_ModifiedSink);
            if(HasStateVariable_SinkProtocolInfo) _S.GetStateVariableObject("SinkProtocolInfo").OnModified += new UPnPStateVariable.ModifiedHandler(SinkProtocolInfo_ModifiedSink);
            if(HasStateVariable_CurrentConnectionIDs) _S.GetStateVariableObject("CurrentConnectionIDs").OnModified += new UPnPStateVariable.ModifiedHandler(CurrentConnectionIDs_ModifiedSink);
        }
        public void Dispose()
        {
            _S.OnSubscribe -= new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink);
            OnSubscribe = null;
            if(HasStateVariable_SourceProtocolInfo) _S.GetStateVariableObject("SourceProtocolInfo").OnModified -= new UPnPStateVariable.ModifiedHandler(SourceProtocolInfo_ModifiedSink);
            if(HasStateVariable_SinkProtocolInfo) _S.GetStateVariableObject("SinkProtocolInfo").OnModified -= new UPnPStateVariable.ModifiedHandler(SinkProtocolInfo_ModifiedSink);
            if(HasStateVariable_CurrentConnectionIDs) _S.GetStateVariableObject("CurrentConnectionIDs").OnModified -= new UPnPStateVariable.ModifiedHandler(CurrentConnectionIDs_ModifiedSink);
        }
        public void _subscribe(int Timeout)
        {
            _S.Subscribe(Timeout, null);
        }
        protected void _subscribe_sink(UPnPService sender, bool OK)
        {
            if(OnSubscribe!=null)
            {
                OnSubscribe(this, OK);
            }
        }
        public void SetUnspecifiedValue(string EnumType, string val)
        {
            string hash = Thread.CurrentThread.GetHashCode().ToString() + ":" + EnumType;
            UnspecifiedTable[hash] = val;
        }
        public string GetUnspecifiedValue(string EnumType)
        {
            string hash = Thread.CurrentThread.GetHashCode().ToString() + ":" + EnumType;
            if(UnspecifiedTable.ContainsKey(hash)==false)
            {
               return("");
            }
            string RetVal = (string)UnspecifiedTable[hash];
            return(RetVal);
        }
        public string[] Values_A_ARG_TYPE_Direction
        {
            get
            {
                UPnPStateVariable sv = _S.GetStateVariableObject("A_ARG_TYPE_Direction");
                return(sv.AllowedStringValues);
            }
        }
        public string Enum_A_ARG_TYPE_Direction_ToString(Enum_A_ARG_TYPE_Direction en)
        {
            string RetVal = "";
            switch(en)
            {
                case Enum_A_ARG_TYPE_Direction.INPUT:
                    RetVal = "Input";
                    break;
                case Enum_A_ARG_TYPE_Direction.OUTPUT:
                    RetVal = "Output";
                    break;
                case Enum_A_ARG_TYPE_Direction._UNSPECIFIED_:
                    RetVal = GetUnspecifiedValue("Enum_A_ARG_TYPE_Direction");
                    break;
            }
            return(RetVal);
        }
        public enum Enum_A_ARG_TYPE_Direction
        {
            _UNSPECIFIED_,
            INPUT,
            OUTPUT,
        }
        public Enum_A_ARG_TYPE_Direction A_ARG_TYPE_Direction
        {
            get
            {
               Enum_A_ARG_TYPE_Direction RetVal = 0;
               string v = (string)_S.GetStateVariable("A_ARG_TYPE_Direction");
               switch(v)
               {
                  case "Input":
                     RetVal = Enum_A_ARG_TYPE_Direction.INPUT;
                     break;
                  case "Output":
                     RetVal = Enum_A_ARG_TYPE_Direction.OUTPUT;
                     break;
                  default:
                     RetVal = Enum_A_ARG_TYPE_Direction._UNSPECIFIED_;
                     SetUnspecifiedValue("Enum_A_ARG_TYPE_Direction", v);
                     break;
               }
               return(RetVal);
           }
        }
        public string[] Values_A_ARG_TYPE_ConnectionStatus
        {
            get
            {
                UPnPStateVariable sv = _S.GetStateVariableObject("A_ARG_TYPE_ConnectionStatus");
                return(sv.AllowedStringValues);
            }
        }
        public string Enum_A_ARG_TYPE_ConnectionStatus_ToString(Enum_A_ARG_TYPE_ConnectionStatus en)
        {
            string RetVal = "";
            switch(en)
            {
                case Enum_A_ARG_TYPE_ConnectionStatus.OK:
                    RetVal = "OK";
                    break;
                case Enum_A_ARG_TYPE_ConnectionStatus.CONTENTFORMATMISMATCH:
                    RetVal = "ContentFormatMismatch";
                    break;
                case Enum_A_ARG_TYPE_ConnectionStatus.INSUFFICIENTBANDWIDTH:
                    RetVal = "InsufficientBandwidth";
                    break;
                case Enum_A_ARG_TYPE_ConnectionStatus.UNRELIABLECHANNEL:
                    RetVal = "UnreliableChannel";
                    break;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?