public void GDID_1() { var gdid = new GDID(2, 5, 89078); Assert.AreEqual(2, gdid.Era); Assert.AreEqual(5, gdid.Authority); Assert.AreEqual(89078, gdid.Counter); }
public static void ASYNC_GetSchemaAndTestVariousTypes(ICRUDDataStore store) { var schema = store.GetSchemaAsync(new Query("CRUD.Types.Load")).Result; var row = new DynamicRow(schema); row["GDID"] = new GDID(0, 145); row["SCREEN_NAME"] = "User1"; row["STRING_NAME"] = "Some user 1"; row["CHAR_NAME"] = "Some user 2"; row["BOOL_CHAR"] = 'T'; row["BOOL_BOOL"] = true; row["AMOUNT"] = 145670.23m; row["DOB"] = new DateTime(1980,12,1); store.Insert( row ); var row2 = store.LoadOneRow(new Query("CRUD.Types.Load", new GDID(0, 145))); Assert.NotNull(row2); Assert.AreEqual(145, row2["GDID"]); Assert.AreEqual("User1", row2["Screen_Name"]); Assert.AreEqual("Some user 1", row2["String_Name"]); Assert.AreEqual("Some user 2", row2["Char_Name"]); Assert.AreEqual(true, row2["BOOL_Char"].AsBool()); Assert.AreEqual(true, row2["BOOL_BOOL"].AsBool()); Assert.AreEqual(145670.23m, row2["Amount"]); Assert.AreEqual(1980, row2["DOB"].AsDateTime().Year); }
public void GDID_7() { var gdid1 = new GDID(0, 0, 12321); var gdid2 = new GDID(0, 1, 0); Assert.AreEqual(-1, gdid1.CompareTo(gdid2)); Assert.IsFalse( gdid1.Equals(gdid2)); }
public void GDID_10() { var gdid = new GDID(1293, 3, 57); var s = gdid.ToString(); Console.WriteLine(s); Assert.AreEqual("1293:3:57", s); }
public void GDID_10() { var gdid = new GDID(1293, 3, 57); var s = gdid.ToString(); Console.WriteLine(s); Assert.AreEqual("GDID[1293:3458764513820540985(3,57)]", s); }
public static Charge MakeFake(GDID gdid) { var c = new Charge() { Amount = new Amount("usd", gdid.ID % 1897), Qty = (int)(gdid.ID % 29), G_Product = gdid, Notes = new String('n', (int)(gdid.ID % 137)) }; return c; }
public void GDID_9() { var gdid1 = new GDID(0, 3, 57); var gdid2 = new GDID(0, 3, 57); Assert.AreEqual(0, gdid1.CompareTo(gdid2)); Assert.IsTrue( gdid1.Equals(gdid2)); var gdid3 = new GDID(1, 3, 57); var gdid4 = new GDID(2, 3, 57); Assert.AreEqual(-1, gdid3.CompareTo(gdid4)); Assert.IsFalse( gdid3.Equals(gdid4)); }
public static PersonRow MakeFake(GDID parentGdid) { var age = (int)(parentGdid.ID % 99); var tags = NFX.ExternalRandomGenerator.Instance.NextRandomInteger > 0 ? new string[NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(1, 20)] : null; if (tags != null) for (int i = 0; i < tags.Length; i++) { tags[i] = ((char)('a' + i)) + "tag"; } var pers = new PersonRow() { ID = parentGdid, Name = NFX.Parsing.NaturalTextGenerator.Generate(30), Age = age, DOB = DateTime.Now.AddYears(-age), Sex = (parentGdid.ID % 2) == 0 ? Sex.Male : Sex.Female, Income = (parentGdid.ID % 79) * 1000, Debt = (parentGdid.ID % 11) * 1000, Rating = (parentGdid.ID % 2) == 0 ? (double?)null : 3.25, Notes = parentGdid.ToString(), Voter = (parentGdid.ID % 2) == 0 ? (bool?)null : true, MilitarySvc = (parentGdid.ID % 2) == 0 ? (bool?)null : false, Address1 = NFX.Parsing.NaturalTextGenerator.Generate(50), Address2 = (parentGdid.ID % 7) == 0 ? NFX.Parsing.NaturalTextGenerator.Generate(50) : null, City = (parentGdid.ID % 2) == 0 ? "Magdaburg" : "Odessa On Don", State = "OH", Zip = "44000" + (parentGdid.ID % 999), Phone1 = "(555) 222-3222", Phone2 = (parentGdid.ID % 3) == 0 ? "(555) 737-9789" : null, Email1 = "*****@*****.**", Email2 = (parentGdid.ID % 5) == 0 ? "*****@*****.**" : null, URL = (parentGdid.ID % 2) == 0 ? "https://ibm.com/products/" + parentGdid.ID : null, Tags = tags }; return pers; }
public override IEnumerable <SummaryRating> GetNodeSummaries(GDID gNode) { yield break; }
public CheckTRow(PilePointer ptr, GDID id, string address) { Ptr = ptr; Id = id; Address = address; }
public void DeleteSeveral_TwoTables_ByteArray(bool speed, int durationSec, int putMin, int putMax, int delFactor, int payloadSizeMin, int payloadSizeMax, bool isParallel) { using (var cache = new LocalCache()) using (var pile = new DefaultPile(cache)) { cache.Pile = pile; cache.PileAllocMode = speed ? AllocationMode.FavorSpeed : AllocationMode.ReuseSpace; cache.Start(); var startTime = DateTime.UtcNow; var tasks = new List <Task>(); for (var t = 0; t < (isParallel ? (System.Environment.ProcessorCount - 1) : 1); t++) { tasks.Add(Task.Factory.StartNew(() => { var list = new List <Tuple <int, GDID, int, byte, byte> >(); var tA = cache.GetOrCreateTable <GDID>("A"); var tB = cache.GetOrCreateTable <GDID>("B"); ulong k = 0; var wlc = 0; while (true) { if ((DateTime.UtcNow - startTime).TotalSeconds >= durationSec) { break; } var putCount = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(putMin, putMax); for (int i = 0; i < putCount; i++) { var payloadSize = NFX.ExternalRandomGenerator .Instance.NextScaledRandomInteger(payloadSizeMin, payloadSizeMax); var val = new byte[payloadSize]; val[0] = (byte)NFX.ExternalRandomGenerator.Instance.NextRandomInteger; val[payloadSize - 1] = (byte)NFX.ExternalRandomGenerator.Instance.NextRandomInteger; var tableId = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(0, 1); var table = tableId == 0 ? tA : tB; var key = new GDID((uint)Thread.CurrentThread.ManagedThreadId, k); table.Put(key, val); list.Add(new Tuple <int, GDID, int, byte, byte>(tableId, key, payloadSize - 1, val[0], val[payloadSize - 1])); k++; } int delCount = putCount / delFactor; for (int i = 0; i < delCount; i++) { while (true && list.Count > 0) { var idx = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(0, list.Count - 1); var element = list[idx]; var table = element.Item1 == 0 ? tA : tB; var key = element.Item2; var removed = table.Remove(key); list.RemoveAt(idx); if (removed) { break; } } } // get several random elements if (list.Count > 64 && NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(0, 100) > 98) { var toRead = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(8, 64); wlc++; if (wlc % 125 == 0) { Console.WriteLine("Thread {0} is reading {1} elements" .Args(Thread.CurrentThread.ManagedThreadId, toRead)); } for (var j = 0; j < toRead && list.Count > 0; j++) { var idx = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(0, list.Count - 1); var element = list[idx]; var table = element.Item1 == 0 ? tA : tB; var key = element.Item2; var buf = table.Get(key) as byte[]; if (buf == null) { list.RemoveAt(idx); continue; } Assert.AreEqual(element.Item4, buf[0]); Assert.AreEqual(element.Item5, buf[element.Item3]); } } if (list.Count == Int32.MaxValue) { list = new List <Tuple <int, GDID, int, byte, byte> >(); } } // total check Console.WriteLine("Thread {0} is doing final read of {1} elements".Args(Thread.CurrentThread.ManagedThreadId, list.Count)); foreach (var element in list) { var table = element.Item1 == 0 ? tA : tB; var val = table.Get(element.Item2) as byte[]; if (val == null) { continue; } Assert.AreEqual(element.Item4, val[0]); Assert.AreEqual(element.Item5, val[element.Item3]); } return; }, TaskCreationOptions.LongRunning)); } Task.WaitAll(tasks.ToArray()); } }
public void GDID_Zero() { var zero = GDID.Zero; Assert.IsTrue( zero.IsZero ); zero = new GDID(0,1,0); Assert.IsFalse( zero.IsZero ); }
public void ____Deserialize(GDID id, PID pid, DateTime ts, string about) { m_SysID = id; m_SysPID = pid; m_SysTimestampUTC = ts; m_SysAbout = about; }
public static Query ID_EQ_GDID(GDID id) { var result = new Query(); result.Set( NFX.Serialization.BSON.RowConverter.GDID_CLRtoBSON(_ID, id) ); return result; }
public void GDID_6() { var gdid = new GDID(0, 0, 0); Assert.AreEqual(0, gdid.Authority); Assert.AreEqual(0, gdid.Counter); }
public override bool IsCommentedByAuthor(GDID gNode, GDID gAuthor, string dimension) { return(false); }
public void Templatization_QuerySinglePrimitiveTypes_Inference() { var qryInt = new BSONDocument("{ int: '$$value' }", true, new TemplateArg("value", int.MinValue)); var qryLong = new BSONDocument("{ long: '$$value' }", true, new TemplateArg("value", long.MaxValue)); var qryBool = new BSONDocument("{ bool: '$$value' }", true, new TemplateArg("value", true)); var qryDouble = new BSONDocument("{ double: '$$value' }", true, new TemplateArg("value", double.Epsilon)); var qryString = new BSONDocument("{ string: '$$value' }", true, new TemplateArg("value", "string")); var qryArray = new BSONDocument("{ array: '$$value' }", true, new TemplateArg("value", new object[] { "string", int.MaxValue, false })); var gdid = new GDID(uint.MaxValue, GDID.AUTHORITY_MAX, GDID.COUNTER_MAX); var qryGDID = new BSONDocument("{ gdid: '$$value' }", true, new TemplateArg("value", gdid)); var dec = 150666333000.1234M; var qryDecimal = new BSONDocument("{ decimal: '$$value' }", true, new TemplateArg("value", dec)); var amount = new Amount("RUB", dec); var qryAmount = new BSONDocument("{ amount: '$$value' }", true, new TemplateArg("value", amount)); Assert.AreEqual(qryInt.Count, 1); Assert.IsNotNull(qryInt["int"]); Assert.IsInstanceOf<BSONInt32Element>(qryInt["int"]); Assert.AreEqual(int.MinValue, qryInt["int"].ObjectValue); Assert.AreEqual(qryLong.Count, 1); Assert.IsNotNull(qryLong["long"]); Assert.IsInstanceOf<BSONInt64Element>(qryLong["long"]); Assert.AreEqual(long.MaxValue, qryLong["long"].ObjectValue); Assert.AreEqual(qryBool.Count, 1); Assert.IsNotNull(qryBool["bool"]); Assert.IsInstanceOf<BSONBooleanElement>(qryBool["bool"]); Assert.AreEqual(true, qryBool["bool"].ObjectValue); Assert.AreEqual(qryDouble.Count, 1); Assert.IsNotNull(qryDouble["double"]); Assert.IsInstanceOf<BSONDoubleElement>(qryDouble["double"]); Assert.AreEqual(double.Epsilon, qryDouble["double"].ObjectValue); Assert.AreEqual(qryString.Count, 1); Assert.IsNotNull(qryString["string"]); Assert.IsInstanceOf<BSONStringElement>(qryString["string"]); Assert.AreEqual("string", qryString["string"].ObjectValue); Assert.AreEqual(qryArray.Count, 1); Assert.IsNotNull(qryArray["array"]); Assert.IsInstanceOf<BSONArrayElement>(qryArray["array"]); var elements = ((BSONArrayElement)qryArray["array"]).Value; Assert.IsNotNull(elements); Assert.AreEqual(elements.Length, 3); Assert.IsInstanceOf<BSONStringElement>(elements[0]); Assert.IsInstanceOf<BSONInt32Element>(elements[1]); Assert.IsInstanceOf<BSONBooleanElement>(elements[2]); Assert.AreEqual("string", elements[0].ObjectValue); Assert.AreEqual(int.MaxValue, elements[1].ObjectValue); Assert.AreEqual(false, elements[2].ObjectValue); Assert.AreEqual(qryGDID.Count, 1); Assert.IsNotNull(qryGDID["gdid"]); Assert.IsInstanceOf<BSONBinaryElement>(qryGDID["gdid"]); var binGDID = ((BSONBinaryElement)qryGDID["gdid"]).Value.Data; var expectedGDID = ((BSONBinaryElement)RowConverter.GDID_CLRtoBSON("gdid", gdid)).Value.Data; Assert.IsTrue(expectedGDID.SequenceEqual(binGDID)); Assert.AreEqual(qryDecimal.Count, 1); Assert.IsNotNull(qryDecimal["decimal"]); Assert.IsInstanceOf<BSONInt64Element>(qryDecimal["decimal"]); Assert.AreEqual(RowConverter.Decimal_CLRtoBSON("decimal", dec).ObjectValue, qryDecimal["decimal"].ObjectValue); Assert.AreEqual(qryAmount.Count, 1); Assert.IsNotNull(qryAmount["amount"]); Assert.IsInstanceOf<BSONDocumentElement>(qryAmount["amount"]); var docAmount = ((BSONDocumentElement)qryAmount["amount"]).Value; Assert.AreEqual("RUB", docAmount["c"].ObjectValue); Assert.AreEqual(RowConverter.Decimal_CLRtoBSON("decimal", dec).ObjectValue, docAmount["v"].ObjectValue); }
public override Comment Respond(GDID gAuthorNode, CommentID parent, string content, byte[] data) { return(default(Comment)); }
public override Comment Create(GDID gAuthorNode, GDID gTargetNode, string dimension, string content, byte[] data, PublicationState publicationState, RatingValue rating = RatingValue.Undefined, DateTime?epoch = null) { return(default(Comment)); }
public void GDID_3() { var gdid = new GDID(0, 12, GDID.COUNTER_MAX + 1); }
public void GDID_2() { var gdid = new GDID(0, 16, 89078); }
public void GDID_11() { var gdid = new GDID(0x01020304, 0xfacaca00aa55aa55); Assert.IsTrue("01,02,03,04,fa,ca,ca,00,aa,55,aa,55".AsByteArray().SequenceEqual(gdid.Bytes)); }
public static void TypedRowTestVariousTypes(ICRUDDataStore store) { var row = new Types(); row["GDID"] = new GDID(0, 234); row["SCREEN_NAME"] = "User1"; row["STRING_NAME"] = "Some user 1"; row["CHAR_NAME"] = "Some user 2"; row["BOOL_CHAR"] = true; //notice TRUE for both char and bool columns below row["BOOL_BOOL"] = true; row["AMOUNT"] = 145670.23m; row["DOB"] = new DateTime(1980,12,1); store.Insert( row ); var row2 = store.LoadOneRow(new Query("CRUD.Types.Load", new GDID(0, 234))); Assert.NotNull(row2); Assert.AreEqual(234, row2["GDID"]); Assert.AreEqual("User1", row2["Screen_Name"]); Assert.AreEqual("Some user 1", row2["String_Name"]); Assert.AreEqual("Some user 2", row2["Char_Name"]); Assert.AreEqual(true, row2["BOOL_Char"].AsBool()); Assert.AreEqual(true, row2["BOOL_BOOL"].AsBool()); Assert.AreEqual(145670.23m, row2["Amount"]); Assert.AreEqual(1980, row2["DOB"].AsDateTime().Year); }
public override GraphChangeStatus Complain(CommentID commentId, GDID gAuthorNode, string kind, string message) { return(GraphChangeStatus.NotFound); }
/// <summary> /// Creates an Elink instance initialized with GDID of 0 Era having its ID set to ulong value /// </summary> public ELink(UInt64 id, byte[] metadata) { m_GDID = new GDID(0, id); m_Metadata = metadata; if (m_Metadata!=null && ((m_Metadata.Length*2) > MAX_LINK_CHAR_SIZE)) throw new NFXException(StringConsts.ELINK_CHAR_LENGTH_LIMIT_ERROR.Args("metadata[{0}]".Args(m_Metadata.Length))); }
public PeopleNamesParcel(GDID id, List <string> data) : base(id, data) { }
public void GDID_BinBufferAndTryParseBin() { var gdid = new GDID(347827,15,0xaedb3434b); var buf = gdid.Bytes; var hex = "0x"+buf.ToDumpString(DumpFormat.Hex).Replace(" ",""); Console.WriteLine(hex); GDID gdid2; Assert.IsTrue(GDID.TryParse(hex, out gdid2)); Assert.AreEqual(gdid, gdid2); }
public HumanParcel(GDID id, Human data) : base(id, data) { }
public void NoGrowth_ByteArray(bool speed, int durationSec, int payloadSizeMin, int payloadSizeMax, int countMin, int countMax) { using (var cache = new LocalCache()) using (var pile = new DefaultPile(cache)) { cache.Pile = pile; cache.PileAllocMode = speed ? AllocationMode.FavorSpeed : AllocationMode.ReuseSpace; cache.Start(); var startTime = DateTime.UtcNow; var tasks = new List <Task>(); for (var t = 0; t < (System.Environment.ProcessorCount - 1); t++) { tasks.Add(Task.Factory.StartNew(() => { var tA = cache.GetOrCreateTable <GDID>("A"); var list = new List <CheckByteArray>(); bool put = true; while (true) { if ((DateTime.UtcNow - startTime).TotalSeconds >= durationSec) { return; } if (put) { var cnt = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(countMin, countMax); for (int i = 0; i < cnt; i++) { var payloadSize = NFX.ExternalRandomGenerator .Instance.NextScaledRandomInteger(payloadSizeMin, payloadSizeMax); var val = new byte[payloadSize]; val[0] = (byte)NFX.ExternalRandomGenerator.Instance.NextRandomInteger; val[payloadSize - 1] = (byte)NFX.ExternalRandomGenerator.Instance.NextRandomInteger; var key = new GDID((uint)Thread.CurrentThread.ManagedThreadId, (ulong)i); tA.Put(key, val); var element = new CheckByteArray(key, payloadSize - 1, val[0], val[payloadSize - 1]); list.Add(element); } Console.WriteLine("Thread {0} put {1} objects".Args(Thread.CurrentThread.ManagedThreadId, list.Count)); put = false; } else { var i = 0; for (var j = 0; j < list.Count; j++) { var element = list[j]; var buf = tA.Get(element.Key) as byte[]; if (buf != null) { Assert.AreEqual(element.FirstByte, buf[0]); Assert.AreEqual(element.LastByte, buf[element.IdxLast]); tA.Remove(element.Key); i++; } } Console.WriteLine("Thread {0} deleted {1} objects".Args(Thread.CurrentThread.ManagedThreadId, i)); list.Clear(); put = true; } } }, TaskCreationOptions.LongRunning)); } Task.WaitAll(tasks.ToArray()); } }
public Parcel Load(Type tParcel, GDID id, object shardingId = null, DataVeracity veracity = DataVeracity.Maximum, DataCaching cacheOpt = DataCaching.LatestData, int?cacheMaxAgeSec = null, ISession session = null) { throw new NotImplementedException(); }
public GDIDCredentials(GDID gdid) { m_GDID = gdid; }
/// <summary> /// Called when creating new Parcel instances by the original author. /// The new instance is in 'ParcelState.Creating' state /// </summary> protected Parcel(GDID id, object payload) { m_GDID = id; if (payload==null) throw new DistributedDataAccessException(StringConsts.ARGUMENT_ERROR+GetType().FullName+".ctor(payload==null)"); m_State = ParcelState.Creating; m_Payload = payload; }
public System.Threading.Tasks.Task <T> LoadAsync <T>(GDID id, object shardingId = null, DataVeracity veracity = DataVeracity.Maximum, DataCaching cacheOpt = DataCaching.LatestData, int?cacheMaxAgeSec = null, ISession session = null) where T : Parcel { throw new NotImplementedException(); }
public void DeleteOne_ByteArray(bool speed, int durationSec, int payloadSizeMin, int payloadSizeMax, int deleteFreq, bool isParallel) { using (var cache = new LocalCache()) using (var pile = new DefaultPile(cache)) { cache.Pile = pile; cache.PileAllocMode = speed ? AllocationMode.FavorSpeed : AllocationMode.ReuseSpace; cache.Start(); var startTime = DateTime.UtcNow; var tasks = new List <Task>(); for (var t = 0; t < (isParallel ? (System.Environment.ProcessorCount - 1) : 1); t++) { tasks.Add(Task.Factory.StartNew(() => { var i = 0; var list = new List <CheckByteArray>(); var tA = cache.GetOrCreateTable <GDID>("A"); var wlc = 0; while (true) { if ((DateTime.UtcNow - startTime).TotalSeconds >= durationSec) { break; } var payloadSize = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(payloadSizeMin, payloadSizeMax); var val = new byte[payloadSize]; val[0] = (byte)NFX.ExternalRandomGenerator.Instance.NextRandomInteger; val[payloadSize - 1] = (byte)NFX.ExternalRandomGenerator.Instance.NextRandomInteger; var key = new GDID((uint)Thread.CurrentThread.ManagedThreadId, (ulong)i); tA.Put(key, val); list.Add(new CheckByteArray(key, payloadSize - 1, val[0], val[payloadSize - 1])); // delete ONE random element if (i > 0 && i % deleteFreq == 0) { while (true && list.Count > 0) { var idx = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(0, list.Count - 1); key = list[idx].Key; var removed = tA.Remove(key); list.RemoveAt(idx); if (removed) { break; } } } // get several random elements if (list.Count > 64 && NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(0, 100) > 98) { var toRead = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(8, 64); wlc++; if (wlc % 125 == 0) { Console.WriteLine("Thread {0} is reading {1} elements, total {2}" .Args(Thread.CurrentThread.ManagedThreadId, toRead, list.Count)); } for (var k = 0; k < toRead && list.Count > 0; k++) { var idx = NFX.ExternalRandomGenerator.Instance.NextScaledRandomInteger(0, list.Count - 1); var element = list[idx]; var buf = tA.Get(element.Key) as byte[]; if (buf == null) { list.RemoveAt(idx); continue; } Assert.AreEqual(element.FirstByte, buf[0]); Assert.AreEqual(element.LastByte, buf[element.IdxLast]); } } if (i == Int32.MaxValue) { i = 0; } else { i++; } if (list.Count == Int32.MaxValue) { list = new List <CheckByteArray>(); } } Console.WriteLine("Thread {0} is doing final read of {1} elements, tableCount {2}" .Args(Thread.CurrentThread.ManagedThreadId, list.Count, tA.Count)); foreach (var element in list) { var buf = tA.Get(element.Key) as byte[]; if (buf == null) { continue; } Assert.AreEqual(element.FirstByte, buf[0]); Assert.AreEqual(element.LastByte, buf[element.IdxLast]); } }, TaskCreationOptions.LongRunning)); } Task.WaitAll(tasks.ToArray()); } }
/// <summary> /// Called by device to load parcel from storage. /// The new instance is in 'ParcelState.Sealed' state. /// Business logic devs - do not call /// </summary> protected Parcel(GDID id, object payload, IReplicationVersionInfo versInfo) { m_GDID = id; if (payload==null) throw new DistributedDataAccessException(StringConsts.ARGUMENT_ERROR+GetType().FullName+".ctor(payload==null)"); if (versInfo==null) throw new DistributedDataAccessException(StringConsts.ARGUMENT_ERROR+GetType().FullName+".ctor(versInfo==null)"); m_State = ParcelState.Sealed; m_Payload = payload; m_ReplicationVersionInfo = versInfo; }
public bool Remove(Type tParcel, GDID id, object shardingId = null, ISession session = null) { throw new NotImplementedException(); }
public static CheckoutRow MakeFake(GDID gdid) { var ch = new CheckoutRow() { ID = gdid, FileName = "myface_" + gdid.ID.ToString(), Date = DateTime.Now, StartOffset = gdid.ID * 20, G_Block = gdid, Address1 = NFX.Parsing.NaturalTextGenerator.Generate(50), Address2 = (gdid.ID % 7) == 0 ? NFX.Parsing.NaturalTextGenerator.Generate(50) : null }; var chCnt = (int)(gdid.ID % 10); ch.Charges = new Charge[chCnt]; for (int i = 0; i < chCnt; i++) ch.Charges[i] = Charge.MakeFake(gdid); return ch; }
public bool Remove <T>(GDID id, object shardingId = null, ISession session = null) where T : Parcel { throw new NotImplementedException(); }
public static PurchaseRow MakeFake(GDID gdid) { var purch = new PurchaseRow() { ID = gdid, Customer = PersonRow.MakeFake(gdid), Date = DateTime.Now, Amount = new Amount("usd", gdid.ID % 1897), SalesPerson = (gdid.ID % 2) == 0 ? null : PersonRow.MakeFake(gdid), G_Product = new GDID(0, gdid.ID + 157) }; return purch; }
public System.Threading.Tasks.Task <bool> RemoveAsync <T>(GDID id, object shardingId = null, ISession session = null) where T : Parcel { throw new NotImplementedException(); }
public BSONObjectID(GDID gdid) : this(gdid.Bytes) { }
public CRUDOperations ForNode(GDID gNode) { return(DataStore.PartitionedOperationsFor(SocialConsts.MDB_AREA_NODE, gNode)); }
public static BSONBinaryElement GDID_CLRtoBSON(string name, GDID gdid) { //As tested on Feb 27, 2015 //BinData works faster than string 8% and stores 40%-60% less data in index and data segment //Also, SEQUENTIAL keys (big endian) yield 30% smaller indexes (vs non-sequential) //ObjectId() is very similar if not identical to BinData(UserDefined) var bin = new BSONBinary(BSONBinaryType.UserDefined, gdid.Bytes); return name != null ? new BSONBinaryElement(name, bin) : new BSONBinaryElement( bin); }
private void decode() //link -> props { List <byte> data = new List <byte>(32); char pc = (char)0; for (var i = 0; i < m_Link.Length; i++) { char c = m_Link[i]; if (c == '-' || c == ' ') { continue; } if (pc != (char)0) { var seg = string.Concat(pc, c).ToUpperInvariant(); pc = (char)0; var sid = 0; if (!RALPHABET.TryGetValue(seg, out sid)) { throw new NFXException(StringConsts.ELINK_CHAR_COMBINATION_ERROR.Args(m_Link, seg)); } data.Add((byte)sid); } else { pc = c; } } if (data.Count < 4 || pc != (char)0) { throw new NFXException(StringConsts.ELINK_CHAR_LENGTH_ERROR.Args(m_Link)); } //2 control bytes var lead1 = data[0]; var rnd = (lead1 & 0xf0) >> 4; rnd |= rnd << 4; var authority = lead1 & 0x0f; var lead2 = data[1] ^ rnd; var eraLength = (lead2 & 0xf0) >> 4; var idLength = lead2 & 0x0f; var csum = data[2] ^ rnd; if (eraLength > 4 || idLength < 1 || idLength > 8) { throw new NFXException(StringConsts.ELINK_SEGMENT_LENGTH_ERROR.Args(m_Link)); } if (data.Count - 3 < eraLength + idLength) { throw new NFXException(StringConsts.ELINK_CHAR_LENGTH_ERROR.Args(m_Link)); } UInt32 era = 0; var idx = 3; if (eraLength > 0) { for (var i = 0; i < eraLength; i++, idx++) { era |= (UInt32)((byte)(data[idx] ^ rnd)) << (8 * i); } } UInt64 id = 0; if (idLength > 0) { for (var i = 0; i < idLength; i++, idx++) { id |= (UInt64)((byte)(data[idx] ^ rnd)) << (8 * i); } } id |= ((ulong)authority << 60); byte[] metadata = null; if (idx < data.Count) { metadata = new byte[data.Count - idx]; for (var j = 0; idx < data.Count; idx++, j++) { metadata[j] = (byte)(data[idx] ^ rnd); } } var thiscsum = crc(era, id, metadata); if (csum != thiscsum) { throw new NFXException(StringConsts.ELINK_CSUM_MISMATCH_ERROR.Args(m_Link)); } m_GDID = new GDID(era, id); m_Metadata = metadata; }
public static void GetSchemaAndTestFullGDID(ICRUDDataStore store) { var schema = store.GetSchema(new Query("CRUD.FullGDID.Load")); var row = new DynamicRow(schema); var key = new GDID(179, 1, 1234567890); Console.WriteLine( key.Bytes.ToDumpString(DumpFormat.Hex)); row["GDID"] = new GDID(179, 1, 1234567890); Console.WriteLine( ((byte[])row["GDID"]).ToDumpString(DumpFormat.Hex) ); row["VARGDID"] = new GDID(12, 9, 9876543210); row["STRING_NAME"] = "DA DA DA!"; store.Insert( row ); var row2 = store.LoadOneRow(new Query("CRUD.FullGDID.Load", key, typeof(FullGDID))) as FullGDID; Assert.NotNull(row2); Assert.AreEqual(key, row2.GDID); Assert.AreEqual(new GDID(12, 9, 9876543210), row2.VARGDID); Assert.AreEqual("DA DA DA!", row2["String_Name"]); }
public DatedGDIDWithISOKey(DateTime date, GDID gdid, string iso) { GDID = gdid; ISO = IOMiscUtils.PackISO3CodeToInt(iso); YMD = DatedGDIDWithISOKey.DateToYMD(date); }
//link -> props private void decode() { List<byte> data = new List<byte>(32); char pc = (char)0; for(var i=0; i<m_Link.Length; i++) { char c = m_Link[i]; if (c=='-' || c==' ') continue; if (pc!=(char)0) { var seg = string.Concat(pc, c).ToUpperInvariant(); pc = (char)0; var sid = 0; if (!RALPHABET.TryGetValue(seg, out sid)) throw new NFXException(StringConsts.ELINK_CHAR_COMBINATION_ERROR.Args(m_Link, seg)); data.Add((byte)sid); } else pc = c; } if (data.Count<4 || pc!=(char)0) throw new NFXException(StringConsts.ELINK_CHAR_LENGTH_ERROR.Args(m_Link)); //2 control bytes var lead1 = data[0]; var rnd = (lead1 & 0xf0) >> 4; rnd |= rnd << 4; var authority = lead1 & 0x0f; var lead2 = data[1] ^ rnd; var eraLength = (lead2 & 0xf0) >> 4; var idLength = lead2 & 0x0f; var csum = data[2] ^ rnd; if (eraLength>4 || idLength<1 || idLength>8) throw new NFXException(StringConsts.ELINK_SEGMENT_LENGTH_ERROR.Args(m_Link)); if (data.Count-3 < eraLength + idLength) throw new NFXException(StringConsts.ELINK_CHAR_LENGTH_ERROR.Args(m_Link)); UInt32 era = 0; var idx = 3; if (eraLength>0) { for(var i=0; i<eraLength; i++,idx++) era |= (UInt32)((byte)(data[idx] ^ rnd)) << (8 * i); } UInt64 id = 0; if (idLength>0) { for(var i=0; i<idLength; i++,idx++) id |= (UInt64)((byte)(data[idx] ^ rnd)) << (8 * i); } id |= ((ulong)authority << 60); byte[] metadata = null; if (idx<data.Count) { metadata = new byte[data.Count - idx]; for(var j=0; idx<data.Count; idx++, j++) metadata[j] = (byte)(data[idx] ^ rnd); } var thiscsum = crc(era, id, metadata); if (csum!=thiscsum) throw new NFXException(StringConsts.ELINK_CSUM_MISMATCH_ERROR.Args(m_Link)); m_GDID = new GDID(era, id); m_Metadata = metadata; }
public TwoGDIDWithISOKey(GDID gdid1, GDID gdid2, string iso) { GDID1 = gdid1; GDID2 = gdid2; ISO = IOMiscUtils.PackISO3CodeToInt(iso); }
public void GDID_5() { var gdid = new GDID(0, 0, GDID.COUNTER_MAX); Assert.AreEqual(0, gdid.Authority); Assert.AreEqual(GDID.COUNTER_MAX, gdid.Counter); }
public GDIDWithStrHash(GDID gdid, string key) { GDID = gdid; Hash = GDIDWithStrHash.StrToHash(key); }
public void GDID_BinBuffer() { var gdid = new GDID(0,1,0x4b); var buf = gdid.Bytes; Console.WriteLine(buf.ToDumpString(DumpFormat.Hex)); var gdid2 = new GDID(buf); Assert.AreEqual(gdid, gdid2); }
public GDIDWithISOKey(GDID gdid, string iso) { GDID = gdid; ISO = IOMiscUtils.PackISO3CodeToInt(iso); }
public void GDID_JSON_1() { var gdid = new GDID(2, 3, 57); var s = gdid.ToJSON(); Console.WriteLine(s); Assert.AreEqual("\"2:3:57\"", s); }
public GDIDWithInt(GDID gdid, int val) { GDID = gdid; Int = val; }
public void GDID_TryParse() { GDID parsed; Assert.IsTrue(GDID.TryParse("1:2:3", out parsed)); Assert.AreEqual(1, parsed.Era); Assert.AreEqual(2, parsed.Authority); Assert.AreEqual(3, parsed.Counter); Assert.IsTrue(GDID.TryParse("231:2:3123", out parsed)); Assert.AreEqual(231, parsed.Era); Assert.AreEqual(2, parsed.Authority); Assert.AreEqual(3123, parsed.Counter); Assert.IsTrue(GDID.TryParse(" 231:2:3123 ", out parsed)); Assert.AreEqual(231, parsed.Era); Assert.AreEqual(2, parsed.Authority); Assert.AreEqual(3123, parsed.Counter); Assert.IsTrue(GDID.TryParse("31 : 2: 3123", out parsed)); Assert.AreEqual(31, parsed.Era); Assert.AreEqual(2, parsed.Authority); Assert.AreEqual(3123, parsed.Counter); Assert.IsFalse(GDID.TryParse("-1:2:3123", out parsed)); Assert.IsFalse(GDID.TryParse("1:18:3123", out parsed)); Assert.IsFalse(GDID.TryParse(":18:3123", out parsed)); Assert.IsFalse(GDID.TryParse("::3123", out parsed)); Assert.IsFalse(GDID.TryParse("1::3", out parsed)); Assert.IsFalse(GDID.TryParse("1::", out parsed)); Assert.IsFalse(GDID.TryParse("1:-:-", out parsed)); Assert.IsFalse(GDID.TryParse("1: : ", out parsed)); Assert.IsFalse(GDID.TryParse("FTGEJK-IR", out parsed)); //0x 00 00 00 00 10 00 00 00 00 00 00 4B // ----era---- ------ulong ----------- Assert.IsTrue(GDID.TryParse("0x00000000100000000000004B", out parsed)); Assert.AreEqual(new GDID(0, 1, 0x4b), parsed); Assert.IsTrue(GDID.TryParse("00000000100000000000004B", out parsed)); Assert.AreEqual(new GDID(0, 1, 0x4b), parsed); Assert.IsTrue(GDID.TryParse(new GDID(0, 1, 0x4b).ToHexString(), out parsed)); Assert.AreEqual(new GDID(0, 1, 0x4b), parsed); GDID?nullable; Assert.IsTrue(GDID.TryParse("0X00000000100000000000004b", out nullable)); Assert.IsTrue(nullable.HasValue); Assert.AreEqual(new GDID(0, 1, 0x4b), nullable.Value); Assert.IsTrue(GDID.TryParse("00000000100000000000004b", out nullable)); Assert.IsTrue(nullable.HasValue); Assert.AreEqual(new GDID(0, 1, 0x4b), nullable.Value); Assert.IsTrue(GDID.TryParse(new GDID(0, 1, 0x4b).ToHexString(), out nullable)); Assert.IsTrue(nullable.HasValue); Assert.AreEqual(new GDID(0, 1, 0x4b), nullable.Value); Assert.IsFalse(GDID.TryParse("0x0001000000000000", out nullable));//too short Assert.IsFalse(nullable.HasValue); Assert.IsFalse(GDID.TryParse("0x00000303030303003031000000000000", out nullable));//too long Assert.IsFalse(nullable.HasValue); }
public void GDID_11() { var gdid = new GDID(0x01020304, 0xfacaca00aa55aa55); Assert.IsTrue( "01,02,03,04,fa,ca,ca,00,aa,55,aa,55".AsByteArray().SequenceEqual( gdid.Bytes ) ); }
private Dictionary <GDID, User> getBucket(GDID id) { return(m_Data[id.Counter & 0xff]); }
public void GDID_3() { var gdid = new GDID(0, 12, GDID.COUNTER_MAX+1); }
public GDIDWithISOKey(GDID gdid, string iso) { GDID = gdid; ISO = ISOtoInt(iso); }