Skip to content

Commit

Permalink
IDisposable implementation standardised
Browse files Browse the repository at this point in the history
  • Loading branch information
ShreyasZare committed Jul 7, 2018
1 parent 3634f7b commit 0427ffa
Show file tree
Hide file tree
Showing 15 changed files with 188 additions and 163 deletions.
31 changes: 10 additions & 21 deletions TechnitiumLibrary.IO/Joint.cs
Expand Up @@ -53,12 +53,7 @@ public Joint(Stream stream1, Stream stream2)

#endregion

#region IDisposable support

~Joint()
{
Dispose(false);
}
#region IDisposable

public void Dispose()
{
Expand All @@ -72,27 +67,21 @@ private void Dispose(bool disposing)
{
lock (this)
{
if (!_disposed)
if (_disposed)
return;

if (disposing)
{
try
{
if (_stream1 != null)
_stream1.Dispose();
}
catch
{ }

try
{
if (_stream2 != null)
_stream2.Dispose();
}
catch
{ }

_disposed = true;

if (Disposed != null)
Disposed(this, EventArgs.Empty);
Disposed?.Invoke(this, EventArgs.Empty);
}

_disposed = true;
}
}

Expand Down
16 changes: 7 additions & 9 deletions TechnitiumLibrary.IO/OffsetStream.cs
Expand Up @@ -68,23 +68,21 @@ public OffsetStream(Stream stream, long offset = 0, long length = 0, bool readOn

#region IDisposable

~OffsetStream()
{
Dispose(false);
}

bool _disposed = false;

protected override void Dispose(bool disposing)
{
if (!_disposed)
if (_disposed)
return;

if (disposing)
{
if (_ownStream)
if (_ownStream & (_stream != null))
_stream.Dispose();

_disposed = true;
}

_disposed = true;

base.Dispose(disposing);
}

Expand Down
14 changes: 6 additions & 8 deletions TechnitiumLibrary.IO/Package.cs
Expand Up @@ -103,11 +103,6 @@ public Package(Stream s, PackageMode mode, bool ownStream = false)

#region IDisposable

~Package()
{
Dispose(false);
}

public void Dispose()
{
Dispose(true);
Expand All @@ -118,13 +113,16 @@ public void Dispose()

private void Dispose(bool disposing)
{
if (!_disposed)
if (_disposed)
return;

if (disposing)
{
if (_s != null)
Close();

_disposed = true;
}

_disposed = true;
}

#endregion
Expand Down
16 changes: 7 additions & 9 deletions TechnitiumLibrary.IO/PackageItem.cs
Expand Up @@ -98,11 +98,6 @@ private PackageItem()

#region IDisposable

~PackageItem()
{
Dispose(false);
}

public void Dispose()
{
Dispose(true);
Expand All @@ -113,13 +108,16 @@ public void Dispose()

private void Dispose(bool disposing)
{
if (!_disposed)
if (_disposed)
return;

if (disposing)
{
if (_ownStream)
if (_ownStream && (_data != null))
_data.Dispose();

_disposed = true;
}

_disposed = true;
}

#endregion
Expand Down
24 changes: 23 additions & 1 deletion TechnitiumLibrary.IO/WriteBufferedStream.cs
@@ -1,6 +1,6 @@
/*
Technitium Library
Copyright (C) 2017 Shreyas Zare (shreyas@technitium.com)
Copyright (C) 2018 Shreyas Zare (shreyas@technitium.com)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -45,6 +45,28 @@ public WriteBufferedStream(Stream baseStream, int bufferSize = 4096)

#endregion

#region IDisposable

private bool _disposed = false;

protected override void Dispose(bool disposing)
{
if (_disposed)
return;

if (disposing)
{
if (_baseStream != null)
_baseStream.Dispose();
}

_disposed = true;

base.Dispose(disposing);
}

#endregion

#region stream support

public override bool CanRead
Expand Down
21 changes: 8 additions & 13 deletions TechnitiumLibrary.Net.BitTorrent/TrackerClient.cs
Expand Up @@ -82,23 +82,18 @@ protected TrackerClient(Uri trackerURI, byte[] infoHash, TrackerClientID clientI

protected bool _disposed = false;

~TrackerClient()
{
Dispose(false);
}

protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
if (_lastClientEP != null)
Update(TrackerClientEvent.Stopped, _lastClientEP);
}
if (_disposed)
return;

_disposed = true;
if (disposing)
{
if (_lastClientEP != null)
Update(TrackerClientEvent.Stopped, _lastClientEP);
}

_disposed = true;
}

public void Dispose()
Expand Down
18 changes: 8 additions & 10 deletions TechnitiumLibrary.Net.Mail/Pop3Client.cs
Expand Up @@ -64,22 +64,20 @@ public Pop3Client(string hostname, int port, string username, string password, b

#region IDisposable

~Pop3Client()
{
Dispose(false);
}

public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

bool disposed = false;
bool _disposed = false;

private void Dispose(bool disposing)
{
if (!disposed)
if (_disposed)
return;

if (disposing)
{
if (_sW != null)
_sW.Dispose();
Expand All @@ -88,10 +86,10 @@ private void Dispose(bool disposing)
_sR.Dispose();

if (_sock != null)
_sock.Close();

disposed = true;
_sock.Dispose();
}

_disposed = true;
}

#endregion
Expand Down
21 changes: 11 additions & 10 deletions TechnitiumLibrary.Net.Tor/TorController.cs
Expand Up @@ -70,27 +70,28 @@ public TorController(string torExecutableFilePath)

#endregion

#region IDisposable Support
#region IDisposable

private bool disposedValue = false;
bool _disposed = false;

protected virtual void Dispose(bool disposing)
{
if (!disposedValue)
{
if (disposing)
{
if (_process != null)
Stop();
}
if (_disposed)
return;

disposedValue = true;
if (disposing)
{
if (_process != null)
Stop();
}

_disposed = true;
}

public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

#endregion
Expand Down

0 comments on commit 0427ffa

Please sign in to comment.