Beispiel #1
0
		public void SetUpTest()
		{
			m_db = new KeyValueDatabase(filename => new DatabaseFileReader(filename), filename=> new DatabaseFileWriter(filename),
				filename => new MemoryCacheProvider(filename));
			
			m_db.Start();
		}
Beispiel #2
0
		public void TearDownTest()
		{
			m_db.Stop();
			m_db = null;

			File.Delete("test.dbfile");
		}
Beispiel #3
0
        public void TearDownTest()
        {
            m_db.Stop();
            m_db = null;

            File.Delete("test.dbfile");
        }
Beispiel #4
0
        public void SetUpTest()
        {
            m_db = new KeyValueDatabase(filename => new DatabaseFileReader(filename), filename=> new DatabaseFileWriter(filename),
                filename => new MemoryCacheProvider(filename));

            m_db.Start();
        }
 public void Restart()
 {
     Database.Stop();
     Database = new KeyValueDatabase(filename => new DatabaseFileReader(filename), filename => new DatabaseFileWriter(filename),
                                                                         filename => new MemoryCacheProvider(filename));
     Database.FileName = SpecsDbFile;
     Database.Start();
 }
Beispiel #6
0
 public void Restart()
 {
     Database.Stop();
     Database = new KeyValueDatabase(filename => new DatabaseFileReader(filename), filename => new DatabaseFileWriter(filename),
                                     filename => new MemoryCacheProvider(filename));
     Database.FileName = SpecsDbFile;
     Database.Start();
 }
        public DatabaseContext()
        {
            File.Delete(SpecsDbFile);

            Database = new KeyValueDatabase(filename => new DatabaseFileReader(filename), filename => new DatabaseFileWriter(filename),
                                              filename => new MemoryCacheProvider(filename));
            Database.FileName = SpecsDbFile;
            Database.Start();
        }
Beispiel #8
0
        public DatabaseContext()
        {
            File.Delete(SpecsDbFile);

            Database = new KeyValueDatabase(filename => new DatabaseFileReader(filename), filename => new DatabaseFileWriter(filename),
                                            filename => new MemoryCacheProvider(filename));
            Database.FileName = SpecsDbFile;
            Database.Start();
        }
Beispiel #9
0
        public Server(KeyValueDatabase db, params string[] addresses)
        {
            m_db        = db;
            m_addresses = addresses;
            m_log       = LogManager.GetLogger(this.GetType());

            if (!m_addresses.Any())
            {
                throw new ArgumentException("You must provide at least one address to listen too");
            }
        }
        public async Task <JObject> GetDbValue(string key)
        {
            string type = string.Empty;
            JToken id;

            try
            {
                object value;

                if (key.StartsWith(GlobalConfig.StatePrefix))
                {
                    type = "State";
                    id   = key.Substring(GlobalConfig.StatePrefix.Length, key.Length - GlobalConfig.StatePrefix.Length);
                    var valueBytes = KeyValueDatabase.GetAsync(type, key).Result;
                    value = StateValue.Create(valueBytes);
                }
                else if (key.StartsWith(GlobalConfig.TransactionReceiptPrefix))
                {
                    type = "TransactionReceipt";
                    id   = key.Substring(GlobalConfig.TransactionReceiptPrefix.Length, key.Length - GlobalConfig.TransactionReceiptPrefix.Length);
                    var valueBytes = KeyValueDatabase.GetAsync(type, key).Result;
                    value = valueBytes?.Deserialize <TransactionReceipt>();
                }
                else
                {
                    var keyObj = Key.Parser.ParseFrom(ByteArrayHelpers.FromHexString(key));
                    type = keyObj.Type;
                    id   = JObject.Parse(keyObj.ToString());
                    var valueBytes = KeyValueDatabase.GetAsync(type, key).Result;
                    var obj        = this.GetInstance(type);
                    obj.MergeFrom(valueBytes);
                    value = obj;
                }

                var response = new JObject
                {
                    ["Type"]  = type,
                    ["Id"]    = id,
                    ["Value"] = JObject.Parse(value.ToString())
                };

                return(JObject.FromObject(response));
            }
            catch (Exception e)
            {
                var response = new JObject
                {
                    ["Type"]  = type,
                    ["Value"] = e.Message
                };
                return(JObject.FromObject(response));
            }
        }
Beispiel #11
0
        public void Stop()
        {
            m_log.InfoFormat("Stopping SharpDB...");

            m_server.Stop();
            m_task.Wait();

            m_db.Stop();
            m_context.Dispose();

            m_server  = null;
            m_db      = null;
            m_context = null;
        }
Beispiel #12
0
        public bool Stop(HostControl hostControl)
#endif
        {
            m_log.InfoFormat("Stopping SharpDB...");

            m_server.Stop();
            m_task.Wait();

            m_db.Stop();

            m_server = null;
            m_db     = null;
            return(true);
        }
Beispiel #13
0
        public void Start()
        {
            m_log = LogManager.GetLogger(this.GetType());

            m_log.InfoFormat("Starting SharpDB...");
            m_log.InfoFormat("Database Name: {0}", m_name);

            m_db = new KeyValueDatabase(filename => new DatabaseFileReader(filename), filename => new DatabaseFileWriter(filename),
                                        filename => new MemoryCacheProvider(filename));
            m_db.FileName = m_name + ".sdb";
            m_db.Start();

            m_context = NetMQContext.Create();

            m_server = new Network.Server(m_context, m_db, string.Format("tcp://*:{0}", m_port));

            m_task = Task.Factory.StartNew(m_server.Start);
        }
Beispiel #14
0
        public bool Start(HostControl hostControl)
#endif
        {
            m_log = LogManager.GetLogger(this.GetType());

            m_log.InfoFormat("Starting SharpDB...");
            m_log.InfoFormat("Database Name: {0}", m_name);

            m_db = new KeyValueDatabase(filename => new DatabaseFileReader(filename), filename => new DatabaseFileWriter(filename),
                                        filename => new MemoryCacheProvider(filename));
            m_db.FileName = m_name + ".sdb";
            m_db.Start();

            m_server = new Network.Server(m_db, string.Format("tcp://*:{0}", m_port));

            m_task = Task.Factory.StartNew(m_server.Start);
            return(true);
        }