public EStore(object obj, ushort tpk, uint rfk, StoreDelegate sd, RestoreDelegate rd) { this.val = obj; this.typKey = tpk; this.refKey = rfk; this.storeDelegate = sd; this.restoreDelegate = rd; }
public void WriteEStore(object val, ushort typKey, StoreDelegate sd, RestoreDelegate rd) { if (val != null) { uint refKey = this.GetRefKey(val); this.WriteUInt32(refKey); if (refKey < uint.MaxValue) { if (this._objMask.Add(refKey)) { EStore item = new EStore(val, typKey, refKey, sd, rd); this._esQueue.Enqueue(item); } } else { sd(val, this); } } else { this.WriteUInt32(0); } }
public static void RegisterHandler <T>(TranslateDelegate <T> translate, string mark, int searchLength = -1, Encoding markEncoding = null, IEnumerable <string> searchPaths = null, CanHandleTypeDelegate canHandleType = null, LoadDelegate <T> load = null, StoreDelegate <T> store = null) where T : class { RegisterHandler( translate, MakeStandardCanHandleAsset(mark, searchLength, markEncoding, searchPaths), canHandleType, load, store); }
public void Import(string conn, string table, int start, int count, bool force, StoreDelegate store) { MySqlConnection importConn; try { importConn = new MySqlConnection(conn); importConn.Open(); } catch (MySqlException e) { m_log.ErrorFormat("[FSASSETS]: Can't connect to database: {0}", e.Message.ToString()); return; } int imported = 0; MySqlCommand cmd = importConn.CreateCommand(); string limit = String.Empty; if (count != -1) { limit = String.Format(" limit {0},{1}", start, count); } cmd.CommandText = String.Format("select * from {0}{1}", table, limit); MainConsole.Instance.Output("Querying database"); IDataReader reader = cmd.ExecuteReader(); MainConsole.Instance.Output("Reading data"); while (reader.Read()) { if ((imported % 100) == 0) { MainConsole.Instance.Output(String.Format("{0} assets imported so far", imported)); } AssetBase asset = new AssetBase(); AssetMetadata meta = new AssetMetadata(); meta.ID = reader["id"].ToString(); meta.FullID = new UUID(meta.ID); meta.Name = reader["name"].ToString(); meta.Description = reader["description"].ToString(); meta.Type = (sbyte)Convert.ToInt32(reader["assetType"]); meta.ContentType = SLUtil.SLAssetTypeToContentType(meta.Type); meta.CreationDate = Util.ToDateTime(Convert.ToInt32(reader["create_time"])); asset.Metadata = meta; asset.Data = (byte[])reader["data"]; store(asset, force); imported++; } reader.Close(); cmd.Dispose(); importConn.Close(); MainConsole.Instance.Output(String.Format("Import done, {0} assets imported", imported)); }
public static void RegisterHandler <T>(TranslateDelegate <T> translate, CanHandleAssetDelegate canHandleAsset, CanHandleTypeDelegate canHandleType = null, LoadDelegate <T> load = null, StoreDelegate <T> store = null) where T : class { Handlers.Add(new Handler <T>( translate, canHandleAsset, canHandleType ?? MakeStandardCanHandleType <T>(), load ?? MakeStandardLoad <T>(), store ?? MakeStandardStore <T>())); Enabled = Handlers.Count > 0; if (Enabled && TextAssetMessagePackHandler is null) { // don't create until needed to improve performance TextAssetMessagePackHandler = new TextAssetMessagePackHandler(); } }