public void FactoryConstructorThrowsIfInstanceIsNull() { Assert.Throws <ArgumentNullException>(() => { var _ = new SharedHandle <MockResource>((Func <MockResource>)null); }); }
public void AccessAcquiresResourceOnlyOnce() { var resource = new MockResource(); var handle = new SharedHandle <MockResource>(() => resource); handle.Access(); handle.Access(); Assert.AreEqual(1, resource.AcquireCalls); }
private static void Display(SharedHandle <StdVector <Datum> > datumsPtr) { // User's displaying/saving/other processing here // datum.cvOutputData: rendered frame with pose or heatmaps // datum.poseKeypoints: Array<float> with the estimated pose if (datumsPtr != null && datumsPtr.GetData(out var data) && !data.Empty) { // Display image var temp = data.ToArray(); Cv.ImShow("User worker GUI", temp[0].CvOutputData); Cv.WaitKey(); }
public void TokenDisposeDoesNotReleaseResourceIfTokensLeft() { var resource = new MockResource(); var handle = new SharedHandle <MockResource>(() => resource); var first = handle.Access(); var _ = handle.Access(); first.Dispose(); Assert.AreEqual(0, resource.ReleaseCalls); }
public void ResourceAccessOnTokenThrowsIfTokenIsDisposed() { var handle = new SharedHandle <MockResource>(new MockResource()); var token = handle.Access(); token.Dispose(); Assert.Throws <ObjectDisposedException>(() => { var _ = token.Resource; }); }
public void AccessCreatesAndAcquiredResource() { var resource = new MockResource(); var handle = new SharedHandle <MockResource>(resource); var _ = handle.Access(); Assert.Multiple(() => { Assert.AreEqual(1, handle.Tokens); Assert.AreEqual(1, resource.AcquireCalls); }); }
public void ResourceIsReacquiredAfterIsWasReleased() { var resource = new MockResource(); var handle = new SharedHandle <MockResource>(() => resource); //This acquires the resource var first = handle.Access(); //This releases the resource first.Dispose(); //This should now reacquire the resource first = handle.Access(); Assert.AreEqual(2, resource.AcquireCalls); }
public void LastTokenReleasesResource() { var resource = new MockResource(); var handle = new SharedHandle <MockResource>(resource); var token = handle.Access(); token.Dispose(); Assert.Multiple(() => { Assert.AreEqual(1, resource.ReleaseCalls); Assert.AreEqual(0, handle.Tokens); }); }
/// <summary> /// Creates another reference to the file referenced by existing reference /// </summary> /// <param name="another"></param> public LocalFile(LocalFile another) { fileControllerHandle = another.fileControllerHandle.Duplicate(); }
/// <summary> /// Creates new reference to specified file /// </summary> /// <param name="path">The path to the file</param> /// <param name="deleteOnDispose">Whether file should be deleted when the reference gets disposed</param> public LocalFile([NotNull] string path, bool deleteOnDispose = false) { fileControllerHandle = SharedHandle.NewHandle(new FileController(path, deleteOnDispose)); }