From b61ba851da0157ace3bdfc1ebbf87156b0b76413 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Wed, 6 Jun 2012 08:58:27 +0000 Subject: protocols plugins moved to protocols git-svn-id: http://svn.miranda-ng.org/main/trunk@327 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/NewsAggregator/Src/Update.cpp | 147 ---------------------------------- 1 file changed, 147 deletions(-) delete mode 100644 plugins/NewsAggregator/Src/Update.cpp (limited to 'plugins/NewsAggregator/Src/Update.cpp') diff --git a/plugins/NewsAggregator/Src/Update.cpp b/plugins/NewsAggregator/Src/Update.cpp deleted file mode 100644 index f2f5ecf92a..0000000000 --- a/plugins/NewsAggregator/Src/Update.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/* -Copyright (C) 2012 Mataes - -This is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -This is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this file; see the file license.txt. If -not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. -*/ - -#include "common.h" - -// check if Feed is currently updating -BOOL ThreadRunning; -UPDATELIST *UpdateListHead = NULL; -UPDATELIST *UpdateListTail = NULL; - -// main auto-update timer -VOID CALLBACK timerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) -{ - // only run if it is not current updating and the auto update option is enabled - if (!ThreadRunning && !Miranda_Terminated()) - { - BOOL HaveUpdates = FALSE; - HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); - while (hContact != NULL) - { - if(IsMyContact(hContact)) - { - if (DBGetContactSettingDword(hContact, MODULE, "UpdateTime", 60)) - { - double diff = difftime(time(NULL), DBGetContactSettingDword(hContact, MODULE, "LastCheck", 0)); - if (diff >= DBGetContactSettingDword(hContact, MODULE, "UpdateTime", 60) * 60) - { - UpdateListAdd(hContact); - HaveUpdates = TRUE; - } - } - } - hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0); - } - if (!ThreadRunning && HaveUpdates) - mir_forkthread(UpdateThreadProc, NULL); - } -} - -// temporary timer for first run -// when this is run, it kill the old startup timer and create the permenant one above -VOID CALLBACK timerProc2(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) -{ - KillTimer(NULL, timerId); - ThreadRunning = FALSE; - - if (!Miranda_Terminated()) - { - CheckAllFeeds(0,0); - timerId = SetTimer(NULL, 0, 30000, (TIMERPROC)timerProc); - } -} - -void UpdateListAdd(HANDLE hContact) -{ - UPDATELIST *newItem; - - newItem = (UPDATELIST*)mir_alloc(sizeof(UPDATELIST)); - newItem->hContact = hContact; - newItem->next = NULL; - - WaitForSingleObject(hUpdateMutex, INFINITE); - - if (UpdateListTail == NULL) UpdateListHead = newItem; - else UpdateListTail->next = newItem; - UpdateListTail = newItem; - - ReleaseMutex(hUpdateMutex); -} - -HANDLE UpdateGetFirst() -{ - HANDLE hContact = NULL; - - WaitForSingleObject(hUpdateMutex, INFINITE); - - if (UpdateListHead != NULL) - { - UPDATELIST* Item = UpdateListHead; - - hContact = Item->hContact; - UpdateListHead = Item->next; - mir_free(Item); - - if (UpdateListHead == NULL) UpdateListTail = NULL; - } - - ReleaseMutex(hUpdateMutex); - - return hContact; -} - -void DestroyUpdateList(void) -{ - UPDATELIST *temp; - - WaitForSingleObject(hUpdateMutex, INFINITE); - - temp = UpdateListHead; - - // free the list one by one - while (temp != NULL) - { - UpdateListHead = temp->next; - mir_free(temp); - temp = UpdateListHead; - } - // make sure the entire list is clear - UpdateListTail = NULL; - - ReleaseMutex(hUpdateMutex); -} - -void UpdateThreadProc(LPVOID hWnd) -{ - WaitForSingleObject(hUpdateMutex, INFINITE); - if (ThreadRunning) - { - ReleaseMutex(hUpdateMutex); - return; - } - ThreadRunning = TRUE; // prevent 2 instance of this thread running - ReleaseMutex(hUpdateMutex); - - // update weather by getting the first station from the queue until the queue is empty - while (UpdateListHead != NULL && !Miranda_Terminated()) - CheckCurrentFeed(UpdateGetFirst()); - - // exit the update thread - ThreadRunning = FALSE; -} \ No newline at end of file -- cgit v1.2.3