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