Annotation of truecrypt/volume/volumelayout.h, revision 1.1

1.1     ! root        1: /*
        !             2:  Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
        !             3: 
        !             4:  Governed by the TrueCrypt License 2.4 the full text of which is contained
        !             5:  in the file License.txt included in TrueCrypt binary and source code
        !             6:  distribution packages.
        !             7: */
        !             8: 
        !             9: #ifndef TC_HEADER_Volume_VolumeLayout
        !            10: #define TC_HEADER_Volume_VolumeLayout
        !            11: 
        !            12: #include "Platform/Platform.h"
        !            13: #include "Volume/EncryptionAlgorithm.h"
        !            14: #include "Volume/EncryptionMode.h"
        !            15: #include "VolumeHeader.h"
        !            16: 
        !            17: namespace TrueCrypt
        !            18: {
        !            19:        class VolumeLayout;
        !            20:        typedef list < shared_ptr <VolumeLayout> > VolumeLayoutList;
        !            21: 
        !            22:        class VolumeLayout
        !            23:        {
        !            24:        public:
        !            25:                virtual ~VolumeLayout ();
        !            26: 
        !            27:                static VolumeLayoutList GetAvailableLayouts (VolumeType::Enum type = VolumeType::Unknown);
        !            28:                virtual uint64 GetDataOffset (uint64 volumeHostSize) const = 0;
        !            29:                virtual uint64 GetDataSize (uint64 volumeHostSize) const = 0;
        !            30:                virtual shared_ptr <VolumeHeader> GetHeader ();
        !            31:                virtual int GetHeaderOffset () const { return HeaderOffset; } // Positive value: offset from the start of host, negative: offset from the end
        !            32:                virtual uint32 GetHeaderSize () const { return HeaderSize; }
        !            33:                virtual EncryptionAlgorithmList GetSupportedEncryptionAlgorithms () const { return SupportedEncryptionAlgorithms; }
        !            34:                virtual EncryptionModeList GetSupportedEncryptionModes () const { return SupportedEncryptionModes; }
        !            35:                virtual VolumeType::Enum GetType () const { return Type; }
        !            36: 
        !            37:        protected:
        !            38:                VolumeLayout ();
        !            39: 
        !            40:                EncryptionAlgorithmList SupportedEncryptionAlgorithms;
        !            41:                EncryptionModeList SupportedEncryptionModes;
        !            42: 
        !            43:                int HeaderOffset;
        !            44:                uint32 HeaderSize;
        !            45:                VolumeType::Enum Type;
        !            46: 
        !            47:                shared_ptr <VolumeHeader> Header;
        !            48: 
        !            49:        private:
        !            50:                VolumeLayout (const VolumeLayout &);
        !            51:                VolumeLayout &operator= (const VolumeLayout &);
        !            52:        };
        !            53: 
        !            54:        class VolumeLayoutV1Normal : public VolumeLayout
        !            55:        {
        !            56:        public:
        !            57:                VolumeLayoutV1Normal ();
        !            58:                virtual ~VolumeLayoutV1Normal () { }
        !            59: 
        !            60:                virtual uint64 GetDataOffset (uint64 volumeHostSize) const;
        !            61:                virtual uint64 GetDataSize (uint64 volumeHostSize) const;
        !            62: 
        !            63:        private:
        !            64:                VolumeLayoutV1Normal (const VolumeLayoutV1Normal &);
        !            65:                VolumeLayoutV1Normal &operator= (const VolumeLayoutV1Normal &);
        !            66:        };
        !            67: 
        !            68:        class VolumeLayoutV1Hidden : public VolumeLayout
        !            69:        {
        !            70:        public:
        !            71:                VolumeLayoutV1Hidden ();
        !            72:                virtual ~VolumeLayoutV1Hidden () { }
        !            73: 
        !            74:                virtual uint64 GetDataOffset (uint64 volumeHostSize) const;
        !            75:                virtual uint64 GetDataSize (uint64 volumeHostSize) const;
        !            76: 
        !            77:        private:
        !            78:                VolumeLayoutV1Hidden (const VolumeLayoutV1Hidden &);
        !            79:                VolumeLayoutV1Hidden &operator= (const VolumeLayoutV1Hidden &);
        !            80:        };
        !            81: }
        !            82: 
        !            83: #endif // TC_HEADER_Volume_VolumeLayout

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.