Example #1
0
        public BitmapBufferTextureHandler(BitmapBufferResponse response)
        {
            frameBufferThread = new Thread(FrameBufferThread);
            frameBufferThread.Start(response.FrameInfoBufferName);

            bitmapBuffer = new BufferReadWrite(response.BitmapBufferName);
        }
Example #2
0
 public void ShutDown()
 {
     _isInitialized = false;
     _sharedMemory.Close();
     _sharedMemory = null;
     _header       = null;
 }
Example #3
0
 public Header(BufferReadWrite sharedMemory, int offset = 0) : base(sharedMemory, offset)
 {
     for (var i = 0; i < NumberOfBuffers(this); i++)
     {
         VarBuffers.Add(new VariableBuffer(sharedMemory, 48 + i * 16));
     }
 }
Example #4
0
 public static void Close()
 {
     if (_sharedMemory != null)
     {
         _sharedMemory.Close();
         _sharedMemory = null;
     }
 }
Example #5
0
        private void backgroundWorkerRun_DoWork(object sender, DoWorkEventArgs e)
        {
            UserControlBufferReadWrite uc = this.FindParent <UserControlBufferReadWrite>();

            buffer = uc.buffer;
            buffer.Perform(Stop);
            this.InvokeIfNeeded(() => { Set(false); });
        }
Example #6
0
        public void Constructor_ProducerConsumer_Created()
        {
            var name = Guid.NewGuid().ToString();

            using (var buf = new BufferReadWrite(name, 1024))
                using (var buf2 = new BufferReadWrite(name))
                {
                }
        }
Example #7
0
        private void button_BufferReadWrite_Read_Click(object sender, EventArgs e)
        {
            var buffer = new BufferReadWrite("MySharedBuffer");
            int readData;

            buffer.Read(out readData);

            richTextBox1.AppendText(String.Format("SharedMemory.BufferReadWrite(Read): {0}\n", readData));
        }
Example #8
0
        internal void ShowIndicators()
        {
            UserControlBufferReadWrite uc = this.FindParent <UserControlBufferReadWrite>();

            buffer = uc.buffer;
            Labels.BufferReadWriteLabel       l  = this.FindParent <Labels.BufferReadWriteLabel>();
            Dictionary <string, IMeasurement> mm = buffer.Measurements;

            indicatorWrapper.Show(buffer, mm.Values, l.sizes);
        }
Example #9
0
        public bool StartUp()
        {
            _sharedMemory = new BufferReadWrite(MEMORY_FILE, MEMORY_SIZE);
            if (_sharedMemory == null)
            {
                return(false);
            }

            _header        = new Header(_sharedMemory);
            _isInitialized = _header.Version(_header) >= 1 && _header.VarBuffers.Count > 0;
            return(_isInitialized);
        }
Example #10
0
        private void toolStripButtonPlusType_Click(object sender, EventArgs e)
        {
            UserControlBufferReadWrite uc = this.FindParent <UserControlBufferReadWrite>();

            buffer = uc.buffer;
            FillTypes();
            Set(true);
            Dictionary <string, IMeasurement> mm = buffer.Measurements;

            wrapper = new DisassemblyWrapper(mm.Keys, buffer,
                                             StaticExtensionDataPerformerUI.Disassembly);
            backgroundWorkerRun.RunWorkerAsync();
        }
Example #11
0
        private void BuildBitmapBuffer(System.Drawing.Size size)
        {
            var oldBitmapBuffer = bitmapBuffer;

            var bitmapBufferName = $"BrowserHostBitmapBuffer{Guid.NewGuid()}";

            bitmapBuffer = new BufferReadWrite(bitmapBufferName, size.Width * size.Height * bytesPerPixel);

            // Mark the old buffer for disposal
            if (oldBitmapBuffer != null)
            {
                obsoleteBuffers.Add(oldBitmapBuffer);
            }
        }
Example #12
0
        public static bool Connect()
        {
            try
            {
                _sharedMemory = new BufferReadWrite(MemoryName);
            }
            catch
            {
                _sharedMemory = null;
                return(false);
            }

            return(true);
        }
Example #13
0
        public void ReadWrite_TimeoutException()
        {
            bool timedout = false;
            var  name     = Guid.NewGuid().ToString();

            byte[] data     = new byte[1024];
            byte[] readData = new byte[1024];


            using (var buf = new BufferReadWrite(name, 1024))
                using (var buf2 = new BufferReadWrite(name))
                {
                    // Set a small timeout to speed up the test
                    buf2.ReadWriteTimeout = 0;

                    // Introduce possible deadlock by acquiring without releasing the write lock.
                    buf.AcquireWriteLock();

                    // We want the AcquireReadLock to fail
                    if (!buf2.AcquireReadLock(1))
                    {
                        try
                        {
                            // Read should timeout with TimeoutException because buf.ReleaseWriteLock has not been called
                            buf2.Read(readData);
                        }
                        catch (TimeoutException)
                        {
                            timedout = true;
                        }
                    }
                    Assert.AreEqual(true, timedout, "The TimeoutException was not thrown.");

                    // Remove the deadlock situation, by releasing the write lock...
                    buf.ReleaseWriteLock();
                    // ...and ensure that we can now read the data
                    if (buf.AcquireReadLock(1))
                    {
                        buf2.Read(readData);
                    }
                    else
                    {
                        Assert.Fail("Failed to acquire read lock after releasing write lock.");
                    }
                }
        }
Example #14
0
 public static void Create()
 {
     try
     {
         _sharedMemory = new BufferReadWrite(MemoryName, MemorySize);
         State         = 0;
         StringBuf     = "null";
     }
     catch (IOException e) // try connect
     {
         _sharedMemory = new BufferReadWrite(MemoryName);
     }
     catch (Exception e)
     {
         _sharedMemory = null;
         throw e;
     }
 }
Example #15
0
        public void ReadWrite_Bytes_DataMatches()
        {
            var    name = Guid.NewGuid().ToString();
            Random r    = new Random();

            byte[] data     = new byte[1024];
            byte[] readData = new byte[1024];
            r.NextBytes(data);

            using (var buf = new BufferReadWrite(name, 1024))
                using (var buf2 = new BufferReadWrite(name))
                {
                    buf.Write(data);
                    buf2.Read(readData);

                    for (var i = 0; i < data.Length; i++)
                    {
                        Assert.AreEqual(data[i], readData[i]);
                    }
                }
        }
Example #16
0
 public SDKStruct(BufferReadWrite sharedMemory, int offset = 0)
 {
     this.sharedMemory = sharedMemory;
     this.offset       = offset;
 }
Example #17
0
 public VariableBuffer(BufferReadWrite sharedMemory, int offset = 0) : base(sharedMemory, offset)
 {
 }
Example #18
0
 protected override void OnLoad(EventArgs e)
 {
     sharedArray  = new SharedArray <int>(name: "MySharedArray", length: 100);
     sharedBuffer = new BufferReadWrite(name: "MySharedBuffer", bufferSize: sizeof(int) * 100);
     base.OnLoad(e);
 }