/// <summary> /// This will create an (mostly) empty INode /// </summary> public INode() { // Members of AGraphStructure _StructureVersion = actualStructureVersion; _IntegrityCheckValue = null; _EncryptionParameters = null; ObjectUUID = new ObjectUUID(); _INodePositions = new List<ExtendedPosition>(); _ObjectLocatorReference = null; // Common attributes _CreationTime = TimestampNonce.Ticks; _LastAccessTime = _CreationTime; _LastModificationTime = _CreationTime; _DeletionTime = UInt64.MinValue; // Object Safety and Security _IntegrityCheckAlgorithm = IntegrityCheckTypes.NULLAlgorithm; _EncryptionAlgorithm = SymmetricEncryptionTypes.NULLAlgorithm; // ObjectLocatorPositions _ObjectLocatorLength = 0; _ObjectLocatorCopies = FSConstants.ObjectLocatorsCopies; _ObjectLocatorPositions = new List<ExtendedPosition>(); // Mark INode dirty isDirty = true; }
public static ISymmetricEncryption Generate(SymmetricEncryptionTypes mySymmetricEncryptionType) { if (mySymmetricEncryptionType == SymmetricEncryptionTypes.NULLAlgorithm) return new NULLAlgorithm(); else if (mySymmetricEncryptionType == SymmetricEncryptionTypes.AES) return new AES(); else throw new CryptographyExceptions_ProtocolNotSupported("The protocol id '" + mySymmetricEncryptionType + "' is not supported!"); }
public override void Deserialize(ref SerializationReader mySerializationReader) { UInt16 NumberOfObjectLocatorPositions; UInt16 NumberOfINodePositions; try { #region Read Common attributes _CreationTime = mySerializationReader.ReadUInt64(); _LastModificationTime = mySerializationReader.ReadUInt64(); _LastAccessTime = mySerializationReader.ReadUInt64(); _DeletionTime = mySerializationReader.ReadUInt64(); _ObjectSize = mySerializationReader.ReadUInt64(); #endregion #region Object Safety and Security _IntegrityCheckAlgorithm = (IntegrityCheckTypes)mySerializationReader.ReadOptimizedByte(); _EncryptionAlgorithm = (SymmetricEncryptionTypes)mySerializationReader.ReadOptimizedByte(); #endregion #region Read list of ObjectLocatorPositions _ObjectLocatorLength = mySerializationReader.ReadUInt64(); _ObjectLocatorCopies = mySerializationReader.ReadUInt64(); NumberOfObjectLocatorPositions = mySerializationReader.ReadUInt16(); _ObjectLocatorPositions = new List<ExtendedPosition>(); for (int i = 1; i <= NumberOfObjectLocatorPositions; i++) _ObjectLocatorPositions.Add(new ExtendedPosition(new StorageUUID(mySerializationReader.ReadByteArray()), mySerializationReader.ReadUInt64())); #endregion #region Read list of INodePositions NumberOfINodePositions = mySerializationReader.ReadUInt16(); _INodePositions = new List<ExtendedPosition>(); for (int i = 1; i <= NumberOfINodePositions; i++) _INodePositions.Add(new ExtendedPosition(new StorageUUID(mySerializationReader.ReadByteArray()), mySerializationReader.ReadUInt64())); #endregion #region Read State _ObjectLocatorStates = (ObjectLocatorStates)mySerializationReader.ReadOptimizedByte(); #endregion } catch (Exception e) { throw new GraphFSException_INodeCouldNotBeDeserialized("INode could not be deserialized!\n\n" + e); } //isDirty = true; // this is not useful! }