Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / HttpListenerPrefixCollection.cs / 1 / HttpListenerPrefixCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
using System;
using System.Collections;
using System.Collections.Generic;
internal class ListenerPrefixEnumerator:IEnumerator{
IEnumerator enumerator;
internal ListenerPrefixEnumerator(IEnumerator enumerator){
this.enumerator = enumerator;
}
public string Current{
get{
return (string)enumerator.Current;
}
}
public bool MoveNext(){
return enumerator.MoveNext();
}
public void Dispose(){
}
void System.Collections.IEnumerator.Reset(){
enumerator.Reset();
}
object System.Collections.IEnumerator.Current{
get{
return enumerator.Current;
}
}
}
public class HttpListenerPrefixCollection : ICollection {
private HttpListener m_HttpListener;
internal HttpListenerPrefixCollection(HttpListener listener) {
m_HttpListener = listener;
}
public void CopyTo(Array array, int offset) {
m_HttpListener.CheckDisposed();
if (Count>array.Length) {
throw new ArgumentOutOfRangeException("array", SR.GetString(SR.net_array_too_small));
}
if (offset+Count>array.Length) {
throw new ArgumentOutOfRangeException("offset");
}
int index = 0;
foreach (string uriPrefix in m_HttpListener.m_UriPrefixes.Keys) {
array.SetValue(uriPrefix, offset + index++);
}
}
public void CopyTo(string[] array, int offset) {
m_HttpListener.CheckDisposed();
if (Count>array.Length) {
throw new ArgumentOutOfRangeException("array", SR.GetString(SR.net_array_too_small));
}
if (offset+Count>array.Length) {
throw new ArgumentOutOfRangeException("offset");
}
int index = 0;
foreach (string uriPrefix in m_HttpListener.m_UriPrefixes.Keys) {
array[offset + index++] = uriPrefix;
}
}
public int Count {
get {
return m_HttpListener.m_UriPrefixes.Count;
}
}
public bool IsSynchronized {
get {
return false;
}
}
public bool IsReadOnly {
get {
return false;
}
}
public void Add(string uriPrefix) {
m_HttpListener.AddPrefix(uriPrefix);
}
public bool Contains(string uriPrefix) {
return m_HttpListener.m_UriPrefixes.Contains(uriPrefix);
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() {
return null;
}
public IEnumerator GetEnumerator() {
return new ListenerPrefixEnumerator(m_HttpListener.m_UriPrefixes.Keys.GetEnumerator());
}
public bool Remove(string uriPrefix) {
return m_HttpListener.RemovePrefix(uriPrefix);
}
public void Clear() {
m_HttpListener.RemoveAll(true);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
using System;
using System.Collections;
using System.Collections.Generic;
internal class ListenerPrefixEnumerator:IEnumerator{
IEnumerator enumerator;
internal ListenerPrefixEnumerator(IEnumerator enumerator){
this.enumerator = enumerator;
}
public string Current{
get{
return (string)enumerator.Current;
}
}
public bool MoveNext(){
return enumerator.MoveNext();
}
public void Dispose(){
}
void System.Collections.IEnumerator.Reset(){
enumerator.Reset();
}
object System.Collections.IEnumerator.Current{
get{
return enumerator.Current;
}
}
}
public class HttpListenerPrefixCollection : ICollection {
private HttpListener m_HttpListener;
internal HttpListenerPrefixCollection(HttpListener listener) {
m_HttpListener = listener;
}
public void CopyTo(Array array, int offset) {
m_HttpListener.CheckDisposed();
if (Count>array.Length) {
throw new ArgumentOutOfRangeException("array", SR.GetString(SR.net_array_too_small));
}
if (offset+Count>array.Length) {
throw new ArgumentOutOfRangeException("offset");
}
int index = 0;
foreach (string uriPrefix in m_HttpListener.m_UriPrefixes.Keys) {
array.SetValue(uriPrefix, offset + index++);
}
}
public void CopyTo(string[] array, int offset) {
m_HttpListener.CheckDisposed();
if (Count>array.Length) {
throw new ArgumentOutOfRangeException("array", SR.GetString(SR.net_array_too_small));
}
if (offset+Count>array.Length) {
throw new ArgumentOutOfRangeException("offset");
}
int index = 0;
foreach (string uriPrefix in m_HttpListener.m_UriPrefixes.Keys) {
array[offset + index++] = uriPrefix;
}
}
public int Count {
get {
return m_HttpListener.m_UriPrefixes.Count;
}
}
public bool IsSynchronized {
get {
return false;
}
}
public bool IsReadOnly {
get {
return false;
}
}
public void Add(string uriPrefix) {
m_HttpListener.AddPrefix(uriPrefix);
}
public bool Contains(string uriPrefix) {
return m_HttpListener.m_UriPrefixes.Contains(uriPrefix);
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() {
return null;
}
public IEnumerator GetEnumerator() {
return new ListenerPrefixEnumerator(m_HttpListener.m_UriPrefixes.Keys.GetEnumerator());
}
public bool Remove(string uriPrefix) {
return m_HttpListener.RemovePrefix(uriPrefix);
}
public void Clear() {
m_HttpListener.RemoveAll(true);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridHeaderBorder.cs
- EncodingDataItem.cs
- TreeNodeStyle.cs
- ExtractedStateEntry.cs
- TokenBasedSet.cs
- UrlMapping.cs
- StylusCaptureWithinProperty.cs
- _SslStream.cs
- XmlSchemaAnyAttribute.cs
- Attachment.cs
- DataGridViewSelectedCellCollection.cs
- SuppressIldasmAttribute.cs
- DeviceSpecificChoiceCollection.cs
- BoundField.cs
- CodeDomSerializerBase.cs
- CollectionViewSource.cs
- XamlSerializerUtil.cs
- ClockGroup.cs
- HttpCookieCollection.cs
- NavigationWindowAutomationPeer.cs
- BamlCollectionHolder.cs
- RemoteWebConfigurationHostServer.cs
- WpfXamlType.cs
- SpecularMaterial.cs
- SystemIcmpV6Statistics.cs
- QilList.cs
- CryptoApi.cs
- IDictionary.cs
- TimeSpanValidatorAttribute.cs
- MessageTraceRecord.cs
- CodePrimitiveExpression.cs
- RouteValueDictionary.cs
- DataGridHyperlinkColumn.cs
- RegexCapture.cs
- OracleRowUpdatingEventArgs.cs
- State.cs
- EncodingInfo.cs
- SdlChannelSink.cs
- _ConnectOverlappedAsyncResult.cs
- SystemTcpStatistics.cs
- StorageMappingItemLoader.cs
- XomlSerializationHelpers.cs
- ContextBase.cs
- GeneralTransform2DTo3D.cs
- CodePrimitiveExpression.cs
- CatalogZoneBase.cs
- VersionPair.cs
- LoadItemsEventArgs.cs
- PropertySourceInfo.cs
- SmtpReplyReaderFactory.cs
- CharacterMetrics.cs
- SafeRightsManagementHandle.cs
- SHA1Cng.cs
- RolePrincipal.cs
- Util.cs
- WorkflowQueue.cs
- SafeLibraryHandle.cs
- SessionStateModule.cs
- EncodingNLS.cs
- LambdaCompiler.cs
- AsyncOperationManager.cs
- TextSegment.cs
- LinearGradientBrush.cs
- PasswordRecoveryDesigner.cs
- AuthenticationService.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- DynamicDataResources.Designer.cs
- DetailsViewRow.cs
- HttpProfileBase.cs
- StateManagedCollection.cs
- StructuralObject.cs
- ContainsRowNumberChecker.cs
- RemotingServices.cs
- RightsDocument.cs
- HashHelper.cs
- RuntimeConfig.cs
- EntityDataSourceContextDisposingEventArgs.cs
- BaseDataList.cs
- RegexCompilationInfo.cs
- X509Extension.cs
- SimpleWorkerRequest.cs
- InvokePattern.cs
- FixUpCollection.cs
- initElementDictionary.cs
- MemberHolder.cs
- FixedSOMTableCell.cs
- AddInAttribute.cs
- ISSmlParser.cs
- XsdBuildProvider.cs
- PathFigureCollectionConverter.cs
- SqlInternalConnection.cs
- Monitor.cs
- MyContact.cs
- AssertSection.cs
- MatrixValueSerializer.cs
- WebMessageEncodingBindingElement.cs
- Point.cs
- AssemblyResourceLoader.cs
- AttributeUsageAttribute.cs
- DataListItemCollection.cs