Beispiel #1
0
        private void OkBTN_Click(object sender, EventArgs e)
        {
            if (m_endpoint == null)
            {
                EditBTN_Click(sender, e);

                if (m_endpoint == null)
                {
                    return;
                }
            }

            try
            {
                EndpointComIdentity comIdentity = new PseudoComServerDlg().ShowDialog(m_endpoint);

                if (comIdentity == null)
                {
                    return;
                }

                m_endpoint.ComIdentity = comIdentity;

                // set a default configuration.
                if (comIdentity.Specification != ComSpecification.HDA)
                {
                    ComProxyConfiguration configuration = m_endpoint.ParseExtension <ComProxyConfiguration>(null);

                    if (configuration == null)
                    {
                        configuration = new ComProxyConfiguration();
                        configuration.BrowseBlockSize = 1000;
                    }

                    m_endpoint.UpdateExtension <ComProxyConfiguration>(null, configuration);
                }
                else
                {
                    ComHdaProxyConfiguration configuration = m_endpoint.ParseExtension <ComHdaProxyConfiguration>(null);

                    if (configuration == null)
                    {
                        configuration = new ComHdaProxyConfiguration();
                        configuration.BrowseBlockSize = 1000;
                        configuration.MaxReturnValues = 10000;
                    }

                    m_endpoint.UpdateExtension <ComHdaProxyConfiguration>(null, configuration);
                }

                PseudoComServer.Save(m_endpoint);

                DialogResult = DialogResult.OK;
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, System.Reflection.MethodBase.GetCurrentMethod(), exception);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Called when a new session is created.
        /// </summary>
        protected override void OnSessionCreated()
        {
            lock (Lock)
            {
                // fetch the configuration.
                m_configuration = Endpoint.ParseExtension<ComProxyConfiguration>(null);

                if (m_configuration == null)
                {
                    m_configuration = new ComProxyConfiguration();
                }

                // update the mapping and pass the new session to other objects.
                m_mapper.Initialize(Session, m_configuration);
                m_groupManager.Session = Session;
                m_browseCacheManager.BrowseBlockSize = m_configuration.BrowseBlockSize;

                // save the configuration.
                Endpoint.UpdateExtension<ComProxyConfiguration>(null, m_configuration);
                SaveConfiguration();
            }
        }
        private void OkBTN_Click(object sender, EventArgs e)
        {
            if (m_endpoint == null)
            {
                EditBTN_Click(sender, e);

                if (m_endpoint == null)
                {
                    return;
                }
            }

            try
            {
                EndpointComIdentity comIdentity = new PseudoComServerDlg().ShowDialog(m_endpoint);

                if (comIdentity == null)
                {
                    return;
                }

                m_endpoint.ComIdentity = comIdentity;

                // set a default configuration.
                if (comIdentity.Specification != ComSpecification.HDA)
                {
                    ComProxyConfiguration configuration = m_endpoint.ParseExtension<ComProxyConfiguration>(null);

                    if (configuration == null)
                    {
                        configuration = new ComProxyConfiguration();
                        configuration.BrowseBlockSize = 1000;
                    }

                    m_endpoint.UpdateExtension<ComProxyConfiguration>(null, configuration);
                }
                else
                {
                    ComHdaProxyConfiguration configuration = m_endpoint.ParseExtension<ComHdaProxyConfiguration>(null);

                    if (configuration == null)
                    {
                        configuration = new ComHdaProxyConfiguration();
                        configuration.BrowseBlockSize = 1000;
                        configuration.MaxReturnValues = 10000;
                    }

                    m_endpoint.UpdateExtension<ComHdaProxyConfiguration>(null, configuration);
                }

                PseudoComServer.Save(m_endpoint);

                DialogResult = DialogResult.OK;
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, System.Reflection.MethodBase.GetCurrentMethod(), exception);
            }
        }
Beispiel #4
0
        /// <summary>
        /// Called when a new session is created.
        /// </summary>
        protected override void OnSessionCreated()
        {
            lock (Lock)
            {
                // fetch the configuration.
                m_configuration = Endpoint.ParseExtension<ComProxyConfiguration>(null);

                if (m_configuration == null)
                {
                    m_configuration = new ComProxyConfiguration();
                }

                // update the mapping and pass the new session to other objects.
                m_mapper.Initialize(Session, m_configuration);

                // save the configuration.
                Endpoint.UpdateExtension<ComProxyConfiguration>(null, m_configuration);
                SaveConfiguration();
            }

            // invoke callback.
            if (m_callback != null)
            {
                m_callback(Session);
            }
        }
        /// <summary>
        /// Initializes the namespace mappings and updates the proxy configuration.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="configuration">The configuration.</param>
        public virtual void Initialize(Session session, ComProxyConfiguration configuration)
        {
            lock (m_lock)
            {
                m_typeTable = session.TypeTree;

                // index namspace uris.
                if (configuration.NamespaceUris == null)
                {
                    configuration.NamespaceUris = new StringCollection();
                }

                m_namespaceUris = new StringTableMapping();
                m_namespaceUris.Initialize(configuration.NamespaceUris, session.NamespaceUris);

                // index server uris.
                if (configuration.ServerUris == null)
                {
                    configuration.ServerUris = new StringCollection();
                }

                m_serverUris = new StringTableMapping();
                m_serverUris.Initialize(configuration.ServerUris, session.ServerUris);

                // create message context.
                ServiceMessageContext context = new ServiceMessageContext();

                context.MaxArrayLength = session.MessageContext.MaxArrayLength;
                context.MaxByteStringLength = session.MessageContext.MaxByteStringLength;
                context.MaxMessageSize = session.MessageContext.MaxMessageSize;
                context.MaxStringLength = session.MessageContext.MaxStringLength;
                context.Factory = session.MessageContext.Factory;
                context.NamespaceUris = new NamespaceTable();
                context.ServerUris = new StringTable();

                // copy namespace uris.
                context.NamespaceUris.Append(session.NamespaceUris.GetString(1));

                for (int ii = 0; ii < configuration.NamespaceUris.Count; ii++)
                {
                    context.NamespaceUris.Append(configuration.NamespaceUris[ii]);
                }

                // copy server uris.
                context.ServerUris.Append(session.ServerUris.GetString(0));

                for (int ii = 0; ii < configuration.ServerUris.Count; ii++)
                {
                    context.ServerUris.Append(configuration.ServerUris[ii]);
                }

                m_localMessageContext = context;

                // index mapping sets by the name assigned.
                if (configuration.MappingSets != null)
                {
                    m_mappingSets = new Dictionary<string, NodeIdMappingSet>();

                    for (int ii = 0; ii < configuration.MappingSets.Count; ii++)
                    {
                        UpdateMappingSet(configuration.MappingSets[ii]);
                    }
                }
            }
        }