DistributedFileSystem.DFS.Shutdown C# (CSharp) Method

Shutdown() public static method

Shutdown the DFS. All local DFS items are deleted.
public static Shutdown ( ) : void
return void
        public static void Shutdown()
        {
            if (DFSShutdownEvent!=null)
                DFSShutdownEvent.Set();

            RemoveAllItemsFromLocalOnly();

            //Remove all packethandlers
            NetworkComms.RemoveGlobalIncomingPacketHandler<ItemAssemblyConfig>("DFS_IncomingLocalItemBuild", IncomingLocalItemBuild);
            NetworkComms.RemoveGlobalIncomingPacketHandler<string[]>("DFS_RequestLocalItemBuild", RequestLocalItemBuilds);
            NetworkComms.RemoveGlobalIncomingPacketHandler<ChunkAvailabilityRequest>("DFS_ChunkAvailabilityInterestRequest", IncomingChunkInterestRequest);
            NetworkComms.RemoveGlobalIncomingPacketHandler<byte[]>("DFS_ChunkAvailabilityInterestReplyData", IncomingChunkInterestReplyData);
            NetworkComms.RemoveGlobalIncomingPacketHandler<ChunkAvailabilityReply>("DFS_ChunkAvailabilityInterestReplyInfo", IncomingChunkInterestReplyInfo);
            NetworkComms.RemoveGlobalIncomingPacketHandler<string>("DFS_ChunkAvailabilityRequest", IncomingChunkAvailabilityRequest);
            NetworkComms.RemoveGlobalIncomingPacketHandler<PeerChunkAvailabilityUpdate>("DFS_PeerChunkAvailabilityUpdate", IncomingPeerChunkAvailabilityUpdate);
            NetworkComms.RemoveGlobalIncomingPacketHandler<ItemRemovalUpdate>("DFS_ItemRemovalUpdate", IncomingItemRemovalUpdate);
            NetworkComms.RemoveGlobalIncomingPacketHandler<KnownPeerEndPoints>("DFS_KnownPeersUpdate", KnownPeersUpdate);
            NetworkComms.RemoveGlobalIncomingPacketHandler<string>("DFS_KnownPeersRequest", KnownPeersRequest);
            NetworkComms.RemoveGlobalIncomingPacketHandler<DFSLinkRequest>("DFS_ItemLinkRequest", IncomingRemoteItemLinkRequest);
            NetworkComms.RemoveGlobalConnectionCloseHandler(DFSConnectionShutdown);

            DFSInitialised = false;

            lock (globalDFSLocker)
            {
                //Cleanup the disk DFS item directory if necessary.
                if (Directory.Exists("DFS_" + NetworkComms.NetworkIdentifier))
                    Directory.Delete("DFS_" + NetworkComms.NetworkIdentifier, true);
            }

            if (elapsedTimerThread != null && !elapsedTimerThread.Join(2000))
            {
                try
                {
                    LogTools.LogException(new Exception("DFS elapsedTimerThread did not close after 2 seconds."), "DFSShutdownError");
                    elapsedTimerThread.Abort();
                }
                catch (Exception) { }
            }

            if (loggingEnabled) DFS._DFSLogger.Debug("DFS Shutdown.");
        }