summaryrefslogtreecommitdiffstats
path: root/file_index.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2019-01-06 10:08:51 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2019-01-06 10:08:51 +0000
commit1bd12f8e72751a6431189a7088f01477a987a212 (patch)
treef3bda4baabb6941e593609529faa13efcad4302c /file_index.h
parentReleasing debian version 1.7-3. (diff)
downloadplzip-1bd12f8e72751a6431189a7088f01477a987a212.tar.xz
plzip-1bd12f8e72751a6431189a7088f01477a987a212.zip
Merging upstream version 1.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'file_index.h')
-rw-r--r--file_index.h87
1 files changed, 0 insertions, 87 deletions
diff --git a/file_index.h b/file_index.h
deleted file mode 100644
index 7962b99..0000000
--- a/file_index.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Plzip - Parallel compressor compatible with lzip
- Copyright (C) 2009-2018 Antonio Diaz Diaz.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef INT64_MAX
-#define INT64_MAX 0x7FFFFFFFFFFFFFFFLL
-#endif
-
-
-class Block
- {
- long long pos_, size_; // pos + size <= INT64_MAX
-
-public:
- Block( const long long p, const long long s ) : pos_( p ), size_( s ) {}
-
- long long pos() const { return pos_; }
- long long size() const { return size_; }
- long long end() const { return pos_ + size_; }
-
- void pos( const long long p ) { pos_ = p; }
- void size( const long long s ) { size_ = s; }
- };
-
-
-class File_index
- {
- struct Member
- {
- Block dblock, mblock; // data block, member block
- unsigned dictionary_size;
-
- Member( const long long dp, const long long ds,
- const long long mp, const long long ms, const unsigned dict_size )
- : dblock( dp, ds ), mblock( mp, ms ), dictionary_size( dict_size ) {}
- };
-
- std::vector< Member > member_vector;
- std::string error_;
- const long long isize;
- int retval_;
-
- void set_errno_error( const char * const msg );
- void set_num_error( const char * const msg, unsigned long long num );
- bool skip_trailing_data( const int fd, long long & pos,
- const bool ignore_trailing, const bool loose_trailing );
-
-public:
- File_index( const int infd, const bool ignore_trailing,
- const bool loose_trailing );
-
- long members() const { return member_vector.size(); }
- const std::string & error() const { return error_; }
- int retval() const { return retval_; }
-
- long long udata_size() const
- { if( member_vector.empty() ) return 0;
- return member_vector.back().dblock.end(); }
-
- long long cdata_size() const
- { if( member_vector.empty() ) return 0;
- return member_vector.back().mblock.end(); }
-
- // total size including trailing data (if any)
- long long file_size() const
- { if( isize >= 0 ) return isize; else return 0; }
-
- const Block & dblock( const long i ) const
- { return member_vector[i].dblock; }
- const Block & mblock( const long i ) const
- { return member_vector[i].mblock; }
- unsigned dictionary_size( const long i ) const
- { return member_vector[i].dictionary_size; }
- };