gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/rtmp r9735: minor cleanup, write the whole


From: rob
Subject: [Gnash-commit] /srv/bzr/gnash/rtmp r9735: minor cleanup, write the whole file.
Date: Sat, 15 Nov 2008 10:09:19 -0700
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9735
committer: address@hidden
branch nick: rtmp
timestamp: Sat 2008-11-15 10:09:19 -0700
message:
  minor cleanup, write the whole file.
modified:
  libnet/diskstream.cpp
  libnet/http.cpp
=== modified file 'libnet/diskstream.cpp'
--- a/libnet/diskstream.cpp     2008-11-15 03:17:57 +0000
+++ b/libnet/diskstream.cpp     2008-11-15 17:09:19 +0000
@@ -485,25 +485,38 @@
 {
 //    GNASH_REPORT_FUNCTION;
        //state_e     _state;
+    const char *state_str[] = {
+       "NO_STATE",
+       "PLAY",
+       "PREVIEW",
+       "THUMBNAIL",
+       "PAUSE",
+       "SEEK",
+       "UPLOAD",
+       "MULTICAST",
+       "DONE"
+    };
+    
+    cerr << "State is \"" << state_str[_state] << "\"" << endl;
     cerr << "Filespec is \"" << _filespec << "\"" << endl;
-       cerr << "Disk file descriptor is fd #" << _filefd << endl;
-       cerr << "Network file descritor is fd #" << _netfd << endl;
-       cerr << "File size is " <<  _filesize << endl;
-       cerr << "Memory Page size is " << _pagesize << endl;
-       cerr << "Memory Offset is " << _offset << endl;
-       
-       // dump timing related data
-       struct timespec now;
-       clock_gettime (CLOCK_REALTIME, &now);    
-       double time = ((now.tv_sec - _last_access.tv_sec) + ((now.tv_nsec - 
_last_access.tv_nsec)/1e9));
-       
-       cerr << "Time since last access:  " << fixed << ((now.tv_sec - 
_last_access.tv_sec) + ((now.tv_nsec - _last_access.tv_nsec)/1e9)) << " seconds 
ago." << endl;
-       
+    cerr << "Disk file descriptor is fd #" << _filefd << endl;
+    cerr << "Network file descritor is fd #" << _netfd << endl;
+    cerr << "File size is " <<  _filesize << endl;
+    cerr << "Memory Page size is " << _pagesize << endl;
+    cerr << "Memory Offset is " << _offset << endl;
+    
+    // dump timing related data
+    struct timespec now;
+    clock_gettime (CLOCK_REALTIME, &now);    
+    double time = ((now.tv_sec - _last_access.tv_sec) + ((now.tv_nsec - 
_last_access.tv_nsec)/1e9));
+    
+    cerr << "Time since last access:  " << fixed << ((now.tv_sec - 
_last_access.tv_sec) + ((now.tv_nsec - _last_access.tv_nsec)/1e9)) << " seconds 
ago." << endl;
+    
 #ifdef USE_STATS_CACHE
-       cerr << "Time since first access: " << fixed <<
-           ((_last_access.tv_sec - _first_access.tv_sec) + 
((_last_access.tv_nsec - _first_access.tv_nsec)/1e9))
-            << " seconds lifespan."
-            << endl;
+    cerr << "Time since first access: " << fixed <<
+       ((_last_access.tv_sec - _first_access.tv_sec) + ((_last_access.tv_nsec 
- _first_access.tv_nsec)/1e9))
+        << " seconds lifespan."
+        << endl;
 #endif
     
 }

=== modified file 'libnet/http.cpp'
--- a/libnet/http.cpp   2008-11-15 03:17:57 +0000
+++ b/libnet/http.cpp   2008-11-15 17:09:19 +0000
@@ -1421,35 +1421,42 @@
            filespec += "index.html";
        }
 
+       // See if the file is in the cache and already opened.
        DiskStream *filestream = cache.findFile(www.getFilespec());
        if (filestream) {
-           cerr << "FIXME: found file!" << endl;
+           cerr << "FIXME: found file in cache!" << endl;
        } else {
            filestream = new DiskStream;
        }
        
        filestream->open(filespec);
-       boost::uint8_t *ptr = filestream->loadChunk();
        string response = cache.findResponse(www.getFilespec());
        if (response.empty()) {
-       www.clearHeader();
-       const stringstream &ss = www.formatHeader(filestream->getFileSize(), 
HTTP::LIFE_IS_GOOD);
-//     cerr << "Size = " << ss.str().size() << "       " << ss.str() << endl;  
-//     string body = ss.str();
-//     cerr << "Body Size = " << body.size() << endl;
-//     body.insert(ss.str().size(), (char *)filestream.get(), 
filestream.getFileSize());
-//     cerr << "Body Size = " << body.size() << endl
-//          << body << endl;
+           www.clearHeader();
+           const stringstream &ss = 
www.formatHeader(filestream->getFileSize(), HTTP::LIFE_IS_GOOD);
+//         cerr << "Size = " << ss.str().size() << "   " << ss.str() << endl;  
+//         string body = ss.str();
+//         cerr << "Body Size = " << body.size() << endl;
+//         body.insert(ss.str().size(), (char *)filestream.get(), 
filestream.getFileSize());
+//         cerr << "Body Size = " << body.size() << endl
+//              << body << endl;
 //     //      cerr << "Size = " << ss.str().size() << "       " << ss.str() 
<< endl;
 //     www.writeNet(args->netfd, (boost::uint8_t *)body.c_str(), body.size());
-       www.writeNet(args->netfd, (boost::uint8_t *)www.getHeader().c_str(), 
www.getHeader().size());
-       cache.addResponse(www.getFilespec(), www.getHeader());
+           www.writeNet(args->netfd, (boost::uint8_t 
*)www.getHeader().c_str(), www.getHeader().size());
+           cache.addResponse(www.getFilespec(), www.getHeader());
        } else {
 //         cerr << "FIXME hit: " << www.getFilespec() << endl;
            www.writeNet(args->netfd, (boost::uint8_t *)response.c_str(), 
response.size());
        }       
 
-       www.writeNet(args->netfd, filestream->get(), filestream->getFileSize());
+       size_t filesize = filestream->getFileSize();
+       size_t bytes_read = 0;
+       int ret;
+       do {
+           boost::uint8_t *ptr = filestream->loadChunk();
+           ret = www.writeNet(args->netfd, filestream->get(), 
filestream->getPagesize());
+           bytes_read += ret;
+       } while (bytes_read <= filesize);
        cache.addFile(www.getFilespec(), filestream);
        log_debug("http_handler all done now finally...");
 //     cache.dump();
@@ -1461,56 +1468,19 @@
            struct stat st;
            int filefd;
            size_t ret;
-#ifdef USE_STATISTICS
-           struct timespec start;
-           clock_gettime (CLOCK_REALTIME, &start);
-#endif
            if (stat(filespec.c_str(), &st) == 0) {
                filefd = ::open(filespec.c_str(), O_RDONLY);
                log_debug (_("File \"%s\" is %lld bytes in size, disk fd #%d"), 
filespec,
                           st.st_size, filefd);
-               do {
-                   boost::shared_ptr<amf::Buffer> buf(new amf::Buffer);
-                   ret = read(filefd, buf->reference(), buf->size());
-                   if (ret == 0) { // the file is done
-                       break;
-                   }
-                   if (ret != buf->size()) {
-                       buf->resize(ret);
-                       log_debug("Got last data block from disk file, size 
%d", buf->size());
-                   }
-                   log_debug("Read %d bytes from %s.", ret, filespec);
-#if 0
-                   hand->pushout(buf);
-                   hand->notifyout();
-#else
-                   // Don't bother with the outgoing que
-                   if (ret > 0) {
-                       ret = hand->writeNet(buf);
-                   }
-#endif
-               } while(ret > 0);
-               log_debug("Done transferring %s to net fd #%d",
-                         filespec, args->netfd);
-               ::close(filefd); // close the disk file
+               boost::shared_ptr<amf::Buffer> buf(new amf::Buffer);
+               log_debug("Done transferring %s to net fd #%d", filespec, 
args->netfd);
+
                // See if this is a persistant connection
 //             if (!www.keepAlive()) {
 //                 log_debug("Keep-Alive is off", www.keepAlive());
 // //              hand->closeConnection();
 //             }
-#ifdef USE_STATISTICS
-               struct timespec end;
-               clock_gettime (CLOCK_REALTIME, &end);
-               log_debug("Read %d bytes from \"%s\" in %f seconds",
-                         st.st_size, filespec,
-                         (float)((end.tv_sec - start.tv_sec) + ((end.tv_nsec - 
start.tv_nsec)/1e9)));
-#endif
            }
-
-//         memset(args->filespec, 0, 256);
-//         memcpy(->filespec, filespec.c_str(), filespec.size());
-//         boost::thread sendthr(boost::bind(&stream_thread, args));
-//         sendthr.join();
        }
 #endif
        


reply via email to

[Prev in Thread] Current Thread [Next in Thread]