Ejemplo n.º 1
0
 private static IEmbeddedConfiguration Db4oConfig(IEmbeddedConfiguration db4oConfig
     )
 {
     db4oConfig.Common.ReflectWith(Platform4.ReflectorForType(typeof (Data
         )));
     return db4oConfig;
 }
Ejemplo n.º 2
0
		public virtual void Querydb(IEmbeddedConfiguration config, int[] count, Type class1
			, Type class2)
		{
			IEmbeddedObjectContainer database = Db4oEmbedded.OpenFile(config, TempFile());
			try
			{
				IList list = database.Query(class1);
				Assert.AreEqual(count[0], list.Count, "Unexpected result querying for " + class1.
					Name);
				if (count[0] > 0)
				{
				}
				// System.out.println("Querying for " + class1.getSimpleName() + " getting " + list.get(0).getClass().getSimpleName());
				IList list1 = database.Query(class2);
				Assert.AreEqual(count[1], list1.Count, "Unexpected result querying for " + class2
					.Name);
				if (count[1] > 0)
				{
				}
			}
			finally
			{
				// System.out.println("Querying for " + class2.getSimpleName() + " getting " + list1.get(0).getClass().getSimpleName());
				database.Close();
			}
		}
 internal void Verify(IEmbeddedConfiguration config, IEmbeddedObjectContainer container
     )
 {
     Assert.AreSame(config, _config);
     Assert.AreSame(container, _container);
     Assert.AreEqual(1, _prepareCount);
     Assert.AreEqual(1, _applyCount);
 }
Ejemplo n.º 4
0
 public static DefragmentConfig DefragConfig(string sourceFile, IEmbeddedConfiguration
     db4oConfig, bool forceBackupDelete)
 {
     var defragConfig = new DefragmentConfig(sourceFile, DefragmentTestCaseBase
         .BackupFileNameFor(sourceFile));
     defragConfig.ForceBackupDelete(forceBackupDelete);
     defragConfig.Db4oConfig(Db4oConfig(db4oConfig));
     return defragConfig;
 }
Ejemplo n.º 5
0
		private void Read(IEmbeddedConfiguration config)
		{
			IObjectContainer oc = Open(config);
			IObjectSet objectSet = AllItems(oc);
			while (objectSet.HasNext())
			{
				Item item = (Item)objectSet.Next();
			}
			oc.Close();
		}
Ejemplo n.º 6
0
 private void Configure(IEmbeddedConfiguration config)
 {
     config.Common.Diagnostic.AddListener(this);
     config.File.GenerateCommitTimestamps = true;
     config.File.GenerateUUIDs = ConfigScope.Globally;
     config.Common.ObjectClass(typeof (Item)).ObjectField
         ("_itemName").Indexed(true);
     config.Common.ObjectClass(typeof (Parent)).ObjectField
         ("_parentName").Indexed(true);
 }
 private long StoreItemAndGetCommitTimestamp(IEmbeddedConfiguration config)
 {
     var db = OpenContainer(config);
     var item = new Item
         ();
     db.Store(item);
     db.Commit();
     var commitTimestamp = db.Ext().GetObjectInfo(item).GetCommitTimestamp();
     db.Close();
     return commitTimestamp;
 }
Ejemplo n.º 8
0
 public static void CreateFile(string fileName, IEmbeddedConfiguration config)
 {
     IObjectContainer db = Db4oEmbedded.OpenFile(config, fileName);
     Data data = null;
     for (var value = Value - 1; value <= Value + 1; value++)
     {
         data = new Data(value, data);
         db.Store(data);
     }
     db.Close();
 }
		private long StoreItemAndGetCommitTimestamp(IEmbeddedConfiguration config)
		{
			IEmbeddedObjectContainer db = OpenContainer(config);
			CommitTimestampDefragmentTestCase.Item item = new CommitTimestampDefragmentTestCase.Item
				();
			db.Store(item);
			db.Commit();
			long commitTimestamp = db.Ext().GetObjectInfo(item).GetCommitTimestamp();
			db.Close();
			return commitTimestamp;
		}
		private void AssertVersionAfterDefrag(long version, IEmbeddedConfiguration afterDefragConfig
			)
		{
			IEmbeddedObjectContainer db = OpenContainer(afterDefragConfig);
			CommitTimestampDefragmentTestCase.Item retrievedItem = ((CommitTimestampDefragmentTestCase.Item
				)db.Query(typeof(CommitTimestampDefragmentTestCase.Item)).Next());
			long retrievedVersion = db.Ext().GetObjectInfo(retrievedItem).GetCommitTimestamp(
				);
			Assert.AreEqual(version, retrievedVersion);
			db.Close();
		}
Ejemplo n.º 11
0
		/// <exception cref="Db4objects.Db4o.Ext.OldFormatException"></exception>
		public static IEmbeddedObjectContainer OpenObjectContainer(IEmbeddedConfiguration
			 config, string databaseFileName)
		{
			IConfiguration legacyConfig = Db4oLegacyConfigurationBridge.AsLegacy(config);
			Config4Impl.AssertIsNotTainted(legacyConfig);
			EmitDebugInfo();
			IEmbeddedObjectContainer oc = new IoAdaptedObjectContainer(legacyConfig, databaseFileName
				);
			((EmbeddedConfigurationImpl)config).ApplyConfigurationItems(oc);
			Db4objects.Db4o.Internal.Messages.LogMsg(legacyConfig, 5, databaseFileName);
			return oc;
		}
Ejemplo n.º 12
0
		private void Update(IEmbeddedConfiguration config)
		{
			IObjectContainer oc = Open(config);
			IObjectSet objectSet = AllItems(oc);
			while (objectSet.HasNext())
			{
				Item item = (Item)objectSet.Next();
				item.Change();
				oc.Store(item);
			}
			oc.Close();
		}
Ejemplo n.º 13
0
 private void WithDatabase(IEmbeddedConfiguration config, IDatabaseAction
     action)
 {
     IObjectContainer db = Db4oEmbedded.OpenFile(config, TempFile());
     try
     {
         action.RunWith(db);
     }
     finally
     {
         db.Close();
     }
 }
Ejemplo n.º 14
0
		private void Delete(IEmbeddedConfiguration config)
		{
			IObjectContainer oc = Open(config);
			IObjectSet objectSet = AllItems(oc);
			while (objectSet.HasNext())
			{
				oc.Delete(objectSet.Next());
				// adding commit results in more syncs in the log, 
				// which is necessary for meaningful statistics!
				oc.Commit();
			}
			oc.Close();
		}
		public virtual void QueryDb(IEmbeddedConfiguration config, Type clazz, int count)
		{
			IEmbeddedObjectContainer database = Db4oEmbedded.OpenFile(config, TempFile());
			try
			{
				IList list = database.Query(clazz);
				Assert.AreEqual(count, list.Count);
			}
			finally
			{
				database.Close();
			}
		}
Ejemplo n.º 16
0
		public static FileUsageStats RunStats(string dbPath, bool collectSlots, IEmbeddedConfiguration
			 config)
		{
			IEmbeddedObjectContainer db = Db4oEmbedded.OpenFile(config, dbPath);
			try
			{
				return new Db4objects.Db4o.Filestats.FileUsageStatsCollector(db, collectSlots).CollectStats
					();
			}
			finally
			{
				db.Close();
			}
		}
Ejemplo n.º 17
0
		private void Create(int itemCount, IEmbeddedConfiguration config)
		{
			IObjectContainer oc = Open(config);
			for (int i = 0; i < itemCount; i++)
			{
				oc.Store(Item.NewItem(i));
				// preventing heap space problems by committing from time to time
				if (i % 100000 == 0)
				{
					oc.Commit();
				}
			}
			oc.Commit();
			oc.Close();
		}
Ejemplo n.º 18
0
        /// <summary>
        /// 获取数据库对象
        /// </summary>
        /// <param name="_claobj">更新的对象</param>
        /// <returns></returns>
        public IObjectContainer GetDbObj(object _claobj)
        {
            IObjectContainer db = null;
            try
            {
                configuration = Db4oEmbedded.NewConfiguration();
                // Update all referenced objects for the Driver class
                configuration.Common.ObjectClass(_claobj).CascadeOnUpdate(true);
                db = Db4oEmbedded.OpenFile(configuration, DbSavePath);
            }
            catch(Exception ex)
            {
            }

            return db;
        }
Ejemplo n.º 19
0
        private void QueriesInSivlerlight()
        {
            IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();

            configuration.File.Storage = new IsolatedStorageStorage();

            IObjectContainer container = Db4oEmbedded.OpenFile(configuration, "database.db4o");
            // #example: Queries in Silverlight
            var persons = from Person p in container
                          where p.FirstName.Contains("Roman")
                          select p;

            foreach (Person person in persons)
            {
                // do something with the person
            }
            // #end example
        }
Ejemplo n.º 20
0
 public static void ForceIndex(string databaseFileName, IEmbeddedConfiguration config
     )
 {
     config.Common.ObjectClass(typeof (Data)).ObjectField(PrimitiveFieldname
         ).Indexed(true);
     config.Common.ObjectClass(typeof (Data)).ObjectField(WrapperFieldname
         ).Indexed(true);
     config.Common.ObjectClass(typeof (Data)).ObjectField(TypedobjectFieldname
         ).Indexed(true);
     IObjectContainer db = Db4oEmbedded.OpenFile(config, databaseFileName);
     Assert.IsTrue(db.Ext().StoredClass(typeof (Data)).StoredField
         (PrimitiveFieldname, typeof (int)).HasIndex());
     Assert.IsTrue(db.Ext().StoredClass(typeof (Data)).StoredField
         (WrapperFieldname, typeof (int)).HasIndex());
     Assert.IsTrue(db.Ext().StoredClass(typeof (Data)).StoredField
         (TypedobjectFieldname, typeof (Data)).HasIndex());
     db.Close();
 }
Ejemplo n.º 21
0
        private static void IncreaseUpdateDepth()
        {
            // #example: Increase the update depth to 2
            IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();

            configuration.Common.UpdateDepth = 2;
            // #end example

            using (IObjectContainer container = Db4oEmbedded.OpenFile(configuration, DatabaseFile))
            {
                Driver driver = QueryForDriver(container);
                driver.Name = "Joe";
                driver.MostLovedCar.CarName = "Red Ferrari";
                driver.AddOwnedCar(new Car("Fiat Punto"));
                container.Store(driver);
            }
            PrintOutContent();
        }
 private static void StoreItems(PagingMemoryStorage storage)
 {
     IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();
     config.File.Storage = storage;
     IEmbeddedObjectContainer container = Db4oEmbedded.OpenFile(config, "benchmark.db4o"
         );
     try
     {
         for (int i = 0; i < ObjectCount; ++i)
         {
             container.Store(new SodaQueryComparatorBenchmark.Item(i, "Item " + i, new SodaQueryComparatorBenchmark.ItemChild
                 ("Child " + i)));
         }
     }
     finally
     {
         container.Close();
     }
 }
Ejemplo n.º 23
0
        public static void AddRooms(int roomID, int RoomNum, int Persons, string Beds)

        {
            string                 path = Directory.GetCurrentDirectory() + "\\database.srph";
            IObjectContainer       db;
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.ObjectClass(typeof(Rooms)).CascadeOnUpdate(true);
            config.Common.ObjectClass(typeof(Rooms)).CascadeOnDelete(true);
            config.Common.ObjectClass(typeof(Rooms)).CascadeOnActivate(true);

            db = Db4oEmbedded.OpenFile(config, path);

            var room = new Rooms(RoomNum, Persons, Beds);

            db.Store(room);
            db.Commit();
            db.Close();
        }
Ejemplo n.º 24
0
        public static List <Reservation> GetReservations()
        {
            string path = Directory.GetCurrentDirectory() + "\\database.srph";

            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.ObjectClass(typeof(Reservation)).CascadeOnUpdate(true);
            config.Common.ObjectClass(typeof(Reservation)).CascadeOnDelete(true);
            config.Common.ObjectClass(typeof(Reservation)).CascadeOnActivate(true);


            List <Reservation> Reservations;

            using (IObjectContainer db = Db4oEmbedded.OpenFile(config, path))
            {
                Reservations = (from Reservation r in db select r).ToList();
            }
            return(Reservations.ToList <Reservation>());
        }
Ejemplo n.º 25
0
        public static void DeleteAll()
        {
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.ObjectClass(typeof(Car)).CascadeOnDelete(true);
            using (IObjectContainer db = Db4oEmbedded.OpenFile(config, YapFileName))
            {
                var result = db.QueryByExample(new Car(null, null));
                foreach (object car in result)
                {
                    db.Delete(car);
                }
                var readouts = db.QueryByExample(new SensorReadout(null, DateTime.MinValue, null));
                foreach (object readout in readouts)
                {
                    db.Delete(readout);
                }
            }
        }
Ejemplo n.º 26
0
        public static void ForceIndex(string databaseFileName, IEmbeddedConfiguration config
                                      )
        {
            config.Common.ObjectClass(typeof(Data)).ObjectField(PrimitiveFieldname
                                                                ).Indexed(true);
            config.Common.ObjectClass(typeof(Data)).ObjectField(WrapperFieldname
                                                                ).Indexed(true);
            config.Common.ObjectClass(typeof(Data)).ObjectField(TypedobjectFieldname
                                                                ).Indexed(true);
            IObjectContainer db = Db4oEmbedded.OpenFile(config, databaseFileName);

            Assert.IsTrue(db.Ext().StoredClass(typeof(Data)).StoredField
                              (PrimitiveFieldname, typeof(int)).HasIndex());
            Assert.IsTrue(db.Ext().StoredClass(typeof(Data)).StoredField
                              (WrapperFieldname, typeof(int)).HasIndex());
            Assert.IsTrue(db.Ext().StoredClass(typeof(Data)).StoredField
                              (TypedobjectFieldname, typeof(Data)).HasIndex());
            db.Close();
        }
Ejemplo n.º 27
0
        private static void MarkTransient()
        {
            CleanUp();

            // #example: add an transient marker annotatin
            IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();

            configuration.Common.MarkTransient(typeof(TransientMarkerAttribute).FullName);
            // #end example

            IObjectContainer container = Db4oEmbedded.OpenFile(configuration, DatabaseFile);

            container.Store(new WithTransient());
            container.Close();

            ReadWithTransientMarker();

            CleanUp();
        }
Ejemplo n.º 28
0
        private static void ActivationJustWorks()
        {
            // #example: Configure transparent persistence
            IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();

            configuration.Common.Add(new TransparentPersistenceSupport(new DeactivatingRollbackStrategy()));
            using (IObjectContainer container = Db4oEmbedded.OpenFile(configuration, DatabaseFileName))
            // #end example
            {
                //#example: Transparent persistence manages activation
                Driver driver = QueryForDriver(container);
                // Transparent persistence will activate objects as needed
                Console.WriteLine("Is activated? " + container.Ext().IsActive(driver));
                string nameOfDriver = driver.Name;
                Console.WriteLine("The name is " + nameOfDriver);
                Console.WriteLine("Is activated? " + container.Ext().IsActive(driver));
                //#end example
            }
        }
Ejemplo n.º 29
0
        public static void DeleteDeepRevisited()
        {
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.ObjectClass(typeof(Car)).CascadeOnDelete(true);
            using (IObjectContainer db = Db4oEmbedded.OpenFile(config, YapFileName))
            {
                IObjectSet result = db.QueryByExample(new Pilot("Michael Schumacher", 0));
                Pilot      pilot  = (Pilot)result.Next();
                Car        car1   = new Car("Ferrari");
                Car        car2   = new Car("BMW");
                car1.Pilot = pilot;
                car2.Pilot = pilot;
                db.Store(car1);
                db.Store(car2);
                db.Delete(car2);
                result = db.QueryByExample(new Car(null));
                ListResult(result);
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        /// 初始化DB引擎
        /// </summary>
        /// <param name="fileName">默认在应用程序启动目录,只用写文件名</param>
        /// <returns></returns>
        public static IObjectContainer InitDB4O(string fileName, Type t)
        {
            IObjectContainer _db;

            try
            {
                IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();
                string YapFileName            = System.IO.Path.Combine(CommonHelper.GetAssemblyPath(), fileName);
                config.Common.ObjectClass(t).CascadeOnActivate(true);
                config.Common.ObjectClass(t).CascadeOnDelete(true);
                config.Common.ObjectClass(t).CascadeOnUpdate(true);
                config.Common.ActivationDepth = 20;
                _db = Db4oEmbedded.OpenFile(config, YapFileName);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(_db);
        }
        public static void ModifySnapshotHistory()
        {
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.Add(new TransparentPersistenceSupport());
            using (IObjectContainer db = Db4oEmbedded.OpenFile(config, YapFileName))
            {
                System.Console.WriteLine("Read all sensors and modify the description:");
                IObjectSet    result  = db.QueryByExample(typeof(Car));
                Car           car     = (Car)result.Next();
                SensorReadout readout = car.History;
                while (readout != null)
                {
                    System.Console.WriteLine(readout);
                    readout.Description = "Modified: " + readout.Description;
                    readout             = readout.Next;
                }
                db.Commit();
            }
        }
Ejemplo n.º 32
0
        public static void DemonstrateTransparentActivation()
        {
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();
            config.Common.Add(new TransparentActivationSupport());
            
            using(IObjectContainer db = Db4oEmbedded.OpenFile(config, YapFileName)){
                IObjectSet result = db.QueryByExample(typeof (Car));
                Car car = (Car) result.Next();

                Console.WriteLine("#PilotWithoutActivation before the car is activated");
                Console.WriteLine(car.PilotWithoutActivation);

                Console.WriteLine("accessing 'Pilot' property activates the car object");
                Console.WriteLine(car.Pilot);

                Console.WriteLine("Accessing PilotWithoutActivation property after the car is activated");
                Console.WriteLine(car.PilotWithoutActivation);

            }
        }
Ejemplo n.º 33
0
        public static void DeleteReservation(int ResID)
        {
            string path = Directory.GetCurrentDirectory() + "\\database.srph";
            //IObjectContainer db;
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.ObjectClass(typeof(Reservation)).CascadeOnUpdate(true);
            config.Common.ObjectClass(typeof(Reservation)).CascadeOnDelete(true);
            config.Common.ObjectClass(typeof(Reservation)).CascadeOnActivate(true);

            using (IObjectContainer db = Db4oEmbedded.OpenFile(config, path))
            {
                var result = db.Query <Reservation>(x => x.ReservationID == ResID);
                db.Delete(result);
                db.Commit();
                db.Close();
            }

            // db = Db4oEmbedded.OpenFile(config, path);
        }
Ejemplo n.º 34
0
        private void AssertInconsistencyDetected(IProcedure4 proc)
        {
            IEmbeddedConfiguration config = NewConfiguration();
            LocalObjectContainer   db     = (LocalObjectContainer)Db4oEmbedded.OpenFile(config, TempFile
                                                                                            ());

            try
            {
                ConsistencyCheckerTestCase.Item item = new ConsistencyCheckerTestCase.Item();
                db.Store(item);
                db.Commit();
                Assert.IsTrue(new ConsistencyChecker(db).CheckSlotConsistency().Consistent());
                proc.Apply(new Pair(db, item));
                db.Commit();
                Assert.IsFalse(new ConsistencyChecker(db).CheckSlotConsistency().Consistent());
            }
            finally
            {
                db.Close();
            }
        }
Ejemplo n.º 35
0
        public static Reservation GetReservation(int ResNumber)
        {
            string path = Directory.GetCurrentDirectory() + "\\database.srph";
            // IObjectContainer db;
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.ObjectClass(typeof(Reservation)).CascadeOnUpdate(true);
            config.Common.ObjectClass(typeof(Reservation)).CascadeOnDelete(true);
            config.Common.ObjectClass(typeof(Reservation)).CascadeOnActivate(true);

            //db = Db4oEmbedded.OpenFile(config, path);
            using (IObjectContainer db = Db4oEmbedded.OpenFile(config, path))
            {
                var         results = db.Query <Reservation>(x => x.ReservationID == ResNumber);
                Reservation Reserv  = results.First();
                return(Reserv);
            }

            //jak jest puste to się wywala, trzeba to jakoś obudować
            //try catch łapiesz i wywalasz komuniakt ex brak rezerwacji o danym idp-
        }
        public virtual void TestOpenWithNonStaticConfiguration()
        {
            IEmbeddedConfiguration config1 = NewConfiguration();

            config1.File.ReadOnly = true;
            Assert.Expect(typeof(DatabaseReadOnlyException), new _ICodeBlock_30(this, config1
                                                                                ));
            IEmbeddedConfiguration config2 = NewConfiguration();
            IObjectContainer       db2     = Db4oEmbedded.OpenFile(config2, TempFile());

            try
            {
                db2.Store(new GlobalVsNonStaticConfigurationTestCase.Data(2));
                Assert.AreEqual(1, db2.Query(typeof(GlobalVsNonStaticConfigurationTestCase.Data))
                                .Count);
            }
            finally
            {
                db2.Close();
            }
        }
        protected void Configure(IEmbeddedConfiguration config)
        {
            config.Common.Add(new JavaSupport());

            config.Common.AddAlias(new TypeAlias("CollectionHolder", TypeName(typeof(CollectionHolder))));
            config.Common.AddAlias(new TypeAlias("java.util.ArrayList", TypeName(typeof(ArrayList))));

            config.Common.AddAlias(new TypeAlias("java.util.AbstractCollection",
                                                 TypeName(typeof(DummyAbstractCollection))));
            config.Common.AddAlias(new TypeAlias("java.util.AbstractList", TypeName(typeof(DummyAbstractList))));

            config.Common.AddAlias(new TypeAlias("com.db4o.typehandlers.IgnoreFieldsTypeHandler",
                                                 TypeName(typeof(IgnoreFieldsTypeHandler))));
            config.Common.AddAlias(new TypeAlias("com.db4o.typehandlers.CollectionTypeHandler",
                                                 TypeName(typeof(IgnoreFieldsTypeHandler))));

            config.Common.RegisterTypeHandler(new SingleClassTypeHandlerPredicate(typeof(DummyAbstractList)),
                                              IgnoreFieldsTypeHandler.Instance);
            config.Common.RegisterTypeHandler(new SingleClassTypeHandlerPredicate(typeof(DummyAbstractCollection)),
                                              IgnoreFieldsTypeHandler.Instance);
        }
Ejemplo n.º 38
0
        protected override void StartRun()
        {
            string dbPath = Settings.Default.GetAppDataPath() + "xgobjects.db4o";

            bool loadFromSqlite = false;

            if (!System.IO.File.Exists(dbPath) && System.IO.File.Exists(Settings.Default.GetAppDataPath() + "xgobjects.db"))
            {
                loadFromSqlite = true;
            }

            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.StringEncoding = StringEncodings.Utf8();
            config.Common.Add(new TransparentActivationSupport());
            config.Common.Add(new TransparentPersistenceSupport());

            /*if (System.IO.File.Exists(dbPath))
             * {
             *      DefragmentConfig defragmentConfig = new DefragmentConfig(dbPath);
             *      defragmentConfig.Db4oConfig(config);
             *      Defragment.Defrag(defragmentConfig);
             * }*/

            _db = Db4oEmbedded.OpenFile(config, dbPath);

            if (loadFromSqlite)
            {
                var sqliteConverter = new SqliteConverter();
                sqliteConverter.Load();

                _db.Store(sqliteConverter.Servers);
                _db.Store(sqliteConverter.Files);
                _db.Store(sqliteConverter.Searches);
                _db.Store(sqliteConverter.ApiKeys);
                _db.Commit();
            }

            Load();
        }
        public virtual void TestEmbedded()
        {
            IList missingClasses = new ArrayList();
            IEmbeddedConfiguration excludingConfig = Db4oEmbedded.NewConfiguration();

            PrepareHost(excludingConfig.File, excludingConfig.Common, missingClasses);
            ExcludeClasses(excludingConfig.Common, new Type[] { typeof(MissingClassDiagnosticsTestCase.Pilot
                                                                       ), typeof(MissingClassDiagnosticsTestCase.Car) });
            IEmbeddedObjectContainer excludingContainer = Db4oEmbedded.OpenFile(excludingConfig
                                                                                , DbUri);

            try
            {
                excludingContainer.Query(new MissingClassDiagnosticsTestCase.AcceptAllPredicate()
                                         );
            }
            finally
            {
                excludingContainer.Close();
            }
            AssertPilotAndCarMissing(missingClasses);
        }
Ejemplo n.º 40
0
        public static void Main(string[] args)
        {
            // #example: Configure rollback strategy
            IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();

            configuration.Common
            .Add(new TransparentPersistenceSupport(new DeactivatingRollbackStrategy()));
            // #end example
            using (IObjectContainer container = Db4oEmbedded.OpenFile(configuration, "database.db4o"))
            {
                StorePilot(container);

                // #example: Rollback with rollback strategy
                Pilot pilot = container.Query <Pilot>()[0];
                pilot.Name = "NewName";
                // Rollback
                container.Rollback();
                // Now the pilot has the old name again
                Console.Out.WriteLine(pilot.Name);
                // #end example
            }
        }
Ejemplo n.º 41
0
        public static void IndividualUUID()
        {
            // #example: Enable db4o uuids for certain classes
            IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();

            configuration.File.GenerateUUIDs = ConfigScope.Individually;
            configuration.Common.ObjectClass(typeof(SpecialClass)).GenerateUUIDs(true);
            // #end example
            IObjectContainer container = Db4oEmbedded.OpenFile(configuration, "database.db4o");

            SpecialClass withUUID = new SpecialClass();

            container.Store(withUUID);
            NormalClass withoutUUID = new NormalClass();

            container.Store(withoutUUID);

            AssertNotNull(container.Ext().GetObjectInfo(withUUID).GetUUID());
            AssertNull(container.Ext().GetObjectInfo(withoutUUID).GetUUID());

            container.Close();
        }
Ejemplo n.º 42
0
        protected override void OpenDatabase()
        {
            if (string.IsNullOrEmpty(fileName))
            {
                throw new Exception("File name required");
            }

            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.UpdateDepth = 2;
            foreach (IPropertyRepository repo in Collections)
            {
                foreach (PropertyInfo pi in repo.ContentsType.GetProperties().Where(p => p.PropertyType == typeof(DbImage)))
                {
                    config.Common.ObjectClass(repo.ContentsType).ObjectField(pi.Name).CascadeOnUpdate(true);
                    config.Common.ObjectClass(repo.ContentsType).ObjectField(pi.Name).CascadeOnDelete(true);
                }
            }

            OnConfigCreate(config);
            container = Db4oEmbedded.OpenFile(config, fileName);
        }
        /// <summary>
        /// Conecta com base de dados, caso não exista conexão ativa
        /// </summary>
        public void Conectar()
        {
            if (container == null)
            {
                //Cria configuração para container
                config = Db4oEmbedded.NewConfiguration();

                //TODO:REMOVER
                config.Common.DetectSchemaChanges = true;

                //Configura indices paras as models
                //ConfigurarIndices();

                //Profundidade de ativacao
                config.Common.ActivationDepth = 8;

                //Cria Instância para leitura do arquivo de configuração
                cap = new AppSettingsReader();

                //Cria instância para container TODO:: cap.GetValue("BasePath", typeof(String)).ToString()
                container = Db4oEmbedded.OpenFile(config, Config.BancoDadosURL);
            }
        }
Ejemplo n.º 44
0
        public static void AssertDataClassKnown(string databaseFileName, IEmbeddedConfiguration
                                                config, bool expected)
        {
            IObjectContainer db = Db4oEmbedded.OpenFile(config, databaseFileName);

            try
            {
                var storedClass = db.Ext().StoredClass(typeof(Data
                                                              ));
                if (expected)
                {
                    Assert.IsNotNull(storedClass);
                }
                else
                {
                    Assert.IsNull(storedClass);
                }
            }
            finally
            {
                db.Close();
            }
        }
Ejemplo n.º 45
0
        public void SetIndex(ArrayList fieldnames, string className, ArrayList Indexed, string path, bool customConfig)
        {
            IObjectContainer con = null;

            try
            {
                IEmbeddedConfiguration embeddedConfig = !customConfig?Db4oEmbedded.NewConfiguration() : Config();

                for (int i = 0; i < fieldnames.Count; i++)
                {
                    embeddedConfig.Common.ObjectClass(className).ObjectField(fieldnames[i].ToString()).Indexed(
                        Convert.ToBoolean(Indexed[i]));
                }

                con = Db4oEmbedded.OpenFile(embeddedConfig, path);
                IReflectClass clazz = con.Ext().Reflector().ForName(className);
                con.QueryByExample(clazz);
            }
            finally
            {
                con.Close();
            }
        }
Ejemplo n.º 46
0
        public static void SaveStandards(List <BoolStringClass> standards)
        {
            string path = Directory.GetCurrentDirectory() + "\\database.srph";
            //IObjectContainer db;
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.ObjectClass(typeof(BoolStringClass)).CascadeOnUpdate(true);
            config.Common.ObjectClass(typeof(BoolStringClass)).CascadeOnDelete(true);
            config.Common.ObjectClass(typeof(BoolStringClass)).CascadeOnActivate(true);

            //db = Db4oEmbedded.OpenFile(config, path);

            using (IObjectContainer db = Db4oEmbedded.OpenFile(config, path))
            {
                foreach (var item in standards)
                {
                    var standard = new BoolStringClass(item.StandardName, item.StandardPrice, item.IsPermamentOrIsNotPermament);

                    db.Store(standard);
                    db.Commit();
                    db.Close();
                }
            }
        }
Ejemplo n.º 47
0
        public static void UpdateCollection()
        {
            IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();

            config.Common.ObjectClass(typeof(Car)).CascadeOnUpdate(true);
            using (IObjectContainer db = Db4oEmbedded.OpenFile(config, YapFileName))
            {
                IQuery query = db.Query();
                query.Constrain(typeof(Car));
                var   result  = query.Descend("_history").Execute();
                IList history = (IList)result.Next();
                history.RemoveAt(0);
                db.Store(history);
                Car proto   = new Car(null, null);
                var result2 = db.QueryByExample(proto);
                foreach (Car car in result2)
                {
                    foreach (object readout in car.History)
                    {
                        Console.WriteLine(readout);
                    }
                }
            }
        }
Ejemplo n.º 48
0
        public virtual void Test()
        {
            MemoryStorage          origStorage = new MemoryStorage();
            IEmbeddedConfiguration origConfig  = Config(origStorage);
            IObjectContainer       origDb      = Db4oEmbedded.OpenFile(origConfig, BinUri);

            origDb.Store(new MemoryBinIsReusableTestCase.Item(ItemName));
            origDb.Close();
            MemoryBin origBin = origStorage.Bin(BinUri);

            byte[] data = origBin.Data();
            Assert.AreEqual(data.Length, origBin.Length());
            MemoryBin     newBin     = new MemoryBin(data, new DoublingGrowthStrategy());
            MemoryStorage newStorage = new MemoryStorage();

            newStorage.Bin(BinUri, newBin);
            IObjectContainer newDb  = Db4oEmbedded.OpenFile(Config(newStorage), BinUri);
            IObjectSet       result = newDb.Query(typeof(MemoryBinIsReusableTestCase.Item));

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(ItemName, ((MemoryBinIsReusableTestCase.Item)result.Next())._name
                            );
            newDb.Close();
        }
Ejemplo n.º 49
0
        private static void UniqueViolation()
        {
            IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();

            configuration.Common.ObjectClass(typeof(UniqueId)).ObjectField("id").Indexed(true);
            configuration.Common.Add(new UniqueFieldValueConstraint(typeof(UniqueId), "id"));
            using (IObjectContainer container = Db4oEmbedded.OpenFile(configuration, "database.db4o"))
            {
                // #example: Violation of the unique constraint
                container.Store(new UniqueId(42));
                container.Store(new UniqueId(42));
                try
                {
                    container.Commit();
                }
                catch (UniqueFieldValueConstraintViolationException e)
                {
                    // Violated the unique-constraint!
                    // Retry with a new value or handle this gracefully
                    container.Rollback();
                }
                // #end example
            }
        }
Ejemplo n.º 50
0
        private IConfiguration LegacyConfigFor(IEmbeddedConfiguration configuration)
        {
            EmbeddedConfigurationImpl configImpl = (EmbeddedConfigurationImpl)configuration;

            return(configImpl.Legacy());
        }
Ejemplo n.º 51
0
		/// <summary>
		/// opens an
		/// <see cref="Db4objects.Db4o.IObjectContainer">IObjectContainer</see>
		/// on the specified database file for local use.
		/// <br/>
		/// <br/>
		/// A database file can only be opened once, subsequent attempts to
		/// open another
		/// <see cref="Db4objects.Db4o.IObjectContainer">IObjectContainer</see>
		/// against the same file will result in a
		/// <see cref="Db4objects.Db4o.Ext.DatabaseFileLockedException"> DatabaseFileLockedException</see>
		/// .
		/// <br/>
		/// <br/>
		/// Database files can only be accessed for readwrite access from one
		/// process at one time. All versions except for db4o mobile edition
		/// use an internal mechanism to lock the database file for other
		/// processes.
		/// <br/>
		/// <br/>
		/// </summary>
		/// <param name="config">
		/// a custom
		/// <see cref="Db4objects.Db4o.Config.IConfiguration">IConfiguration</see>
		/// instance to be obtained via
		/// <see cref="newConfiguration">newConfiguration</see>
		/// </param>
		/// <param name="databaseFileName">an absolute or relative path to the database
		/// file</param>
		/// <returns>
		/// an open
		/// <see cref="Db4objects.Db4o.IObjectContainer">IObjectContainer</see>
		/// </returns>
		/// <seealso cref="Db4objects.Db4o.Config.IConfiguration.ReadOnly">
		/// Db4objects.Db4o.Config.IConfiguration.ReadOnly</seealso>
		/// <seealso cref="Db4objects.Db4o.Config.IConfiguration.Encrypt"> Db4objects.Db4o.Config.IConfiguration.Encrypt
		/// </seealso>
		/// <seealso cref="Db4objects.Db4o.Config.IConfiguration.Password">
		/// Db4objects.Db4o.Config.IConfiguration.Password</seealso>
		/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"> I/O operation failed or was unexpectedly
		/// interrupted.</exception>
		/// <exception cref="Db4objects.Db4o.Ext.DatabaseFileLockedException"> the required database file is locked by
		/// another process.</exception>
		/// <exception cref="Db4objects.Db4o.Ext.IncompatibleFileFormatException">
		/// runtime
		/// <see cref="Db4objects.Db4o.Config.IConfiguration">configuration</see>
		/// is not compatible with the configuration of the database file.
		/// </exception>
		/// <exception cref="Db4objects.Db4o.Ext.OldFormatException">
		/// open operation failed because the database file is in old format
		/// and
		/// <see cref="Db4objects.Db4o.Config.IConfiguration.AllowVersionUpdates">
		/// Db4objects.Db4o.Config.IConfiguration.AllowVersionUpdates</see>
		/// is set to false.
		/// </exception>
		/// <exception cref="Db4objects.Db4o.Ext.DatabaseReadOnlyException"> database was configured as read-only.
		/// </exception>
		public static IEmbeddedObjectContainer OpenFile(IEmbeddedConfiguration config, string
			 databaseFileName)
		{
			if (null == config)
			{
				throw new ArgumentNullException();
			}
			return ObjectContainerFactory.OpenObjectContainer(config, databaseFileName);
		}
Ejemplo n.º 52
0
 public void Configure(IEmbeddedConfiguration configuration)
 {
     ConfigureReflector(configuration, info.DyanmicTypesRepresentation);
 }
Ejemplo n.º 53
0
		public void Prepare(IEmbeddedConfiguration configuration)
		{
			configuration.File.Storage = new IsolatedStorageStorage();
		}
Ejemplo n.º 54
0
 private IConfiguration LegacyConfigFor(IEmbeddedConfiguration configuration)
 {
     var configImpl = (EmbeddedConfigurationImpl) configuration;
     return configImpl.Legacy();
 }
		private IEmbeddedObjectContainer OpenContainer(IEmbeddedConfiguration config)
		{
			if (config == null)
			{
				config = NewConfiguration();
			}
			config.Common.ReflectWith(Platform4.ReflectorForType(typeof(CommitTimestampDefragmentTestCase.Item
				)));
			return config == null ? Db4oEmbedded.OpenFile(SourceFile()) : Db4oEmbedded.OpenFile
				(config, SourceFile());
		}
			public virtual void Prepare(IEmbeddedConfiguration configuration)
			{
				_prepareCount++;
			}
 public void Prepare(IEmbeddedConfiguration configuration)
 {
     _config = configuration;
     _prepareCount++;
 }
Ejemplo n.º 58
0
 public static void AssertDataClassKnown(string databaseFileName, IEmbeddedConfiguration
     config, bool expected)
 {
     IObjectContainer db = Db4oEmbedded.OpenFile(config, databaseFileName);
     try
     {
         var storedClass = db.Ext().StoredClass(typeof (Data
             ));
         if (expected)
         {
             Assert.IsNotNull(storedClass);
         }
         else
         {
             Assert.IsNull(storedClass);
         }
     }
     finally
     {
         db.Close();
     }
 }
			public _ICodeBlock_14(IEmbeddedConfiguration embeddedConfiguration)
			{
				this.embeddedConfiguration = embeddedConfiguration;
			}
Ejemplo n.º 60
0
		/// <param name="config">
		/// The db4o
		/// <see cref="Db4objects.Db4o.Config.IEmbeddedConfiguration">IEmbeddedConfiguration</see>
		/// to be applied
		/// during the defragment process.
		/// </param>
		/// <since>7.9</since>
		public virtual void Db4oConfig(IEmbeddedConfiguration config)
		{
			_config = ((EmbeddedConfigurationImpl)config).Legacy();
		}