For consistency with the current terminology.
trace::Parser p;
if (!p.open(argv[i])) {
- std::cerr << "error: failed to open " << argv[i] << "\n";
return 1;
}
trace::Parser parser;
if (!parser.open(argv[i])) {
- std::cerr << "error: failed to open " << argv[i] << "\n";
return 1;
}
for (i = optind; i < argc; ++i) {
trace::Parser p;
if (!p.open(argv[i])) {
- std::cerr << "error: failed to open " << argv[i] << "\n";
return 1;
}
#include <fstream>
#include <stdint.h>
+
+#define SNAPPY_BYTE1 'a'
+#define SNAPPY_BYTE2 't'
+
+
namespace trace {
class File {
};
public:
- static bool isZLibCompressed(const std::string &filename);
- static bool isSnappyCompressed(const std::string &filename);
static File *createZLib(void);
static File *createSnappy(void);
static File *createForRead(const char *filename);
}
-}
+} /* namespace trace */
#endif
**************************************************************************/
+#include <fstream>
+
#include "os.hpp"
#include "trace_file.hpp"
File *
File::createForRead(const char *filename)
{
- File *file;
+ std::ifstream stream(filename, std::ifstream::binary | std::ifstream::in);
+ if (!stream.is_open()) {
+ os::log("error: failed to open %s\n", filename);
+ return NULL;
+ }
+ unsigned char byte1, byte2;
+ stream >> byte1;
+ stream >> byte2;
+ stream.close();
- if (File::isSnappyCompressed(filename)) {
+ File *file;
+ if (byte1 == SNAPPY_BYTE1 && byte2 == SNAPPY_BYTE2) {
file = File::createSnappy();
- } else if (File::isZLibCompressed(filename)) {
+ } else if (byte1 == 0x1f && byte2 == 0x8b) {
file = File::createZLib();
} else {
- os::log("error: could not determine %s compression type\n", filename);
+ os::log("error: %s: unkwnown compression\n", filename);
return NULL;
}
-
if (!file) {
return NULL;
}
#define SNAPPY_CHUNK_SIZE (1 * 1024 * 1024)
-#define SNAPPY_BYTE1 'a'
-#define SNAPPY_BYTE2 't'
using namespace trace;
File* File::createSnappy(void) {
return new SnappyFile;
}
-
-bool File::isSnappyCompressed(const std::string &filename)
-{
- std::fstream stream(filename.c_str(),
- std::fstream::binary | std::fstream::in);
- if (!stream.is_open())
- return false;
-
- unsigned char byte1, byte2;
- stream >> byte1;
- stream >> byte2;
- stream.close();
-
- return (byte1 == SNAPPY_BYTE1 && byte2 == SNAPPY_BYTE2);
-}
File * File::createZLib(void) {
return new ZLibFile;
}
-
-bool File::isZLibCompressed(const std::string &filename)
-{
- std::fstream stream(filename.c_str(),
- std::fstream::binary | std::fstream::in);
- if (!stream.is_open())
- return false;
-
- unsigned char byte1, byte2;
- stream >> byte1;
- stream >> byte2;
- stream.close();
-
- return (byte1 == 0x1f && byte2 == 0x8b);
-}
-
for (i = optind; i < argc; ++i) {
if (!retrace::parser.open(argv[i])) {
- std::cerr << "error: failed to open " << argv[i] << "\n";
return 1;
}