summaryrefslogtreecommitdiff
path: root/protocols/YAMN/src/filterplugin.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2012-11-28 18:45:54 +0000
committerGeorge Hazan <george.hazan@gmail.com>2012-11-28 18:45:54 +0000
commita70382b0e8bed265a1d314d9f6aae8f2dd48d20b (patch)
tree9a99a073c0d7b9483dab51a0eebf04a9119f61ed /protocols/YAMN/src/filterplugin.cpp
parent68fb5b69ea8403a3f9dcb70b3133eb10e1711000 (diff)
ex-protos moved to the Plugins folder
git-svn-id: http://svn.miranda-ng.org/main/trunk@2545 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/YAMN/src/filterplugin.cpp')
-rw-r--r--protocols/YAMN/src/filterplugin.cpp204
1 files changed, 0 insertions, 204 deletions
diff --git a/protocols/YAMN/src/filterplugin.cpp b/protocols/YAMN/src/filterplugin.cpp
deleted file mode 100644
index 8f61003293..0000000000
--- a/protocols/YAMN/src/filterplugin.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * YAMN plugin export functions for filtering
- *
- * (c) majvan 2002-2004
- */
-
-#include "yamn.h"
-
-//--------------------------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------------------------
-
-PYAMN_FILTERPLUGINQUEUE FirstFilterPlugin=NULL;
-
-INT_PTR RegisterFilterPluginSvc(WPARAM,LPARAM);
-
-//Removes plugin from queue and deletes its structures
-INT_PTR UnregisterFilterPlugin(HYAMNFILTERPLUGIN Plugin);
-
-INT_PTR UnregisterFilterPluginSvc(WPARAM wParam,LPARAM lParam);
-
-//Removes all filter plugins
-INT_PTR UnregisterFilterPlugins();
-
-INT_PTR FilterMailSvc(WPARAM,LPARAM);
-
-//Sets imported functions for an plugin and therefore it starts plugin to be registered and running
-// Plugin- plugin, which wants to set its functions
-// Importance- importance of plugin (see m_filterplugin.h)
-// YAMNFilterFcn- pointer to imported functions
-// YAMNfilterFcnVer- version of YAMN_FILTERIMPORTFCN, use YAMN_FILTERIMPORTFCNVERSION
-// returns nonzero if success
-int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin,DWORD Importance,PYAMN_FILTERIMPORTFCN YAMNFilterFcn,DWORD YAMNFilterFcnVer);
-
-struct CExportedFunctions FilterPluginExportedFcn[]=
-{
- {YAMN_SETFILTERPLUGINFCNIMPORTID,(void *)SetFilterPluginFcnImportFcn},
-};
-
-struct CExportedServices FilterPluginExportedSvc[]=
-{
- {MS_YAMN_REGISTERFILTERPLUGIN,RegisterFilterPluginSvc},
- {MS_YAMN_UNREGISTERFILTERPLUGIN,UnregisterFilterPluginSvc},
-};
-
-//--------------------------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------------------------
-
-INT_PTR RegisterFilterPluginSvc(WPARAM wParam,LPARAM lParam)
-{
- PYAMN_FILTERREGISTRATION Registration=(PYAMN_FILTERREGISTRATION)wParam;
- HYAMNFILTERPLUGIN Plugin;
-
- if (lParam!=YAMN_FILTERREGISTRATIONVERSION)
- return 0;
- if ((Registration->Name==NULL) || (Registration->Ver==NULL))
- return NULL;
- if (NULL==(Plugin=new YAMN_FILTERPLUGIN))
- return NULL;
-
- Plugin->PluginInfo=Registration;
-
- Plugin->FilterFcn=NULL;
-
-#ifdef DEBUG_SYNCHRO
- DebugLog(SynchroFile,"::: YAMN- new filter registered: %0x (%s) :::\n",Plugin,Registration->Name);
-#endif
- return (INT_PTR)Plugin;
-}
-
-INT_PTR UnregisterFilterPlugin(HYAMNFILTERPLUGIN Plugin)
-{
- PYAMN_FILTERPLUGINQUEUE Parser,Found;
-
- if (FirstFilterPlugin->Plugin==Plugin)
- {
- Found=FirstFilterPlugin;
- FirstFilterPlugin=FirstFilterPlugin->Next;
- }
- else
- {
- for (Parser=FirstFilterPlugin;(Parser->Next!=NULL) && (Plugin!=Parser->Next->Plugin);Parser=Parser->Next);
- if (Parser->Next!=NULL)
- {
- Found=Parser->Next;
- Parser->Next=Parser->Next->Next;
- }
- else
- Found=NULL;
- }
- if (Found!=NULL)
- {
- if (Plugin->FilterFcn->UnLoadFcn!=NULL)
- Plugin->FilterFcn->UnLoadFcn((void *)0);
-
- delete Found->Plugin;
- delete Found;
-#ifdef DEBUG_SYNCHRO
- DebugLog(SynchroFile,"::: YAMN- filter %0x unregistered :::\n",Plugin);
-#endif
- }
- else
- return 0;
- return 1;
-}
-
-INT_PTR UnregisterFilterPluginSvc(WPARAM wParam,LPARAM lParam)
-{
- HYAMNFILTERPLUGIN Plugin=(HYAMNFILTERPLUGIN)wParam;
-
- EnterCriticalSection(&PluginRegCS);
- UnregisterFilterPlugin(Plugin);
- LeaveCriticalSection(&PluginRegCS);
- return 1;
-}
-
-INT_PTR UnregisterFilterPlugins()
-{
- EnterCriticalSection(&PluginRegCS);
-//We remove protocols from the protocol list
- while(FirstFilterPlugin!=NULL)
- UnregisterFilterPlugin(FirstFilterPlugin->Plugin);
- LeaveCriticalSection(&PluginRegCS);
- return 1;
-}
-
-int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin,DWORD Importance,PYAMN_FILTERIMPORTFCN YAMNFilterFcn,DWORD YAMNFilterFcnVer)
-{
- PYAMN_FILTERPLUGINQUEUE Parser,Previous;
-
- if (YAMNFilterFcnVer!=YAMN_FILTERIMPORTFCNVERSION)
- return 0;
- if (YAMNFilterFcn==NULL)
- return 0;
-
-#ifdef DEBUG_SYNCHRO
- DebugLog(SynchroFile,"::: YAMN- filter %0x import succeed :::\n",Plugin);
-#endif
- Plugin->Importance=Importance;
- Plugin->FilterFcn=YAMNFilterFcn;
-
- EnterCriticalSection(&PluginRegCS);
-//We add protocol to the protocol list
- for (Previous=NULL,Parser=FirstFilterPlugin;Parser!=NULL && Parser->Next!=NULL && Parser->Plugin->Importance<=Importance;Previous=Parser,Parser=Parser->Next);
- if (Previous==NULL) //insert to the beginnig of queue
- {
- FirstFilterPlugin=new YAMN_FILTERPLUGINQUEUE;
- FirstFilterPlugin->Plugin=Plugin;
- FirstFilterPlugin->Next=Parser;
- }
- else
- {
- Previous->Next=new YAMN_FILTERPLUGINQUEUE;
- Previous=Previous->Next; //leave previous, go to actual plugin
- Previous->Plugin=Plugin;
- Previous->Next=Parser; //and in actual plugin set, that next plugin is the one we insert in front of
- }
-
- LeaveCriticalSection(&PluginRegCS);
- return 1;
-}
-
-INT_PTR FilterMailSvc(WPARAM wParam,LPARAM lParam)
-{
- HACCOUNT Account=(HACCOUNT)wParam;
- HYAMNMAIL Mail=(HYAMNMAIL)lParam;
- PYAMN_FILTERPLUGINQUEUE ActualPlugin;
-
- EnterCriticalSection(&PluginRegCS);
-#ifdef DEBUG_SYNCHRO
- DebugLog(SynchroFile,"FilterMail:ActualAccountMsgsSO-write wait\n");
-#endif
- WaitToWriteFcn(Account->MessagesAccessSO);
-#ifdef DEBUG_SYNCHRO
- DebugLog(SynchroFile,"FilterMail:ActualAccountMsgsSO-write enter\n");
-#endif
- for (ActualPlugin=FirstFilterPlugin;ActualPlugin!=NULL;ActualPlugin=ActualPlugin->Next)
- {
- if (ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr!=NULL)
- {
-#ifdef DEBUG_SYNCHRO
- DebugLog(SynchroFile,"\tFiltering Mail, running plugin %0x to filter mail\n",ActualPlugin->Plugin);
-#endif
- ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr(Account,YAMN_ACCOUNTVERSION,Mail,YAMN_MAILVERSION);
-#ifdef DEBUG_SYNCHRO
- DebugLog(SynchroFile,"\tFiltering Mail done\n");
-#endif
- }
- }
- Mail->Flags|=YAMN_MSG_FILTERED;
-
-//Set mail flags according to spamlevel settings
- if ((Mail->Flags & YAMN_MSG_SPAMMASK) > YAMN_MSG_SPAML1)
- Mail->Flags=Mail->Flags & ~(YAMN_MSG_BROWSER | YAMN_MSG_POPUP | YAMN_MSG_SYSTRAY | YAMN_MSG_SOUND | YAMN_MSG_APP | YAMN_MSG_NEVENT);
- if (YAMN_MSG_SPAML(Mail->Flags,YAMN_MSG_SPAML3) || YAMN_MSG_SPAML(Mail->Flags,YAMN_MSG_SPAML4))
- Mail->Flags=Mail->Flags | (YAMN_MSG_AUTODELETE | YAMN_MSG_DELETEOK); //set message to delete
- if (YAMN_MSG_SPAML(Mail->Flags,YAMN_MSG_SPAML3))
- Mail->Flags=Mail->Flags & ~(YAMN_MSG_MEMDELETE); //set message not to delete it immidiatelly from memory
-#ifdef DEBUG_SYNCHRO
- DebugLog(SynchroFile,"FilterMail:ActualAccountMsgsSO-write done\n");
-#endif
- WriteDoneFcn(Account->MessagesAccessSO);
- LeaveCriticalSection(&PluginRegCS);
- return 1;
-}