public static UserLedgerEntry01 Deserialize(byte[] buffer) { UserLedgerEntry01 e = UserLedgerEntry01.New(); int bufferBase = 0; // Entity Header fields e.___entityserializationsignature = buffer[bufferBase++]; if (!e.CheckEntitySerializationSignature()) { e.OnChangeState(EntitySerialization01.EntityState.EXCEPTION_DESERIALIZATION_ENTITYSIGNATURE); return(e); } e.___entityserializationversion = buffer[bufferBase++]; if (!e.CheckEntitySerializationVersion()) { e.OnChangeState(EntitySerialization01.EntityState.EXCEPTION_DESERIALIZATION_ENTITYVERSION); return(e); } e.___fieldserializationversion = buffer[bufferBase++]; if (!e.CheckFieldSerializationVersion()) { e.OnChangeState(EntitySerialization01.EntityState.EXCEPTION_DESERIALIZATION_FIELDVERSION); return(e); } if (!e.CheckEntitySerializationSignature()) { e.OnChangeState(EntitySerialization01.EntityState.EXCEPTION_DESERIALIZATION_ENTITYSIGNATURE); return(e); } if (!e.CheckEntitySerializationVersion()) { e.OnChangeState(EntitySerialization01.EntityState.EXCEPTION_DESERIALIZATION_ENTITYVERSION); return(e); } if (!e.CheckFieldSerializationVersion()) { e.OnChangeState(EntitySerialization01.EntityState.EXCEPTION_DESERIALIZATION_FIELDVERSION); return(e); } e.___entitystate = (EntitySerialization01.EntityState)buffer[bufferBase++]; e.___nfields = buffer[bufferBase++]; // Entity System fields e.__entitytypehash = FieldSerialization01.GetByteArray(buffer, ref bufferBase); e.__created = FieldSerialization01.GetInt64(buffer, ref bufferBase); e.__modified = FieldSerialization01.GetInt64(buffer, ref bufferBase); e.__changeindex = FieldSerialization01.GetInt64(buffer, ref bufferBase); // Entity Data fields e._id = FieldSerialization01.GetInt32(buffer, ref bufferBase); e._username = FieldSerialization01.GetString(buffer, ref bufferBase); e._passphrase = FieldSerialization01.GetString(buffer, ref bufferBase); e.OnChangeAllFieldValues(EntitySerialization01.EntityState.DESERIALIZED); return(e); }
public byte[] Serialize() { if (___entitystate == EntitySerialization01.EntityState.UNINITIALIZED) { Initialize(); } EntitySerialization01.EntityState oldState = OnChangeState(EntitySerialization01.EntityState.SERIALIZED); byte[][] fieldBuffer = new byte[this.___nfields][]; // Entity System fields fieldBuffer[0] = FieldSerialization01.GetFieldBuffer(this.__entitytypehash); fieldBuffer[1] = FieldSerialization01.GetFieldBuffer(this.__created); fieldBuffer[2] = FieldSerialization01.GetFieldBuffer(this.__modified); fieldBuffer[3] = FieldSerialization01.GetFieldBuffer(this.__changeindex); // Entity Data fields fieldBuffer[4] = FieldSerialization01.GetFieldBuffer(this._imageVersion); fieldBuffer[5] = FieldSerialization01.GetFieldBuffer(this._imageName); fieldBuffer[6] = FieldSerialization01.GetFieldBuffer(this._imageContent); int lBuffer = EntitySerialization01.NHEADERFIELDS * sizeof(byte); for (int fi = 0; fi < ___nfields; fi++) { lBuffer += fieldBuffer[fi].Length; // Entity System fields plus Entity data fields } byte[] buffer = new byte[lBuffer]; int bufferBase = 0; // Entity Header fields buffer[bufferBase++] = ___entityserializationsignature; buffer[bufferBase++] = ___entityserializationversion; buffer[bufferBase++] = ___fieldserializationversion; buffer[bufferBase++] = (byte)___entitystate; buffer[bufferBase++] = ___nfields; // Entity System fields plus Entity data fields for (int fi = 0; fi < ___nfields; fi++) { if (bufferBase + fieldBuffer[fi].Length > lBuffer) { OnChangeState(EntitySerialization01.EntityState.EXCEPTION_SERIALIZATION); return(Array.Empty <byte>()); } fieldBuffer[fi].CopyTo(buffer, bufferBase); bufferBase += fieldBuffer[fi].Length; } ___entitystate = oldState; return(buffer); }