From 0ae2c4d8ee89a207f7357df16414daabc9f5c250 Mon Sep 17 00:00:00 2001
From: jsclose <jsclose@umich.edu>
Date: Tue, 6 Feb 2018 17:06:46 -0500
Subject: [PATCH] refactoring with utils

---
 crawler.exe               | Bin 100288 -> 91952 bytes
 crawler/crawler.h         |   4 +-
 crawler/spider.cpp        |  67 +++++++++++++---------------
 crawler/spider.h          |   6 +--
 crawlerOutput/example.txt |  64 +++++++++++++++++++++++++++
 main.cpp                  |   1 +
 util/util.h               |  89 ++++++++++++++++++++++++++++++++++++++
 7 files changed, 188 insertions(+), 43 deletions(-)
 create mode 100644 crawlerOutput/example.txt
 create mode 100644 util/util.h

diff --git a/crawler.exe b/crawler.exe
index 667f57e74c03682722b27b595c47d8f0756ebdfb..3897f9acc8dad78397e8b3f699470a56c3e2c8eb 100755
GIT binary patch
literal 91952
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

literal 100288
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%0AG)?w;PD<pqbr0<jU{$u~gm9l&Yw+`xSfC
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

diff --git a/crawler/crawler.h b/crawler/crawler.h
index 3ec2cad..4de20d1 100644
--- a/crawler/crawler.h
+++ b/crawler/crawler.h
@@ -4,7 +4,7 @@
 #include "spider.h"
 #include<string>
 #include "../ProducerConsumerQueue.h"
-#include "CrawlerStatistics.h"
+//#include "CrawlerStatistics.h"
 /*
  *
  */
@@ -28,7 +28,7 @@ private:
     vector<Spider*> spiders;
     ProducerConsumerQueue<string> *urlFrontier;
     ProducerConsumerQueue<int> *fileQueue;
-    CrawlerStatistics housekeeper;
+    //CrawlerStatistics housekeeper;
     string mode;
 
 };
diff --git a/crawler/spider.cpp b/crawler/spider.cpp
index cd6ecae..4bf8c7f 100644
--- a/crawler/spider.cpp
+++ b/crawler/spider.cpp
@@ -7,6 +7,10 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include "../util/util.h"
+
+
+
 
 string Spider::getUrl()
 {
@@ -19,14 +23,23 @@ void Spider::FuncToRun()
     std::cout << "Spider is crawling" << endl;
     bool cond = true;
 
+
     while( cond )
         {
+
         string currentUrl  = getUrl();
-        if ( request( currentUrl ) )
+        char * fileMap;
+        if ( request( currentUrl , fileMap ) )
             {
             // markURLSeen( currentUrl );
-            // writeHTMLtoDisk( );
-            // addHTMLToQueue( );
+                string HARDCODEDLOCATION = "../crawlerOutput/" + currentUrl;
+            int fd = writeFileToDisk(fileMap , HARDCODEDLOCATION );
+                //Write to disk successful
+                if( fd !=-1 )
+                {
+                    addFDToQueue( fd  );
+
+                }
                 cond = false;
             }
         else
@@ -37,50 +50,28 @@ void Spider::FuncToRun()
     }
 
 
-bool Spider::request( string url )
+bool Spider::request( string url , char* fileMap)
     {
-        char buf[100];
 
     if ( this->mode == "local" )
-    {
-        ifstream inFile;
-        string in;
-        inFile.open(url);
-        if ( !inFile )
-        {
-            cout << "Unable to open file";
-            exit(1); // terminate with error////
-        }
-        int i = 0;
-        while (i < 100 && inFile >> buf[i])
         {
-                i++;
+            fileMap =  getFileMap( url );
+            if (fileMap != nullptr )
+                return true;
         }
-
-        inFile.close();
-        int file = writeFileToDisk(buf, 100);
-        fileQueue->Push(file);
-        return true;
-    }
     return false;
     }
 
-int Spider::writeFileToDisk( char * fileContents, size_t fileSize)
+int Spider::writeFileToDisk( char * fileContents , string locationOnDisk)
 {
-    int fd = creat("/Users/benbergkamp/Desktop/398/eecs398-search/test.txt", S_IRWXU);
-    ssize_t bytes_written = 0;
-    if(fd != -1)
-    {
-        bytes_written = write(fd, fileContents, fileSize);
-    } else
-    {
-        cout << "ERROR CREATING FILE\n";
-    }
-    if(bytes_written != 100)
-    {
-        cout << "ERROR: Only " << bytes_written << " bytes written\n";
-    }
 
-    return fd;
+    return writeToNewFileToLocation( fileContents, locationOnDisk );
+
+}
+
+
+void Spider::addFDToQueue( int fileDescriptor )
+{
+    fileQueue->Push( fileDescriptor );
 
 }
\ No newline at end of file
diff --git a/crawler/spider.h b/crawler/spider.h
index 4490a2d..bbfd42b 100644
--- a/crawler/spider.h
+++ b/crawler/spider.h
@@ -26,13 +26,13 @@ public:
     //Makes request to given url
     // if successful, writes file to disk, stores location to memeber value
     // else return false and error information, retry if necessary
-    bool request( string url );
+    bool request( string url , char* fileMap);
 
     //Where to write to disk? What type of data are we reading in?
-    int writeFileToDisk(char * fileContents, size_t fileSize );
+    int writeFileToDisk( char * fileContents , string locationOnDisk);
 
     //Adds location
-    void addHTMLToQueue();
+    void addFDToQueue( int fileDescriptor );
 
 
     void markURLSeen( string URL );
diff --git a/crawlerOutput/example.txt b/crawlerOutput/example.txt
new file mode 100644
index 0000000..de2e0e3
--- /dev/null
+++ b/crawlerOutput/example.txt
@@ -0,0 +1,64 @@
+<!DOCTYPE
+html>
+<html>
+<head>
+<!--
+HTML
+Codes
+by
+Quackit.com
+-->
+<title>
+Food
+store
+is
+here</title>
+<meta
+name="viewport"
+content="width=device-width,
+initial-scale=1">
+<meta
+name="keywords"
+content="store
+food
+dinner
+lunch">
+<meta
+name="description"
+content="The
+food
+store
+sells
+cat
+food
+for
+dinner,
+lunch,
+and
+breakfast.">
+<style>
+body
+{background-color:#ffffff;background-repeat:no-repeat;background-position:top
+left;background-attachment:fixed;}
+h1{font-family:Arial,
+sans-serif;color:#000000;background-color:#ffffff;}
+p
+{font-family:Georgia,
+serif;font-size:14px;font-style:normal;font-weight:normal;color:#000000;background-color:#ffffff;}
+</style>
+</head>
+<body>
+<h1>COme
+shop
+Come
+shop
+at
+our
+Store</h1>
+<p>Please
+come
+to
+our
+store!</p>
+</body>
+</html>
diff --git a/main.cpp b/main.cpp
index a7b2f0a..1ef7b1b 100644
--- a/main.cpp
+++ b/main.cpp
@@ -13,6 +13,7 @@
 #include <string>
 #include "ProducerConsumerQueue.h"
 #include "crawler/spider.h"
+//#include "crawler/CrawlerStatistics.h"
 
 
 #define PATH_TO_BLACKLIST = '/bin/blacklist.txt'
diff --git a/util/util.h b/util/util.h
new file mode 100644
index 0000000..42910c9
--- /dev/null
+++ b/util/util.h
@@ -0,0 +1,89 @@
+//
+// Created by Jake Close on 2/6/18.
+//
+
+#pragma once
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <iostream>
+using namespace std;
+
+
+size_t FileSize( int f )
+{
+    struct stat fileInfo;
+    fstat( f, &fileInfo );
+    return fileInfo.st_size;
+}
+
+
+
+/*
+ * Takes filename as input, maps file into character pointer
+ * If cannot open file, returns a nullptr
+ *
+ *
+ */
+
+char * getFileMap( string fileName )
+{
+    int f = open( fileName.c_str() , O_RDONLY );
+    if ( f != -1 )
+        {
+        size_t fileSize = FileSize(f);
+        char *map = (char *) mmap(nullptr, fileSize, PROT_READ, MAP_PRIVATE, f, 0);
+            if ( map != MAP_FAILED ){
+                return map;
+            }
+        }
+    return nullptr;
+}
+/*
+ * Takes integer file descriptor, returns char* map of file
+ *
+ */
+
+char * getFileMap( int fileDescriptor )
+{
+    if ( fileDescriptor != -1 )
+    {
+        size_t fileSize = FileSize(fileDescriptor);
+        char *map = (char *) mmap(nullptr, fileSize, PROT_READ, MAP_PRIVATE, fileDescriptor, 0);
+        if ( map != MAP_FAILED ){
+            return map;
+        }
+    }
+    return nullptr;
+}
+
+
+/*
+ *
+ * Takes a point to start of a file and string of a location on disk
+ * writes filemap to disk at location, and returns the file descriptor to the new file
+ */
+
+
+int writeToNewFileToLocation( char * fileContents , string locationOnDisk)
+{
+    int fileSize = strlen( fileContents );
+
+    int fd = creat( locationOnDisk.c_str() , S_IRWXU );
+    ssize_t bytes_written = 0;
+    if( fd != -1 )
+        bytes_written = write( fd, fileContents, fileSize );
+    else
+        cout << "ERROR CREATING FILE\n";
+
+    if( bytes_written != fileSize )
+        cout << "ERROR: Only " << bytes_written << " bytes written\n";
+
+
+    return fd;
+
+}
\ No newline at end of file
-- 
GitLab