예제 #1
0
 /// <summary>
 /// Unload this Object Server
 /// </summary>
 public virtual void Unload()
 {
     if (IsOpen)
     {
         File.IFileSet fs = _fileset;
         if (fs != null)
         {
             fs.MarkNotDirty();
             fs.Close();
         }
         ((File.IFile)SystemFile).MarkNotDirty();
         ((File.IFile)SystemFile).Close();
     }
 }
예제 #2
0
        /// <summary>
        /// Open the Object Server
        /// </summary>
        public virtual void Open()
        {
            if (!IsOpen)
            {
                ((File.IFile)SystemFile).Open();
                object o = SystemFile.Store[SystemFileDeletedCollectionsLiteral];
                if (o != null && o is long)
                {
                    if (HasTrashBin)
                    {
                        ((File.IFile)SystemFile).DeletedCollections.DataAddress = (long)o;
                        ((File.IFile)SystemFile).DeletedCollections.Load();
                    }
#if (TRIAL)
                    if (!SystemFile.ObjectStore.Contains("_SystemCreateDate"))
                    {
                        SystemFile.ObjectStore["_SystemCreateDate"] = DateTime.Now;
                    }
                    DateTime dt = (DateTime)SystemFile.ObjectStore["_SystemCreateDate"];
                    if (DateTime.Now.Subtract(dt).TotalDays > 30)
                    {
                        throw new InvalidOperationException(
                                  "This trial version of BTreeGold v4.0 - SOP is expired. Visit www.4atech.net for details on getting your production license."
                                  );
                    }
#endif
                    ValidateLicense();
                }

                File.IFileSet fs = (File.IFileSet)FileSet;
                if (fs != null)
                {
                    fs.Open();
                }

                if (CollectionOnDisk.Session != null)
                {
                    CollectionOnDisk.Session.Register(this);
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Close the Object Server
        /// </summary>
        public virtual void Close()
        {
            if (!IsOpen)
            {
                return;
            }
            _licenseSaved = false;
            if (HomePath != Path)
            {
                WriteSystemFileAttributes();
            }
            File.IFileSet fs = _fileset;
            if (fs != null && ((FileSet)_fileset).Btree != null)
            {
                fs.Close();
            }
            ((File.IFile)SystemFile).Close();

            if (CollectionOnDisk.Session != null)
            {
                CollectionOnDisk.Session.UnRegister(this);
            }
        }