Пример #1
0
        /// <summary>シグナル(イベント)にハンドラを登録します。</summary>
        /// <param name="signature">シグナルの名前("signal"など)</param>
        /// <param name="callback">そのシグナルに対するコールバック関数</param>
        /// <returns>
        /// コールバックへの対応を表した整数。<see cref="DisconnectSignal(ulong)"/>でハンドラを解除する場合は必要ですが、
        /// <see cref="DisconnectSignal(Action{QiValue})"/>を用いる場合は不要です。
        /// </returns>
        public ulong ConnectSignal(string signature, Action <QiValue> callback)
        {
            var handler = new QiSignalHandler(callback);
            var result  = QiApiObject
                          .SignalConnect(this, signature, handler.ApiCallback, IntPtr.Zero)
                          .GetUInt64(0UL);

            _handlers[result] = handler;
            return(result);
        }
Пример #2
0
        /// <summary>シグナル(イベント)にハンドラを登録します。</summary>
        /// <param name="signature">シグナルの名前("signal"など)</param>
        /// <param name="callback">そのシグナルに対するコールバック関数</param>
        /// <returns>
        /// コールバックへの対応を表した整数。<see cref="DisconnectSignal(ulong)"/>でハンドラを解除する場合は必要ですが、
        /// <see cref="DisconnectSignal(Action{QiValue})"/>を用いる場合は不要です。
        /// </returns>
        public ulong ConnectSignal(string signature, Action<QiValue> callback)
        {
            var handler = new QiSignalHandler(callback);
            var result = QiApiObject
                .SignalConnect(this, signature, handler.ApiCallback, IntPtr.Zero)
                .GetUInt64(0UL);

            _handlers[result] = handler;
            return result;
        }