예제 #1
0
파일: Api.cs 프로젝트: 925coder/ravendb
 /// <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));
 }
예제 #2
0
파일: Api.cs 프로젝트: 925coder/ravendb
 /// <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";
 }
예제 #6
0
 public void JetInstanceInfoToString()
 {
     var instanceInfo = new JET_INSTANCE_INFO(JET_INSTANCE.Nil, "name", null);
     Assert.AreEqual("JET_INSTANCE_INFO(name)", instanceInfo.ToString());
 }