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