summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/crc/crc_example.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/libs/crc/crc_example.cpp
parentInitial commit. (diff)
downloadceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.tar.xz
ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/crc/crc_example.cpp')
-rw-r--r--src/boost/libs/crc/crc_example.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/boost/libs/crc/crc_example.cpp b/src/boost/libs/crc/crc_example.cpp
new file mode 100644
index 00000000..a40e61d1
--- /dev/null
+++ b/src/boost/libs/crc/crc_example.cpp
@@ -0,0 +1,75 @@
+// Boost CRC example program file ------------------------------------------//
+
+// Copyright 2003 Daryle Walker. Use, modification, and distribution are
+// subject to the Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or a copy at <http://www.boost.org/LICENSE_1_0.txt>.)
+
+// See <http://www.boost.org/libs/crc/> for the library's home page.
+
+// Revision History
+// 17 Jun 2003 Initial version (Daryle Walker)
+
+#include <boost/crc.hpp> // for boost::crc_32_type
+
+#include <cstdlib> // for EXIT_SUCCESS, EXIT_FAILURE
+#include <exception> // for std::exception
+#include <fstream> // for std::ifstream
+#include <ios> // for std::ios_base, etc.
+#include <iostream> // for std::cerr, std::cout
+#include <ostream> // for std::endl
+
+
+// Redefine this to change to processing buffer size
+#ifndef PRIVATE_BUFFER_SIZE
+#define PRIVATE_BUFFER_SIZE 1024
+#endif
+
+// Global objects
+std::streamsize const buffer_size = PRIVATE_BUFFER_SIZE;
+
+
+// Main program
+int
+main
+(
+ int argc,
+ char const * argv[]
+)
+try
+{
+ boost::crc_32_type result;
+
+ for ( int i = 1 ; i < argc ; ++i )
+ {
+ std::ifstream ifs( argv[i], std::ios_base::binary );
+
+ if ( ifs )
+ {
+ do
+ {
+ char buffer[ buffer_size ];
+
+ ifs.read( buffer, buffer_size );
+ result.process_bytes( buffer, ifs.gcount() );
+ } while ( ifs );
+ }
+ else
+ {
+ std::cerr << "Failed to open file '" << argv[i] << "'."
+ << std::endl;
+ }
+ }
+
+ std::cout << std::hex << std::uppercase << result.checksum() << std::endl;
+ return EXIT_SUCCESS;
+}
+catch ( std::exception &e )
+{
+ std::cerr << "Found an exception with '" << e.what() << "'." << std::endl;
+ return EXIT_FAILURE;
+}
+catch ( ... )
+{
+ std::cerr << "Found an unknown exception." << std::endl;
+ return EXIT_FAILURE;
+}