Changeset 255


Ignore:
Timestamp:
07/01/09 17:05:54 (3 years ago)
Author:
antonbatenev.ya.ru
Message:

Исправление поведения при ошибке парсинга ответа синхронизации (дополнительно см. r252, r253)

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • tags/1.0a/webservice.cpp

    r252 r255  
    449449 
    450450        seed = 0; 
    451         row_version.Rating   = GetNextBlock(&data, "<lastRatingRowVersion>",   "</lastRatingRowVersion>",   seed); 
    452         seed = 0; 
    453         row_version.Message  = GetNextBlock(&data, "<lastForumRowVersion>",    "</lastForumRowVersion>",    seed); 
    454         seed = 0; 
    455         row_version.Moderate = GetNextBlock(&data, "<lastModerateRowVersion>", "</lastModerateRowVersion>", seed); 
     451        QString lastRatingRowVersion   = GetNextBlock(&data, "<lastRatingRowVersion>",   "</lastRatingRowVersion>",   seed); 
     452        seed = 0; 
     453        QString lastForumRowVersion    = GetNextBlock(&data, "<lastForumRowVersion>",    "</lastForumRowVersion>",    seed); 
     454        seed = 0; 
     455        QString lastModerateRowVersion = GetNextBlock(&data, "<lastModerateRowVersion>", "</lastModerateRowVersion>", seed); 
    456456 
    457457        // проверка ошибок получения версий строк 
    458458        // подавлять ошибки сбросом в значение по умолчанию ("AAAAAAAAAAA=") оказалось неправильно 
    459459        // подробнее см. http://www.rsdn.ru/forum/janus/3449147.1.aspx 
    460         if (row_version.Rating.length() == 0) 
    461                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastRatingRowVersion>"); 
    462         if (row_version.Message.length() == 0) 
    463                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastForumRowVersion>"); 
    464         if (row_version.Moderate.length() == 0) 
    465                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastModerateRowVersion>"); 
     460        // выбрасывать ошибку (r252) тоже оказалось неправильно - для некоторых форумов не приходят ни рейтинги ни модерилки 
     461        if (lastRatingRowVersion.length() != 0) 
     462                row_version.Rating = lastRatingRowVersion; 
     463        if (lastForumRowVersion.length() != 0) 
     464                row_version.Message = lastForumRowVersion; 
     465        if (lastModerateRowVersion.length() != 0) 
     466                row_version.Moderate = lastModerateRowVersion; 
    466467 
    467468        return ""; 
  • tags/1.0b/version.h

    r253 r255  
    2020 * \brief Дата билда (заменяется автоматически при каждом билде в version.h, что и приводит к смене номера ревизии) 
    2121 */ 
    22 #define AVALON_DATE "Втр Июн 30 22:37:55 MSD 2009" 
     22#define AVALON_DATE "Срд Июл  1 17:02:42 MSD 2009" 
    2323 
    2424#endif 
  • tags/1.0b/webservice.cpp

    r253 r255  
    472472 
    473473        seed = 0; 
    474         row_version.Rating   = getNextBlock(&data, "<lastRatingRowVersion>",   "</lastRatingRowVersion>",   seed); 
    475         seed = 0; 
    476         row_version.Message  = getNextBlock(&data, "<lastForumRowVersion>",    "</lastForumRowVersion>",    seed); 
    477         seed = 0; 
    478         row_version.Moderate = getNextBlock(&data, "<lastModerateRowVersion>", "</lastModerateRowVersion>", seed); 
     474        QString lastRatingRowVersion   = getNextBlock(&data, "<lastRatingRowVersion>",   "</lastRatingRowVersion>",   seed); 
     475        seed = 0; 
     476        QString lastForumRowVersion    = getNextBlock(&data, "<lastForumRowVersion>",    "</lastForumRowVersion>",    seed); 
     477        seed = 0; 
     478        QString lastModerateRowVersion = getNextBlock(&data, "<lastModerateRowVersion>", "</lastModerateRowVersion>", seed); 
    479479 
    480480        // проверка ошибок получения версий строк 
    481481        // подавлять ошибки сбросом в значение по умолчанию ("AAAAAAAAAAA=") оказалось неправильно 
    482482        // подробнее см. http://www.rsdn.ru/forum/janus/3449147.1.aspx 
    483         if (row_version.Rating.length() == 0) 
    484                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastRatingRowVersion>"); 
    485         if (row_version.Message.length() == 0) 
    486                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastForumRowVersion>"); 
    487         if (row_version.Moderate.length() == 0) 
    488                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastModerateRowVersion>"); 
     483        // выбрасывать ошибку (r253) тоже оказалось неправильно - для некоторых форумов не приходят ни рейтинги ни модерилки 
     484        if (lastRatingRowVersion.length() != 0) 
     485                row_version.Rating = lastRatingRowVersion; 
     486        if (lastForumRowVersion.length() != 0) 
     487                row_version.Message = lastForumRowVersion; 
     488        if (lastModerateRowVersion.length() != 0) 
     489                row_version.Moderate = lastModerateRowVersion; 
    489490 
    490491        return ""; 
  • trunk/version.h

    r254 r255  
    2020 * \brief Дата билда (заменяется автоматически при каждом билде в version.h, что и приводит к смене номера ревизии) 
    2121 */ 
    22 #define AVALON_DATE "Втр Июн 30 22:52:46 MSD 2009" 
     22#define AVALON_DATE "Срд Июл  1 17:02:50 MSD 2009" 
    2323 
    2424#endif 
  • trunk/webservice.cpp

    r253 r255  
    500500 
    501501        seed = 0; 
    502         row_version.Rating   = getNextBlock(&data, "<lastRatingRowVersion>",   "</lastRatingRowVersion>",   seed); 
    503         seed = 0; 
    504         row_version.Message  = getNextBlock(&data, "<lastForumRowVersion>",    "</lastForumRowVersion>",    seed); 
    505         seed = 0; 
    506         row_version.Moderate = getNextBlock(&data, "<lastModerateRowVersion>", "</lastModerateRowVersion>", seed); 
     502        QString lastRatingRowVersion   = getNextBlock(&data, "<lastRatingRowVersion>",   "</lastRatingRowVersion>",   seed); 
     503        seed = 0; 
     504        QString lastForumRowVersion    = getNextBlock(&data, "<lastForumRowVersion>",    "</lastForumRowVersion>",    seed); 
     505        seed = 0; 
     506        QString lastModerateRowVersion = getNextBlock(&data, "<lastModerateRowVersion>", "</lastModerateRowVersion>", seed); 
    507507 
    508508        // проверка ошибок получения версий строк 
    509509        // подавлять ошибки сбросом в значение по умолчанию ("AAAAAAAAAAA=") оказалось неправильно 
    510510        // подробнее см. http://www.rsdn.ru/forum/janus/3449147.1.aspx 
    511         if (row_version.Rating.length() == 0) 
    512                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastRatingRowVersion>"); 
    513         if (row_version.Message.length() == 0) 
    514                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastForumRowVersion>"); 
    515         if (row_version.Moderate.length() == 0) 
    516                 return QString::fromUtf8("В ответе вебсервиса не найдено поле <lastModerateRowVersion>"); 
     511        // выбрасывать ошибку (r253) тоже оказалось неправильно - для некоторых форумов не приходят ни рейтинги ни модерилки 
     512        if (lastRatingRowVersion.length() != 0) 
     513                row_version.Rating = lastRatingRowVersion; 
     514        if (lastForumRowVersion.length() != 0) 
     515                row_version.Message = lastForumRowVersion; 
     516        if (lastModerateRowVersion.length() != 0) 
     517                row_version.Moderate = lastModerateRowVersion; 
    517518 
    518519        return ""; 
Note: See TracChangeset for help on using the changeset viewer.