Пример #1
0
        /// <summary>
        /// Registers the foreign device with the remote bbmd
        /// </summary>
        /// <param name="ttl">The time to live to register with</param>
        private void _register(object state)
        {
            bool register = false;

            lock (_lock)
            {
                if (_state == State.Registering || _state == State.Renewing)
                {
                    register = true;
                }
                else if (_state == State.Open && DateTime.UtcNow > _registrationTimeout)
                {
                    _state = State.Renewing;
                    register = true;
                }

                if (register)
                {
                    // we use double the registration interval for the ttl
                    int ttl = (int)_options.RegistrationInterval.TotalSeconds;
                    ttl *= 2;

                    RegisterForeignDeviceMessage message = new RegisterForeignDeviceMessage();
                    message.TTL = (ushort)ttl;

                    lock (_lock)
                    {
                        _sendMessage(_bbmdMac, message);
                    }
                }
            }
        }