109 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using System.Drawing;
 | 
						|
using System.Runtime.Serialization.Formatters.Binary;
 | 
						|
using System.Runtime.Serialization;
 | 
						|
using System.IO;
 | 
						|
using System.Xml;
 | 
						|
 | 
						|
 | 
						|
namespace EduNetworkBuilder
 | 
						|
{
 | 
						|
    [Serializable]
 | 
						|
    public class NetworkComponent
 | 
						|
    {
 | 
						|
        public bool IsDirty = true; //If something has changed and it needs to be re-drawn.  It starts as "true"
 | 
						|
        protected int UniqueIdentifier = NB.GetUniqueIdentifier();
 | 
						|
        public string hostname = "";
 | 
						|
 | 
						|
 | 
						|
        public virtual void Print(Image BaseImage, bool DrawTitle)
 | 
						|
        {
 | 
						|
        }
 | 
						|
        
 | 
						|
        public virtual bool HasMac(string MAC)
 | 
						|
        {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void ProcessPacket(Packet tPacket)
 | 
						|
        {
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void Destroy()
 | 
						|
        {
 | 
						|
            //This really does nothing.  But the link will trigger some stuff needing to be done
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual List<string> arp(UInt32 IP)
 | 
						|
        {
 | 
						|
            List<string> arps = new List<string>();
 | 
						|
            return arps;  //links have no MAC addresses
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void Save(XmlWriter writer)
 | 
						|
        {  
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void Load(XmlNode theNode)
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void UpdateFromComponent(NetworkComponent CopyFrom)
 | 
						|
        {
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void DoProcessing(Packet tPacket)
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void DoMoving(Packet tPacket)
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void DoInput(Packet tPacket)
 | 
						|
        {
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        public virtual void DoOutput(Packet tPacket)
 | 
						|
        {
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        public int GetUniqueIdentifier
 | 
						|
        {
 | 
						|
            get { return UniqueIdentifier; }
 | 
						|
        }
 | 
						|
 | 
						|
        public static T Clone<T>(T source)
 | 
						|
        {
 | 
						|
            if (!typeof(T).IsSerializable)
 | 
						|
            {
 | 
						|
                throw new ArgumentException("The type must be serializable.", "source");
 | 
						|
            }
 | 
						|
 | 
						|
            // Don't serialize a null object, simply return the default for that object
 | 
						|
            if (Object.ReferenceEquals(source, null))
 | 
						|
            {
 | 
						|
                return default(T);
 | 
						|
            }
 | 
						|
 | 
						|
            IFormatter formatter = new BinaryFormatter();
 | 
						|
            Stream stream = new MemoryStream();
 | 
						|
            using (stream)
 | 
						|
            {
 | 
						|
                formatter.Serialize(stream, source);
 | 
						|
                stream.Seek(0, SeekOrigin.Begin);
 | 
						|
                return (T)formatter.Deserialize(stream);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
}
 |