Stefan Schuermans commited on 2011-10-24 21:29:34
              Showing 2 changed files, with 12 additions and 13 deletions.
            
| ... | ... | 
                      @@ -18,9 +18,10 @@ namespace Blinker {
                     | 
                  
| 18 | 18 | 
                        * @param[in] path path to file  | 
                    
| 19 | 19 | 
                        */  | 
                    
| 20 | 20 | 
                        File::File(const std::string &path):  | 
                    
| 21 | 
                        - m_path(path),  | 
                    |
| 22 | 
                        - m_lastCheck(Time::now())  | 
                    |
| 21 | 
                        + m_path(path)  | 
                    |
| 23 | 22 | 
                         {
                       | 
                    
| 23 | 
                        + // get modification time  | 
                    |
| 24 | 
                        + checkModified();  | 
                    |
| 24 | 25 | 
                        }  | 
                    
| 25 | 26 | 
                         | 
                    
| 26 | 27 | 
                        /**  | 
                    
| ... | ... | 
                      @@ -38,22 +39,20 @@ const std::string & File::getPath()  | 
                  
| 38 | 39 | 
                        */  | 
                    
| 39 | 40 | 
                        bool File::checkModified()  | 
                    
| 40 | 41 | 
                         {
                       | 
                    
| 41 | 
                        - /* get current time before getting modification time  | 
                    |
| 42 | 
                        - for not missing any modification */  | 
                    |
| 43 | 
                        - Time now = Time::now();  | 
                    |
| 44 | 
                        -  | 
                    |
| 45 | 42 | 
                        // get modification/change times  | 
                    
| 46 | 43 | 
                        struct stat s;  | 
                    
| 47 | 44 | 
                        if (stat(m_path.c_str(), &s))  | 
                    
| 48 | 45 | 
                        return false; // cannot stat -> silently ignore  | 
                    
| 49 | 
                        - Time modified(s.st_mtime);  | 
                    |
| 50 | 
                        - Time changed(s.st_ctime);  | 
                    |
| 46 | 
                        + Time modifyTime(s.st_mtime);  | 
                    |
| 47 | 
                        + Time changeTime(s.st_ctime);  | 
                    |
| 48 | 
                        + if (changeTime > modifyTime) // treat change same way as modify  | 
                    |
| 49 | 
                        + modifyTime = changeTime;  | 
                    |
| 51 | 50 | 
                         | 
                    
| 52 | 
                        - // has file been modified/changed since last check  | 
                    |
| 53 | 
                        - bool mod = modified >= m_lastCheck || changed >= m_lastCheck;  | 
                    |
| 51 | 
                        + // consider file modified if modify time changed since last check  | 
                    |
| 52 | 
                        + bool mod = modifyTime > m_lastModifyTime;  | 
                    |
| 54 | 53 | 
                         | 
                    
| 55 | 
                        - // remember "now" as last check time  | 
                    |
| 56 | 
                        - m_lastCheck = now;  | 
                    |
| 54 | 
                        + // remember new modify time  | 
                    |
| 55 | 
                        + m_lastModifyTime = modifyTime;  | 
                    |
| 57 | 56 | 
                         | 
                    
| 58 | 57 | 
                        return mod;  | 
                    
| 59 | 58 | 
                        }  | 
                    
| ... | ... | 
                      @@ -37,7 +37,7 @@ public:  | 
                  
| 37 | 37 | 
                         | 
                    
| 38 | 38 | 
                        protected:  | 
                    
| 39 | 39 | 
                        std::string m_path; ///< path to file  | 
                    
| 40 | 
                        - Time m_lastCheck; ///< last time modification time was checked  | 
                    |
| 40 | 
                        + Time m_lastModifyTime; ///< last known modification time was checked  | 
                    |
| 41 | 41 | 
                        }; // class File  | 
                    
| 42 | 42 | 
                         | 
                    
| 43 | 43 | 
                        } // namespace Blinker  | 
                    
| 44 | 44 |