public static StorageEngineServer CreateServer(IStorageEngine engine, int port = 7182) { TcpServer server = new TcpServer(port); StorageEngineServer engineServer = new StorageEngineServer(engine, server); return engineServer; }
public NonNativeObjectWriter(IObjectWriter objectWriter, IStorageEngine storageEngine) { _objectWriter = objectWriter; _session = storageEngine.GetSession(); _objectReader = storageEngine.GetObjectReader(); _storageEngine = storageEngine; }
protected override void Clear() { base.Clear(); if (_transaction != null) _transaction.Clear(); _storageEngine = null; }
internal IndexManager(IStorageEngine storageEngine, ClassInfo classInfo) { _storageEngine = storageEngine; _classInfo = classInfo; _reflectionService = DependencyContainer.Resolve<IReflectionService>(); }
public InstanceBuilder(IStorageEngine engine) { this.triggerManager = OdbConfiguration.GetCoreProvider().GetLocalTriggerManager(engine); this.classIntrospector = OdbConfiguration.GetCoreProvider().GetClassIntrospector(); this.classPool = OdbConfiguration.GetCoreProvider().GetClassPool(); this.engine = engine; }
public static void SetUp(IStorageEngine engine) { if (engine == null) { throw new ArgumentNullException("engine"); } storageImpl = engine; }
public LazyOdbBtreePersister(IStorageEngine engine) { _oids = new OdbHashMap<OID, object>(); _modifiedObjectOids = new OdbHashMap<object, int>(); _modifiedObjectOidList = new OdbList<OID>(500); _engine = engine; _engine.AddCommitListener(this); }
/// <summary> /// Constructs a new JsonNetObjectSerializationProvider. /// </summary> /// <param name="engine">The engine to de/serialize dependent sub-objects.</param> public JsonNetObjectSerializationProvider(IStorageEngine engine = null) { _guidResolver = new ThreadLocal<SerializedItemsToGuidResolver>(() => new SerializedItemsToGuidResolver(engine)); _serializer = new ThreadLocal<JsonSerializer>(() => JsonSerializer.Create(new JsonSerializerSettings() {ContractResolver = _guidResolver.Value })); }
public DocumentStore(string rootPath) { statistics = new Statistics(); storageEngine = new StorageEngine(rootPath, statistics); encoders = new EncoderSelector(); encoders.Add(new JsonDocumentEncoder(statistics)); encoders.Add(new BlobEncoder()); }
/// <summary> /// InitializeWithEngine initializes ReactiveUI.Serialization with a /// storage engine to load and save objects. /// </summary> /// <param name="engine">The engine to use.</param> public static void InitializeWithEngine(IStorageEngine engine) { var extEngine = engine as IExtendedStorageEngine; if (extEngine != null) { Engine = extEngine; } else { Engine = new NaiveExtendedEngine(engine); } }
//Used when data exists private ObjectStore( Roots roots, StateMaps stateMaps, Serializers serializers, IStorageEngine storageEngine) { Roots = roots; StorageEngine = storageEngine; _persister = new Persister(StorageEngine, roots, serializers, stateMaps); }
/// <summary> /// Returns a multi class query executor (polymorphic = true) /// </summary> public IQueryExecutor GetQueryExecutor(IQuery query, IStorageEngine engine) { if (query is ValuesCriteriaQuery) return new MultiClassGenericQueryExecutor(new ValuesCriteriaQueryExecutor(query, engine)); if (query is SodaQuery) return new MultiClassGenericQueryExecutor(new CriteriaQueryExecutor(query, engine)); throw new OdbRuntimeException(NDatabaseError.QueryTypeNotImplemented.AddParameter(query.GetType().FullName)); }
public QueryResultAction(IQuery query, bool inMemory, IStorageEngine storageEngine, bool returnObjects, IInstanceBuilder instanceBuilder) { _query = (IInternalQuery)query; _inMemory = inMemory; _storageEngine = storageEngine; _returnObjects = returnObjects; _queryHasOrderBy = _query.HasOrderBy(); _instanceBuilder = instanceBuilder; }
public StorageTree( IStorageEngine storageEngine, string name, IStorageTreeConfiguration treeConfiguration) { this.storageEngine = storageEngine; Name = name; FilePath = Path.Combine(storageEngine.RootFilePath, Name); }
public static ITable <TKey, TRecord> OpenXTable <TKey, TRecord>(this IStorageEngine engine) { //默认TRecord为byte[]类型,需要强制转换为强类型 if (engine[typeof(TRecord).Name] != null) { engine[typeof(TRecord).Name].RecordType = typeof(TRecord); } return(engine.OpenXTable <TKey, TRecord>(typeof(TRecord).Name)); }
public StorageEngineServer(IStorageEngine storageEngine, TcpServer tcpServer) { if (storageEngine == null) throw new ArgumentNullException("storageEngine"); if (tcpServer == null) throw new ArgumentNullException("tcpServer"); StorageEngine = storageEngine; TcpServer = tcpServer; CommandsIIndexExecute = new Func<XTablePortable, ICommand, ICommand>[CommandCode.MAX]; CommandsIIndexExecute[CommandCode.REPLACE] = Replace; CommandsIIndexExecute[CommandCode.DELETE] = Delete; CommandsIIndexExecute[CommandCode.DELETE_RANGE] = DeleteRange; CommandsIIndexExecute[CommandCode.INSERT_OR_IGNORE] = InsertOrIgnore; CommandsIIndexExecute[CommandCode.CLEAR] = Clear; CommandsIIndexExecute[CommandCode.TRY_GET] = TryGet; CommandsIIndexExecute[CommandCode.FORWARD] = Forward; CommandsIIndexExecute[CommandCode.BACKWARD] = Backward; CommandsIIndexExecute[CommandCode.FIND_NEXT] = FindNext; CommandsIIndexExecute[CommandCode.FIND_AFTER] = FindAfter; CommandsIIndexExecute[CommandCode.FIND_PREV] = FindPrev; CommandsIIndexExecute[CommandCode.FIND_BEFORE] = FindBefore; CommandsIIndexExecute[CommandCode.FIRST_ROW] = FirstRow; CommandsIIndexExecute[CommandCode.LAST_ROW] = LastRow; CommandsIIndexExecute[CommandCode.COUNT] = Count; CommandsIIndexExecute[CommandCode.XTABLE_DESCRIPTOR_GET] = GetXIndexDescriptor; CommandsIIndexExecute[CommandCode.XTABLE_DESCRIPTOR_SET] = SetXIndexDescriptor; CommandsStorageEngineExecute = new Func<ICommand, ICommand>[CommandCode.MAX]; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_COMMIT] = StorageEngineCommit; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_GET_ENUMERATOR] = StorageEngineGetEnumerator; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_RENAME] = StorageEngineRename; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_EXISTS] = StorageEngineExist; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_FIND_BY_ID] = StorageEngineFindByID; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_FIND_BY_NAME] = StorageEngineFindByNameCommand; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_OPEN_XTABLE] = StorageEngineOpenXIndex; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_OPEN_XFILE] = StorageEngineOpenXFile; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_DELETE] = StorageEngineDelete; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_COUNT] = StorageEngineCount; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_GET_CACHE_SIZE] = StorageEngineGetCacheSize; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_SET_CACHE_SIZE] = StorageEngineSetCacheSize; CommandsStorageEngineExecute[CommandCode.HEAP_OBTAIN_NEW_HANDLE] = HeapObtainNewHandle; CommandsStorageEngineExecute[CommandCode.HEAP_RELEASE_HANDLE] = HeapReleaseHandle; CommandsStorageEngineExecute[CommandCode.HEAP_EXISTS_HANDLE] = HeapExistsHandle; CommandsStorageEngineExecute[CommandCode.HEAP_WRITE] = HeapWrite; CommandsStorageEngineExecute[CommandCode.HEAP_READ] = HeapRead; CommandsStorageEngineExecute[CommandCode.HEAP_COMMIT] = HeapCommit; CommandsStorageEngineExecute[CommandCode.HEAP_CLOSE] = HeapClose; CommandsStorageEngineExecute[CommandCode.HEAP_GET_TAG] = HeapGetTag; CommandsStorageEngineExecute[CommandCode.HEAP_SET_TAG] = HeapSetTag; CommandsStorageEngineExecute[CommandCode.HEAP_DATA_SIZE] = HeapDataSize; CommandsStorageEngineExecute[CommandCode.HEAP_SIZE] = HeapSize; }
/// review url 这个参数名称不太合适吧, /// <summary> /// todo the database should be injected here /// </summary> /// <param name="databaseName">The name of entity's database</param> /// <param name="storageEngine">Payload's storageEngine</param> /// <param name="databaseUrl">Url of entity's database</param> public void Init(string mongoHost, string mongoDatabase, string mongoCollection, IStorageEngine storageEngine = null) {//"mongodb://127.0.0.1:27017" myStorageEngine = storageEngine; client = new MongoClient(mongoHost); database = client.GetDatabase(mongoDatabase); collection = database.GetCollection <JDBCEntity>(mongoCollection); //注册基本类 RegisterClassMap <Experiment>(); RegisterClassMap <Signal>(); }
private void WriteDatabaseId(IStorageEngine storageEngine, long creationDate) { var databaseId = GetDatabaseId(creationDate); FileSystemInterface.WriteLong(databaseId.GetIds()[0], false); //database id 1/4 FileSystemInterface.WriteLong(databaseId.GetIds()[1], false); //database id 2/4 FileSystemInterface.WriteLong(databaseId.GetIds()[2], false); //database id 3/4 FileSystemInterface.WriteLong(databaseId.GetIds()[3], false); //database id 4/4 storageEngine.SetDatabaseId(databaseId); }
/// <summary> /// Constructs a new JsonNetObjectSerializationProvider. /// </summary> /// <param name="engine">The engine to de/serialize dependent sub-objects.</param> public JsonNetObjectSerializationProvider(IStorageEngine engine = null) { _guidResolver = new ThreadLocal <SerializedItemsToGuidResolver>(() => new SerializedItemsToGuidResolver(engine)); _serializer = new ThreadLocal <JsonSerializer>(() => JsonSerializer.Create(new JsonSerializerSettings() { ContractResolver = _guidResolver.Value })); }
//Used when data does not already exists private ObjectStore(IStorageEngine storageEngine) { StorageEngine = storageEngine; var roots = new Roots(); var serializers = new Serializers(new SerializerFactory()); var stateMaps = new StateMaps(serializers); Roots = roots; _persister = new Persister(StorageEngine, roots, serializers, stateMaps); }
private void WriteDatabaseId(IStorageEngine storageEngine, long creationDate) { var databaseId = GetDatabaseId(creationDate); FileSystemInterface.WriteLong(databaseId.GetIds()[0], false); //database id 1/4 FileSystemInterface.WriteLong(databaseId.GetIds()[1], false); //database id 2/4 FileSystemInterface.WriteLong(databaseId.GetIds()[2], false); //database id 3/4 FileSystemInterface.WriteLong(databaseId.GetIds()[3], false); //database id 4/4 storageEngine.SetDatabaseId(databaseId); }
public Storage(string fileName) { if (string.IsNullOrEmpty(fileName)) { throw new ArgumentException("fileName"); } this.FileName = fileName; this.storageEngine = STSdb.FromFile(this.FileName); }
public IEnumerable <KeyValuePair <string, string> > GetAll(string databaseFile, string tableName) { using (IStorageEngine engine = STSdb.FromFile(databaseFile)) { var table = engine.OpenXTable <string, string>(tableName); foreach (var row in table) { yield return(row); } } }
public ObjectWriter(IStorageEngine engine) { _storageEngine = engine; _nativeHeaderBlockSizeByte = ByteArrayConverter.IntToByteArray(NativeHeaderBlockSize); _session = engine.GetSession(); _nonNativeObjectWriter = new NonNativeObjectWriter(this, _storageEngine); FileSystemProcessor = new FileSystemWriter(); FileSystemProcessor.BuildFileSystemInterface(engine, _session); }
public Persister( IStorageEngine storageEngine, Roots roots, Serializers.Serializers serializers, StateMaps stateMaps) { _storageEngine = storageEngine; _roots = roots; _serializers = serializers; _stateMaps = stateMaps; _maxObjectId = serializers.NextObjectId - 1; }
/// <summary> /// 根据条件分页加载数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="PageIndex"></param> /// <param name="PageSize"></param> /// <param name="func"></param> /// <param name="MarkId"></param> /// <returns></returns> public static PageData <T> LoadByPage <T>(int PageIndex, int PageSize, Func <T, bool> func = null, string MarkId = "") where T : EntityBase { PageData <T> pagedata = new PageData <T>(); pagedata.PageIndex = PageIndex; pagedata.PageSize = PageSize; IStorageEngine engine = GetStorageEngine <T>(MarkId); //var table = engine.OpenXTable<int, string>(typeof(T).Name + MarkId); var table = engine.GetTable <T>(MarkId); //engine.OpenXTable<int, string>(typeof(T).Name + MarkId); if (func != null) { pagedata.TotalCount = (int)table.Where(o => func(o.Value.JsParse <T>())).Count(); } else { pagedata.TotalCount = (int)table.Count(); } if (pagedata.TotalCount > 0) { if (pagedata.PageSize <= 0) { pagedata.PageSize = 1; } pagedata.TotalPageCount = (int)Math.Ceiling((double)(pagedata.TotalCount / pagedata.PageSize)); if (pagedata.PageIndex > pagedata.TotalPageCount) { pagedata.PageIndex = pagedata.TotalPageCount; } else if (pagedata.PageIndex < 0) { pagedata.PageIndex = 1; } if (func != null) { pagedata.QueryData = table.Where(o => func(o.Value.JsParse <T>())).Skip((pagedata.PageIndex - 1) * pagedata.PageSize).Take(pagedata.PageSize).Select(o => o.Value.JsParse <T>()).ToList(); } else { pagedata.QueryData = table.Skip((pagedata.PageIndex - 1) * pagedata.PageSize).Take(pagedata.PageSize).Select(o => o.Value.JsParse <T>()).ToList(); } } else { pagedata.TotalCount = 0; pagedata.TotalPageCount = 0; pagedata.PageIndex = 0; pagedata.QueryData = null; } return(pagedata); }
public void Put(string databaseFile, string tableName, string key, string value) { using (IStorageEngine engine = STSdb.FromFile(databaseFile)) { var table = engine.OpenXTable <string, string>(tableName); table[key] = value; engine.Commit(); } Log(databaseFile, tableName); }
/// <summary> /// 根据ID加载数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Id"></param> /// <param name="MarkId"></param> /// <returns></returns> public static T LoadById <T>(string Id, string MarkId = "") where T : EntityBase { IStorageEngine engine = GetStorageEngine <T>(MarkId); //var table = engine.OpenXTable<int, string>(typeof(T).Name + MarkId); var table = engine.GetTable <T>(MarkId); //engine.OpenXTable<int, string>(typeof(T).Name + MarkId); var objexist = table.FirstOrDefault(o => o.Value.JsParse <T>().ID == Id); if (!String.IsNullOrWhiteSpace(objexist.Value)) { return(objexist.Value.JsParse <T>()); } return(null); }
/// <summary> /// 删除数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value"></param> /// <param name="MarkId"></param> public static void Delete <T>(this T value, string MarkId = "") where T : EntityBase { IStorageEngine engine = GetStorageEngine <T>(MarkId); //var table = engine.OpenXTable<int, string>(typeof(T).Name + MarkId); var table = engine.GetTable <T>(MarkId); //engine.OpenXTable<int, string>(typeof(T).Name + MarkId); //var objexist = table.TryGetOrDefault(value.Sequence, ""); //if (!String.IsNullOrWhiteSpace(objexist))//修改 //{ table.Delete(value.Sequence); //} engine.Commit(); }
/// <summary> /// InitializeWithEngine initializes ReactiveUI.Serialization with a /// storage engine to load and save objects. /// </summary> /// <param name="engine">The engine to use.</param> public static void InitializeWithEngine(IStorageEngine engine) { var extEngine = engine as IExtendedStorageEngine; if (extEngine != null) { Engine = extEngine; } else { Engine = new NaiveExtendedEngine(engine); } }
/// <summary> /// Create server /// </summary> private static void Example4() { using (IStorageEngine engine = STSdb.FromFile("test.stsdb4")) { var server = STSdb.CreateServer(engine, 7182); server.Start(); //server is ready for connections server.Stop(); } }
//public IStorageEngine StorageEngine { get; } //Used when data does not already exists private ObjectStore2(IStorageEngine storageEngine) { var serializerFactories = new SerializerFactories(SerializerFactories.DefaultFactories); var mapAndSerializers = new MapAndSerializers(serializerFactories); var roots = new Roots2(); Roots = roots; mapAndSerializers.GetOrCreateSerializerFor(roots); _persister = new Persister2(storageEngine, mapAndSerializers); }
public void Delete(string databaseFile, string tableName, string key) { using (IStorageEngine engine = STSdb.FromFile(databaseFile)) { var table = engine.OpenXTable <string, string>(tableName); table.Delete(key); engine.Commit(); } Log(databaseFile, tableName); }
public TransactionStreamSubscriber(Uri endpoint, IStorageEngine store, ILogger logger) { this.endpoint = new UriBuilder(endpoint); if (endpoint.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase)) this.endpoint.Scheme = "wss"; else this.endpoint.Scheme = "ws"; this.endpoint.Path = this.endpoint.Path.TrimEnd('/') + "/stream"; this.store = store; this.logger = logger; }
public StorageEngineServer(IStorageEngine storageEngine, TcpServer tcpServer) { if (storageEngine == null) { throw new ArgumentNullException("storageEngine"); } if (tcpServer == null) { throw new ArgumentNullException("tcpServer"); } StorageEngine = storageEngine; TcpServer = tcpServer; }
private void Log(string databaseFile, string tableName) { using (IStorageEngine engine = STSdb.FromFile(databaseFile)) { var table = engine.OpenXTable <string, string>(tableName); log.Info(string.Format("Rows in {0}.{1}:", databaseFile, tableName)); foreach (var row in table) { log.Info(string.Format("{0} => {1}", row.Key, row.Value)); } } }
public static ObjectStore2 Load(IStorageEngine storageEngine, params object[] ephemeralInstances) { var(roots, mapAndSerializers) = Deserializer2.Load( storageEngine, new Ephemerals(ephemeralInstances), new SerializerFactories(SerializerFactories.DefaultFactories) ); return(new ObjectStore2( roots, mapAndSerializers, storageEngine )); }
internal static ITable CreateTable(this IStorageEngine engine, string name, Type t) { var type = t; if (!typeof(DataModel).IsAssignableFrom(t)) { throw new InvalidModelException(); } var columns = type.GetProperties().Select(x => x.Name.ToNamePreservation()) .ToArray(); return(engine.CreateTable(name, columns)); }
public async Task Run(CancellationToken cancel) { IServiceScopeFactory scopeFactory = services.GetService <IServiceScopeFactory>(); ILogger logger = services.GetRequiredService <ILogger>(); while (!cancel.IsCancellationRequested) { using (IServiceScope scope = scopeFactory.CreateScope()) { IAnchorRecorder anchorRecorder = scope.ServiceProvider.GetService <IAnchorRecorder>(); IAnchorState anchorState = scope.ServiceProvider.GetService <IAnchorState>(); if (anchorRecorder == null || anchorState == null) { logger.LogInformation("Anchoring disabled"); return; } IStorageEngine storageEngine = scope.ServiceProvider.GetRequiredService <IStorageEngine>(); try { await storageEngine.Initialize(); await anchorState.Initialize(); AnchorBuilder anchorBuilder = new AnchorBuilder(storageEngine, anchorRecorder, anchorState); while (!cancel.IsCancellationRequested) { LedgerAnchor anchor = await anchorBuilder.RecordAnchor(); if (anchor != null) { logger.LogInformation($"Recorded an anchor for {anchor.TransactionCount} transactions: {anchor.FullStoreHash.ToString()}"); } await Task.Delay(TimeSpan.FromSeconds(10), cancel); } } catch (Exception exception) { logger.LogError($"Error in the anchor worker:\r\n{exception}"); // Wait longer if an error occurred await Task.Delay(TimeSpan.FromMinutes(1), cancel); } } } }
/// <summary> /// Returns a multi class query executor (polymorphic = true) /// </summary> public IQueryExecutor GetQueryExecutor(IQuery query, IStorageEngine engine) { if (query is ValuesCriteriaQuery) { return(new MultiClassGenericQueryExecutor(new ValuesCriteriaQueryExecutor(query, engine))); } if (query is SodaQuery) { return(new MultiClassGenericQueryExecutor(new CriteriaQueryExecutor(query, engine))); } throw new OdbRuntimeException(NDatabaseError.QueryTypeNotImplemented.AddParameter(query.GetType().FullName)); }
public AzureDocumentDbStorageEngineHealthTests() { client = DocumentClientFactory.Create(DatabaseName); storageEngine = StorageEngineFactory.Create(DatabaseName, o => { o.CollectionName = CollectionName; o.DefaultTimeToLiveSeconds = -1; o.DocumentTimeToLiveSeconds = 10; }) .Result; storageEngine.Initialise().Wait(); }
public void Index() { string fileFlag = GetRootFolder() + "\\RawData\\Baike_data.db4"; using (IStorageEngine engine = STSdb.FromFile(fileFlag)) { // 插入数据 ITable <string, Page> table = engine.OpenXTable <string, Page>("WebPage"); foreach (var kv in table) { Page page = (Page)kv.Value; Console.WriteLine(kv.Key + " " + page.Url); } } }
private void InsertEntity(IEnumerable <KnowledgeEntity> ces) { string dataPath = "Baike\\Baike_question.db4"; using (IStorageEngine engine = STSdb.FromFile(dataPath)) { ITable <long, KnowledgeEntity> table = engine.OpenXTable <long, KnowledgeEntity>("WebPage"); foreach (var knowledgeEntity in ces) { table[knowledgeEntity.Id] = knowledgeEntity; InsertIndex(knowledgeEntity.Id, knowledgeEntity.QuestionDesc); } engine.Commit(); } }
/// <summary> /// 保存索引数据 /// </summary> /// <param name="indexDocs"></param> /// <param name="folder"></param> /// <param name="isForce"></param> public void SaveIndex(ref List <TextIndex> indexDocs, string folder, bool isForce = false) { // 如果有多余的,需要存放到数据库 lock (IndexObj) { try { if (indexDocs.Count > 2000 || isForce) { if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } string fileFlag = folder + "\\Iveely_Search_Engine_TextIndex.db4"; using (IStorageEngine engine = STSdb.FromFile(fileFlag)) { // 插入数据 ITable <string, List <Iveely.STSdb4.Data.Slots <string, double> > > table = engine.OpenXTable <string, List <Iveely.STSdb4.Data.Slots <string, double> > >("WebPage"); for (int i = 0; i < indexDocs.Count; i++) { // 如果包含则追加 List <Iveely.STSdb4.Data.Slots <string, double> > list = table.Find(indexDocs[i].Keyword); if (list != null && list.Count > 0) { Iveely.STSdb4.Data.Slots <string, double> slot = new Slots <string, double>(indexDocs[i].Url, indexDocs[i].Weight); list.Add(slot); } // 否则新增 else { list = new List <Slots <string, double> >(); Iveely.STSdb4.Data.Slots <string, double> slot = new Slots <string, double>(indexDocs[i].Url, indexDocs[i].Weight); list.Add(slot); table[indexDocs[i].Keyword] = list; } } engine.Commit(); } indexDocs.Clear(); } } catch (Exception exception) { Console.WriteLine(exception); indexDocs.Clear(); } } }
public StorageEngineServer(IStorageEngine storageEngine, TcpServer tcpServer) { if (storageEngine == null) { throw new ArgumentNullException("storageEngine"); } if (tcpServer == null) { throw new ArgumentNullException("tcpServer"); } StorageEngine = storageEngine; TcpServer = tcpServer; CommandsIIndexExecute = new Func <XTable, ICommand, ICommand> [CommandCode.MAX]; CommandsIIndexExecute[CommandCode.REPLACE] = Replace; CommandsIIndexExecute[CommandCode.DELETE] = Delete; CommandsIIndexExecute[CommandCode.DELETE_RANGE] = DeleteRange; CommandsIIndexExecute[CommandCode.INSERT_OR_IGNORE] = InsertOrIgnore; CommandsIIndexExecute[CommandCode.CLEAR] = Clear; CommandsIIndexExecute[CommandCode.TRY_GET] = TryGet; CommandsIIndexExecute[CommandCode.FORWARD] = Forward; CommandsIIndexExecute[CommandCode.BACKWARD] = Backward; CommandsIIndexExecute[CommandCode.FIND_NEXT] = FindNext; CommandsIIndexExecute[CommandCode.FIND_AFTER] = FindAfter; CommandsIIndexExecute[CommandCode.FIND_PREV] = FindPrev; CommandsIIndexExecute[CommandCode.FIND_BEFORE] = FindBefore; CommandsIIndexExecute[CommandCode.FIRST_ROW] = FirstRow; CommandsIIndexExecute[CommandCode.LAST_ROW] = LastRow; CommandsIIndexExecute[CommandCode.COUNT] = Count; CommandsIIndexExecute[CommandCode.XTABLE_DESCRIPTOR_GET] = GetXIndexDescriptor; CommandsIIndexExecute[CommandCode.XTABLE_DESCRIPTOR_SET] = SetXIndexDescriptor; CommandsStorageEngineExecute = new Func <ICommand, ICommand> [CommandCode.MAX]; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_COMMIT] = StorageEngineCommit; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_GET_ENUMERATOR] = StorageEngineGetEnumerator; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_RENAME] = StorageEngineRename; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_EXISTS] = StorageEngineExist; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_FIND_BY_ID] = StorageEngineFindByID; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_FIND_BY_NAME] = StorageEngineFindByNameCommand; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_OPEN_XTABLE] = StorageEngineOpenXIndex; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_OPEN_XFILE] = StorageEngineOpenXFile; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_DELETE] = StorageEngineDelete; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_COUNT] = StorageEngineCount; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_DATABASE_SIZE] = StorageEngineDatabaseSize; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_GET_CACHE_SIZE] = StorageEngineGetCacheSize; CommandsStorageEngineExecute[CommandCode.STORAGE_ENGINE_SET_CACHE_SIZE] = StorageEngineSetCacheSize; }
/// <summary> /// 获取数据所在数据库的索引,返回-1标识没找到。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value"></param> /// <param name="MarkId"></param> /// <returns></returns> public static int GetIndex <T>(this T value, string MarkId = "") where T : EntityBase { int iIndex = -1; IStorageEngine engine = GetStorageEngine <T>(MarkId); //var table = engine.OpenXTable<int, string>(typeof(T).Name + MarkId); var table = engine.GetTable <T>(MarkId); //engine.OpenXTable<int, string>(typeof(T).Name + MarkId); //var data = table.TryGetOrDefault(value.Sequence, ""); //if (!String.IsNullOrWhiteSpace(data)) //{ iIndex = table.Select((o, index) => o.Key == value.Sequence ? index : -1).FirstOrDefault(o => o != -1); //} return(iIndex); }
protected override void OnStart(string[] args) { string FileName = ConfigurationSettings.AppSettings["FileName"]; int port = int.Parse(ConfigurationSettings.AppSettings["Port"]); int boundedCapacity = int.Parse(ConfigurationSettings.AppSettings["BoundedCapacity"]); Service = this; StorageEngine = STSdb.FromFile(FileName); TcpServer = new TcpServer(port); Program.StorageEngineServer = new StorageEngineServer(StorageEngine, TcpServer); Program.StorageEngineServer.Start(); Form = new MainForm(); Application.Run(Form); Program.StorageEngineServer.Stop(); StorageEngine.Close(); }
public MetricsModule(IStorageEngine storageEngine) : base("/metrics") { _storageEngine = storageEngine; Get["/list"] = parameters => { var metrics = _storageEngine.GetKnownMetrics(); return Response.AsJson(metrics.ToArray()); }; Get["/query"] = parameters => { DateTime start, end; DateTime.TryParse(Request.Query.start, out start); if (!DateTime.TryParse(Request.Query.end, out end)) end = DateTime.MaxValue; string rawMetrics = Convert.ToString(Request.Query.metric.Value); var metrics = new Metric[0]; if (rawMetrics != null) { var splitRawMetrics = rawMetrics.Split(','); metrics = splitRawMetrics.Select(Metric.Create).ToArray(); } var query = new Query { StartDate = start, EndDate = end, Metrics = metrics }; var results = _storageEngine.ExecuteQuery(query); return Response.AsJson(results.ToArray()); }; }
public OpenchainController(IStorageEngine store, ILogger logger) { this.store = store; this.logger = logger; }
public LocalSession(IStorageEngine engine) : base(GetSessionId(), engine.GetBaseIdentification().Id) { _storageEngine = engine; }
public AnchorBuilder(IStorageEngine storageEngine, IAnchorRecorder anchorRecorder, IAnchorState anchorState) { this.storageEngine = storageEngine; this.anchorRecorder = anchorRecorder; this.anchorState = anchorState; }
public SerializableListConverter(IStorageEngine engine = null) { _engine = engine ?? RxStorage.Engine; }
public TransactionValidator(IStorageEngine store, IMutationValidator validator, string rootUrl) { this.store = store; this.validator = validator; this.ledgerId = new ByteString(Encoding.UTF8.GetBytes(rootUrl)); }
/// <summary> /// Configures the services. /// </summary> public async void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory, IConfiguration configuration, IStorageEngine store) { app.UseCors(builder => builder.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin()); app.UseIISPlatformHandler(); app.Map("/stream", managedWebSocketsApp => { if (bool.Parse(configuration["enable_transaction_stream"])) { managedWebSocketsApp.UseWebSockets(new WebSocketOptions() { ReplaceFeature = true }); managedWebSocketsApp.Use(next => new TransactionStreamMiddleware(next).Invoke); } }); // Add MVC to the request pipeline. app.UseMvc(); await ConfigurationParser.InitializeLedgerStore(app.ApplicationServices); // Activate singletons TransactionStreamSubscriber subscriber = app.ApplicationServices.GetService<TransactionStreamSubscriber>(); if (subscriber != null) runningTasks.Add(subscriber.Subscribe(CancellationToken.None)); app.ApplicationServices.GetService<IMutationValidator>(); LedgerAnchorWorker anchorWorker = app.ApplicationServices.GetService<LedgerAnchorWorker>(); if (anchorWorker != null) runningTasks.Add(anchorWorker.Run(CancellationToken.None)); }
static void InitStorageEngine() { _storageEngine = new LegacyStorageEngine("Raspberry Aether"); }
public ExtensionContext(IWriteSession session, IAnchor anchor, IStorageEngine engine) { Session = session; Anchor = anchor; Engine = engine; }
public OpenchainController(IStorageEngine store, ILogger logger, TransactionValidator validator = null) { this.store = store; this.validator = validator; this.logger = logger; }
static ThreadStore() { storageImpl = new DummyStorageImplementation(); }
public SerializedItemsToGuidResolver(IStorageEngine engine = null) { _itemConverter = new SerializableItemConverter(engine); _listConverter = new SerializableListConverter(engine); }
public InstanceBuilder(IStorageEngine engine) { _triggerManager = engine.GetLocalTriggerManager(); _engine = engine; }