static TaskGraph() { instance = new TaskGraph(); dispatcher = new Channel <Task>(new RoundRobinDispatcher()); pendingTasks = new QueueBuffer <Task>(64); comparer = new TaskPinComparer(); }
/// <summary> /// 构造函数 /// </summary> /// <param name="port">端口</param> /// <param name="remote">远程ip地址</param> /// <param name="subThread">是否运行子线程派发消息</param> /// <param name="type">封包类型</param> /// <param name="es">封包缓存大小</param> public UdpSocket(int port, IPEndPoint remote, bool subThread = true, PackType type = PackType.Total, int es = 262144) { endPoint = remote; //Links = new Linker[thread * 1024]; IPEndPoint ip = new IPEndPoint(IPAddress.Any, port); soc = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //new UdpClient(_port);//new IPEndPoint(IPAddress.Parse(ip), soc.Bind(ip); soc.ReceiveTimeout = 1000; if (type != PackType.None) { Packaging = true; envelope = new TcpEnvelope(es); envelope.type = type; } running = true; auto = subThread; if (thread == null) { thread = new Thread(Run); thread.Start(); } queue = new QueueBuffer <SocData>(); }
public static void SetupClient() { Client.Start(SERVER_IP, 1025, 1026, "MainRover"); DrivePackets = new QueueBuffer(); StopPackets = new QueueBuffer(); ModePackets = new QueueBuffer(); PathPackets = new QueueBuffer(); Parse.SetParseHandler(0x80, (Packet) => StopPackets.Enqueue(Packet, 0)); Parse.SetParseHandler(0x99, (Packet) => ModePackets.Enqueue(Packet, 0)); for (byte i = 0x8E; i <= 0x94; i++) { Parse.SetParseHandler(i, (Packet) => DrivePackets.Enqueue(Packet, 0)); } Parse.SetParseHandler(0x98, (Packet) => DrivePackets.Enqueue(Packet, 0)); for (byte i = 0x9A; i <= 0xA1; i++) { Parse.SetParseHandler(i, (Packet) => DrivePackets.Enqueue(Packet, 0)); } for (byte i = 0x95; i <= 0x97; i++) { Parse.SetParseHandler(i, (Packet) => PathPackets.Enqueue(Packet, 0)); } PathSpeed = 0; PathAngle = 0; }
public BandwidthControlBuffer ConstructBandwidthController(int[] badwidhtAllocation = null) { QueueBuffer[] sub = new QueueBuffer[3]; sub[0] = new QueueBuffer(); sub[1] = new QueueBuffer(); sub[2] = new QueueBuffer(); return(new BandwidthControlBuffer(sub, badwidhtAllocation, 512)); }
public PriorityBuffer ConstructPriorityController() { QueueBuffer[] sub = new QueueBuffer[3]; sub[0] = new QueueBuffer(); sub[1] = new QueueBuffer(); sub[2] = new QueueBuffer(); return(new PriorityBuffer(sub)); }
public static void ProcessInstructions() { if (!StopPackets.IsEmpty()) { StopPackets = new QueueBuffer(); // Stop the Rover } else if (!ModePackets.IsEmpty()) { ProcessModePackets(); } else { switch (CurDriveMode) { // TODO For each case statement, clear undeeded queue buffers case DriveMode.BaseDrive: ProcessBasePackets(); PathPackets = new QueueBuffer(); break; case DriveMode.toGPS: ProcessPathPackets(); DrivePackets = new QueueBuffer(); break; case DriveMode.findTennisBall: DrivePackets = new QueueBuffer(); PathPackets = new QueueBuffer(); break; case DriveMode.toTennisBall: DrivePackets = new QueueBuffer(); PathPackets = new QueueBuffer(); break; case DriveMode.destination: DrivePackets = new QueueBuffer(); PathPackets = new QueueBuffer(); //Spinning Motor float t = 0.1f; while (t < .9f) { OutA.SetOutput(t); t += 0.0001f; } while (t > .1f) { OutA.SetOutput(t); t -= 0.0001f; } OutA.Dispose(); break; } } }
public virtual void Dispose() { envelope.Dispose(); envelope = null; if (metaData != null) { metaData.Clear(); } metaData = null; kcp = null; }
public void TestLeakyBucketOrder() { QueueBuffer controller = new QueueBuffer(); controller.Enqueue(NewPacket(1, 0)); controller.Enqueue(NewPacket(2, 0)); controller.Enqueue(NewPacket(3, 0)); AssertPacket(controller.Dequeue(), 1, 0); AssertPacket(controller.Dequeue(), 2, 0); AssertPacket(controller.Dequeue(), 3, 0); Assert.AreEqual(controller.Dequeue(), null); }
public UserQueue(QueueBufferFor who) : base() { //this is a queue for of user ids, so the value COMMENT, which will make the queue store status ids, is not allowed, default value USER_INFO will be used. if (who == QueueBufferFor.COMMENT) { lstWaitingIDInDB = new QueueBuffer(QueueBufferFor.USER_INFO); } else { lstWaitingIDInDB = new QueueBuffer(who); } }
public void TestLeakyBucketEmpty() { QueueBuffer controller = new QueueBuffer(); Assert.AreEqual(controller.Peek(), null); Assert.AreEqual(controller.Dequeue(), null); controller.Enqueue(NewPacket(10, 0)); AssertPacket(controller.Peek(), 10, 0); AssertPacket(controller.Dequeue(), 10, 0); Assert.AreEqual(controller.Peek(), null); Assert.AreEqual(controller.Dequeue(), null); }
public void TestLeakyBucketCapacity() { QueueBuffer controller = new QueueBuffer(); int capacity = 200000; for (int i = 0; i < capacity; i++) { controller.Enqueue(NewPacket(10, 0)); } controller.Peek(); for (int i = 0; i < capacity; i++) { controller.Dequeue(); } }
private static void Main(string[] args) { // TAKE ONE var buffer = new CircularBuffer <double>(); //ProcessInput(buffer); // TAKE TWO // Some scenarios where extension of buffer is needed // Avoid coding agains a concrete class, instead code against an interface var bufferInterface = new CircularBufferByInterface <double>(); ProcessBufferByInterface(bufferInterface); // And I can use different Buffer without changing client code var queueBuffer = new QueueBuffer <double>(); ProcessBufferByInterface(queueBuffer); // TAKE THREE // Enumerating a buffer - IEnumerable has been implemented // Now i'm able to use foreach foreach (var item in queueBuffer) { Console.WriteLine(item); } // TAKE FOUR - ADDING <TOutput> METHOD // TOutput will return different TOutput type than Buffer<T> type var asInts = queueBuffer.AsEnumerableOf <int>(); ProcessInputByInterface(queueBuffer); foreach (var item in queueBuffer) { Console.WriteLine(item); } // TAKE FIVE - ADDING EXTENSION METHOD that returns <TOutput) var asInts2 = queueBuffer.AsEnumerableOfExtension <double, int>(); ProcessInputByInterface(queueBuffer); // TAKE SIX - ADDING ANOTHER EXTENSION (VOID) method queueBuffer.Dump(); }
public static void ProcessInstructions() { if (!StopPackets.IsEmpty()) { StopPackets = new QueueBuffer(); // Stop the Rover } else if (!ModePackets.IsEmpty()) { ProcessModePackets(); } else { switch (CurDriveMode) { // TODO For each case statement, clear undeeded queue buffers case DriveMode.BaseDrive: ProcessBasePackets(); PathPackets = new QueueBuffer(); break; case DriveMode.toGPS: ProcessPathPackets(); DrivePackets = new QueueBuffer(); break; case DriveMode.findTennisBall: DrivePackets = new QueueBuffer(); PathPackets = new QueueBuffer(); break; case DriveMode.toTennisBall: DrivePackets = new QueueBuffer(); PathPackets = new QueueBuffer(); break; case DriveMode.destination: DrivePackets = new QueueBuffer(); PathPackets = new QueueBuffer(); break; } } }
public ThreadMission(string tag) { Tag = tag; SubMission = new QueueBuffer <Mission>(); MainMission = new QueueBuffer <Mission>(); #if UNITY_WSA thread = System.Threading.Tasks.Task.Run(Run); are = new AutoResetEvent(false); run = true; thread.Start(); Id = thread.Id; #else thread = new Thread(Run); are = new AutoResetEvent(false); run = true; thread.Start(); Id = thread.ManagedThreadId; #endif threads.Add(this); }
public TreeView() { swap = new SwapBuffer <TreeViewItem, TreeViewNode>(512); queue = new QueueBuffer <TreeViewItem>(256); }
public KcpSocket() { datas = new QueueBuffer <KcpData>(); }
protected virtual void Start() { Font.textureRebuilt += FontTextureRebuilt; Main = new QueueBuffer <TempBuffer>(); Sub = new QueueBuffer <TempBuffer>(); }
public void TestLeakyBucketPriority() { QueueBuffer controller = new QueueBuffer(); controller.Enqueue(NewPacket(1, 0), 1); }
static void Main(string[] args) { // DELEGATE => pointer to an action/method() // ACTION<T> // Action => returns nothing, takes 0-16 parameters (in this case a double object) // TAKE ONE // Pointer to a method ConsoleWrite Action <double> print = ConsoleWrite; print(2.2); // Extension Method taking in Action<T> => sending a pointer to ConsoleWrite Method var queueBuffer = new QueueBuffer <double>(); queueBuffer.DumpActionDelegate <double>(print); // TAKE TWO - ANONYMOUS DELEGATE METHOD // Where implementation is anonymous and not an actual Method() Action <double> printAnon = delegate(double data) { Console.Write(data); }; var queueBuffer2 = new QueueBuffer <double>(); queueBuffer2.DumpActionDelegate <double>(printAnon); // TAKE THREE - LAMBDA EXPRESSIONS var queueBuffer3 = new QueueBuffer <double>(); queueBuffer3.DumpActionDelegate(d => ConsoleWrite(d)); // Empty Lambda Action doNothing = () => { }; // FUNC<T, K> // Func => returns one param, takes 0-16 parameters (in this case a double object) // Last param is the return type // ie. Func<double, string> takes in double, returns a string // TAKE ONE // Squere a number Func <double, double> square = d => d * d; // Add two doubles, return a double Func <double, double, double> add = (x, y) => x + y; // TAKE FOUR // CONVERTER // Takes in one type and returns another Converter <double, string> converter = d => d.ToString(); // Using Converter var queueBufferConverter = new QueueBuffer <double>(); Converter <double, DateTime> converterDate = d => new DateTime(2010, 1, 1).AddDays(d); queueBufferConverter.AsEnumerableOfExtensionUsingConverter <double, DateTime>(converterDate); // TAKE FIVE // Adding event handler var queueWithEvent = new QueueBuffer <double>(); // Subscribe to event and specify the method that will fire when event occurs queueWithEvent.ItemDiscarded += QueueWithEventOnItemDiscarded; }
public StatusQueue() : base() { lstWaitingIDInDB = new QueueBuffer(QueueBufferFor.COMMENT); }