Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        public static IIntegrityCheck Generate(IntegrityCheckTypes myIntegrityCheckType)
        {
            if (myIntegrityCheckType == IntegrityCheckTypes.NULLAlgorithm)
                return new NULLAlgorithm();

            else if (myIntegrityCheckType == IntegrityCheckTypes.MD5)
                return new MD5();

            else if (myIntegrityCheckType == IntegrityCheckTypes.SHA1)
                return new SHA1();

            else
                throw new CryptographyExceptions_ProtocolNotSupported("The protocol id '" + myIntegrityCheckType + "' is not supported!");
        }
Esempio n. 3
0
        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!
        }