/// <summary> /// Starts a snapshot. While the snapshot is in progress, no /// write-to-disk activity by the engine can take place. /// </summary> /// <param name="snapshot">The snapshot session.</param> /// <param name="numInstances"> /// Returns the number of instances that are part of the snapshot session. /// </param> /// <param name="instances"> /// Returns information about the instances that are part of the snapshot session. /// </param> /// <param name="grbit"> /// Snapshot freeze options. /// </param> public static void JetOSSnapshotFreeze(JET_OSSNAPID snapshot, out int numInstances, out JET_INSTANCE_INFO[] instances, SnapshotFreezeGrbit grbit) { Api.Check(Impl.JetOSSnapshotFreeze(snapshot, out numInstances, out instances, grbit)); }
/// <summary> /// Retrieves information about the instances that are running. /// </summary> /// <param name="numInstances"> /// Returns the number of instances. /// </param> /// <param name="instances"> /// Returns an array of instance info objects, one for each running /// instance. /// </param> public static void JetGetInstanceInfo(out int numInstances, out JET_INSTANCE_INFO[] instances) { Api.Check(Impl.JetGetInstanceInfo(out numInstances, out instances)); }
/// <summary> /// Create a native object, convert it to managed and assert the conversion was sucessful. /// </summary> /// <param name="stringConverter"> /// Method used to marshal a managed string. /// </param> /// <param name="setter"> /// Method used to convert a native object to a managed object. /// </param> private static unsafe void TestSetFromNative(Func<string, IntPtr> stringConverter, Action<JET_INSTANCE_INFO, NATIVE_INSTANCE_INFO> setter) { JET_INSTANCE_INFO managed = new JET_INSTANCE_INFO(); IntPtr* databases = stackalloc IntPtr[2]; databases[0] = stringConverter(Database0); databases[1] = stringConverter(Database1); NATIVE_INSTANCE_INFO native = new NATIVE_INSTANCE_INFO { hInstanceId = instance, cDatabases = new IntPtr(2), szInstanceName = stringConverter(InstanceName), szDatabaseFileName = databases }; setter(managed, native); Marshal.FreeHGlobal(native.szInstanceName); Marshal.FreeHGlobal(databases[0]); Marshal.FreeHGlobal(databases[1]); CheckManaged(managed); }
/// <summary> /// Check that a managed object has the correct members set. /// </summary> /// <param name="info"> /// The managed object to check. /// </param> private static void CheckManaged(JET_INSTANCE_INFO info) { Assert.AreEqual(new JET_INSTANCE { Value = instance }, info.hInstanceId); Assert.AreEqual(InstanceName, info.szInstanceName); Assert.AreEqual(2, info.cDatabases); }
public void VerifySzDatabasesIsReadOnly() { var info = new JET_INSTANCE_INFO(JET_INSTANCE.Nil, "instance", new[] { "foo.edb" }); info.szDatabaseFileName[0] = "bar.edb"; }
public void JetInstanceInfoToString() { var instanceInfo = new JET_INSTANCE_INFO(JET_INSTANCE.Nil, "name", null); Assert.AreEqual("JET_INSTANCE_INFO(name)", instanceInfo.ToString()); }