Modified some stuff to conform with c++0x. master
authorLadislav Láska <laska@kam.mff.cuni.cz>
Fri, 27 May 2011 21:16:58 +0000 (23:16 +0200)
committerLadislav Láska <laska@kam.mff.cuni.cz>
Fri, 27 May 2011 21:16:58 +0000 (23:16 +0200)
- Error codes were renamed, since EIO conflicted with some constant.
- Signed/unsigned comparison warning was fixed.

tar.cpp
tar.h

diff --git a/tar.cpp b/tar.cpp
index 79d7904b30a70b7c03f3cd4156644e1a88c04ed4..cbabf6795a3a4ac96103e2ad454c33fd59da9255 100644 (file)
--- a/tar.cpp
+++ b/tar.cpp
@@ -14,7 +14,7 @@
 #include <cstdio>
 #include <fstream>
 
-#include "tarfile.h"
+#include "tar.h"
 
 const char *Tar::error_codes[] = {
        "OK",
@@ -32,12 +32,12 @@ int Tar::put(const char *filename, const char *content, size_t len) {
        setSize(len);
        checksum();
        err = writeHeader();
-       if (err != EOK) return err;
+       if (err != E_OK) return err;
        err = writeBuffer(content, len);
-       if (err != EOK) return err;
+       if (err != E_OK) return err;
        err = pad();
-       if (err != EOK) return err;
-       return EOK;
+       if (err != E_OK) return err;
+       return E_OK;
 }
 
 int Tar::putFile(const char *filename, const char *nameInArchive) {
@@ -45,7 +45,7 @@ int Tar::putFile(const char *filename, const char *nameInArchive) {
        initHeader();
        setFilename(filename);
        FILE *f = fopen(filename, "r");
-       if (!f) return -ENOTFOUND;
+       if (!f) return -E_NOTFOUND;
        
        /* Get file size */
        fseek(f, 0, SEEK_END);
@@ -56,31 +56,31 @@ int Tar::putFile(const char *filename, const char *nameInArchive) {
 
        /* Write header */
        err = writeHeader();
-       if (err != EOK) { fclose(f); return err; }
+       if (err != E_OK) { fclose(f); return err; }
        
        int r;
        char buffer[BUFSIZE];
        while ((r = fread(buffer, 1, sizeof(buffer), f)) > 0) {
-               if (ferror(f)) return -EIO;
+               if (ferror(f)) return -E_IO;
                stream.write(buffer, r);
-               if (stream.fail()) return -EIO;
+               if (stream.fail()) return -E_IO;
        }
        fclose(f);
 
        err = pad();
-       if (err != EOK) return err;
+       if (err != E_OK) return err;
 
-       return EOK;
+       return E_OK;
 }
 
 int Tar::finalize() {
        memset(&defaultHeader, 0, sizeof(TarHeader));
        int err;
        err = writeHeader();
-       if (err != EOK) return err;
+       if (err != E_OK) return err;
        err = writeHeader();
-       if (err != EOK) return err;
-       return EOK;
+       if (err != E_OK) return err;
+       return E_OK;
 }
 
 void Tar::initHeader(TarHeader *header) {
@@ -132,52 +132,52 @@ int Tar::verifyChecksum(TarHeader *header) {
        
        unsigned int headerSum;
        sscanf(header->checksum, "%o", &headerSum);
-       if (headerSum == sum) return EOK;
-       else return -ECHKSUM;
+       if (headerSum == sum) return E_OK;
+       else return -E_CHKSUM;
 }
 
 int Tar::setFilename(const char *filename, TarHeader *header) {
        if (header == NULL) header = &defaultHeader;
-       if (filename == NULL) return -EFINV;
-       if (filename[0] == 0) return -EFINV;
-       if (strlen(filename) >= 100) return -EFINV;
+       if (filename == NULL) return -E_FINV;
+       if (filename[0] == 0) return -E_FINV;
+       if (strlen(filename) >= 100) return -E_FINV;
        snprintf(header->name, 100, "%s", filename);
-       return EOK;
+       return E_OK;
 }
 
 int Tar::setSize(const unsigned long long size, TarHeader *header) {
        if (header == NULL) header = &defaultHeader;
        sprintf(header->size, "%011llo", size);
-       return EOK;
+       return E_OK;
 }
 
 int Tar::writeHeader(const TarHeader *header) {
        if (header == NULL) header = &defaultHeader;
        stream.write((char *) header, sizeof(TarHeader));
-       if (stream.fail()) return -EIO;
-       return EOK;
+       if (stream.fail()) return -E_IO;
+       return E_OK;
 }
 
 int Tar::writeBuffer(const char *data, size_t len) {
        stream.write(data, len);
-       if (stream.fail()) return -EIO;
-       return EOK;
+       if (stream.fail()) return -E_IO;
+       return E_OK;
 }
 
 int Tar::pad() {
        long pos = stream.tellp();
-       if (pos < 0) return -EIO;
+       if (pos < 0) return -E_IO;
        long left = 512 - (pos % 512);
        for (int i = 0; i < left; i++)
                stream.put(0);
-       if (stream.fail()) return -EIO;
-       return EOK;
+       if (stream.fail()) return -E_IO;
+       return E_OK;
 }
 
 int Tar::readIndex() {
        TarHeader *header;
        stream.seekg(ios_base::beg);
-       for (int i = 0; i < index.size(); i++) {
+       for (unsigned int i = 0; i < index.size(); i++) {
                delete index.back().header;
                index.pop_back();
        }
@@ -187,8 +187,8 @@ int Tar::readIndex() {
                /* Read header */
                header = new TarHeader();
                stream.read((char *) header, sizeof(TarHeader));
-               if (stream.eof()) return -EEOF;
-               if (stream.fail()) return -EIO;
+               if (stream.eof()) return -E_EOF;
+               if (stream.fail()) return -E_IO;
 
                /* Check for zero header */
                char *begin = (char *) header, *end = begin+sizeof(TarHeader);
@@ -201,7 +201,7 @@ int Tar::readIndex() {
 
                /* Check checksum */
                int err = verifyChecksum(header);
-               if (err != EOK) return err;
+               if (err != E_OK) return err;
 
                /* Push entry */
                index.push_back(Entry(header, stream.tellg()));
@@ -213,14 +213,14 @@ int Tar::readIndex() {
                stream.seekg(offset, ios_base::cur);
        }
        stream.clear();
-       return EOK;
+       return E_OK;
 }
 
 int Tar::get(const char *filename, char **dataptr) {
        Entry e;
        int err;
        err = getEntry(filename, e);
-       if (err != EOK) return err;
+       if (err != E_OK) return err;
        
        /* Alloc space for buffer */
        unsigned long long size;
@@ -231,16 +231,16 @@ int Tar::get(const char *filename, char **dataptr) {
        /* Read data */
        stream.seekg(e.position, ios_base::beg);
        stream.read(buffer, size);
-       if (stream.fail()) return -EIO;
+       if (stream.fail()) return -E_IO;
        buffer[size] = 0;
-       return EOK;
+       return E_OK;
 }
 
 int Tar::getFile(const char *dest, const char *filename) {
        Entry e;
        int err;
        err = getEntry(filename, e);
-       if (err != EOK) return err;
+       if (err != E_OK) return err;
        
        /* Read data size */
        unsigned long long size;
@@ -249,29 +249,29 @@ int Tar::getFile(const char *dest, const char *filename) {
        /* Copy data */
        stream.seekg(e.position, ios_base::beg);
        ofstream out(dest, ios::out);
-       if (!out.is_open()) return -EIO;
+       if (!out.is_open()) return -E_IO;
        char buffer[BUFSIZE];
        while (size > 0) {
                int chunk = (size < BUFSIZE) ? size : BUFSIZE;
                stream.read(buffer, chunk);
-               if (stream.fail()) return -EIO;
+               if (stream.fail()) return -E_IO;
                out.write(buffer, chunk);
-               if (out.fail()) return -EIO;
+               if (out.fail()) return -E_IO;
                size -= chunk;
        }
        out.close();
-       return EOK;
+       return E_OK;
 }
 
 int Tar::getEntry(const char *filename, Entry &entry) {
-       for (int i = 0; i < index.size(); i++) {
+       for (unsigned int i = 0; i < index.size(); i++) {
                Entry &e = index[i];
                if (strcmp(e.name, filename) == 0) {
                        entry = e;
-                       return EOK;
+                       return E_OK;
                }
        }
-       return -ENOTFOUND;
+       return -E_NOTFOUND;
 }
                
 const string Tar::error(int err) { 
diff --git a/tar.h b/tar.h
index 822ff01d6bc6ce543875307e8280363aeedccce7..734808c0af3c03d49bf52dca9f8f46a70b9aacb5 100644 (file)
--- a/tar.h
+++ b/tar.h
@@ -28,12 +28,12 @@ using namespace std;
 
 class Tar {
        enum {
-               EOK = 0,
-               EFINV = 1,
-               EIO = 2,
-               ENOTFOUND = 3,
-               EEOF = 4,
-               ECHKSUM = 5,
+               E_OK = 0,
+               E_FINV = 1,
+               E_IO = 2,
+               E_NOTFOUND = 3,
+               E_EOF = 4,
+               E_CHKSUM = 5,
                __LAST
        };