← Back to team overview

linuxdcpp-team team mailing list archive

[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2986: merge two plugin hook types into single type; callback functions now have one additional paramete...

 

------------------------------------------------------------
revno: 2986
committer: cologic <ne5@xxxxxxxxxxx>
branch nick: dcplusplus
timestamp: Sat 2012-07-07 23:48:50 -0400
message:
  merge two plugin hook types into single type; callback functions now have one additional parameter but creation and binding interface unchanged
modified:
  dcpp/PluginDefs.h
  dcpp/PluginManager.cpp
  dcpp/PluginManager.h
  plugins/SamplePlugin/Plugin.c
  plugins/SamplePlugin/Plugin.h


--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk

Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/PluginDefs.h'
--- dcpp/PluginDefs.h	2012-07-02 18:13:18 +0000
+++ dcpp/PluginDefs.h	2012-07-08 03:48:50 +0000
@@ -280,8 +280,7 @@
 /* Hooks (events) system - required interface! */
 
 /* Hook function prototypes */
-typedef Bool (DCAPI* DCHOOK)		(dcptr_t pObject, dcptr_t pData, Bool* bBreak);
-typedef Bool (DCAPI* DCHOOKCOMMON)	(dcptr_t pObject, dcptr_t pData, void* pCommon, Bool* bBreak);
+typedef Bool (DCAPI* DCHOOK)		(dcptr_t pObject, dcptr_t pData, void* pCommon, Bool* bBreak);
 
 /* Hook system functions */
 typedef struct tagDCHooks {

=== modified file 'dcpp/PluginManager.cpp'
--- dcpp/PluginManager.cpp	2012-07-07 16:36:41 +0000
+++ dcpp/PluginManager.cpp	2012-07-08 03:48:50 +0000
@@ -348,14 +348,14 @@
 	Bool bBreak = False;
 	Bool bRes = False;
 	for(auto& sub: hook->subscribers) {
-		if(sub->common ? sub->hookProcCommon(pObject, pData, sub->common, &bBreak) : sub->hookProc(pObject, pData, &bBreak))
+		if(sub->hookProc(pObject, pData, sub->common, &bBreak))
 			bRes = True;
 		if(bBreak) return (bRes != False);
 	}
 
 	// Call default hook procedure for all unused hooks
 	if(hook->defProc && hook->subscribers.empty()) {
-		if(hook->defProc(pObject, pData, &bBreak))
+		if(hook->defProc(pObject, pData, NULL, &bBreak))
 			bRes = True;
 	}
 

=== modified file 'dcpp/PluginManager.h'
--- dcpp/PluginManager.h	2012-07-07 16:36:41 +0000
+++ dcpp/PluginManager.h	2012-07-08 03:48:50 +0000
@@ -53,10 +53,7 @@
 
 // Represents a plugin in hook context
 struct HookSubscriber {
-	union {
-		DCHOOK hookProc;
-		DCHOOKCOMMON hookProcCommon;
-	};
+	DCHOOK hookProc;
 	void* common;
 	string owner;
 };

=== modified file 'plugins/SamplePlugin/Plugin.c'
--- plugins/SamplePlugin/Plugin.c	2012-07-02 21:37:23 +0000
+++ plugins/SamplePlugin/Plugin.c	2012-07-08 03:48:50 +0000
@@ -103,7 +103,7 @@
 }
 
 /* Event handlers */
-Bool DCAPI onHubEnter(dcptr_t pObject, dcptr_t pData, Bool* bBreak) {
+Bool DCAPI onHubEnter(dcptr_t pObject, dcptr_t pData, void *opaque, Bool* bBreak) {
 	HubDataPtr hHub = (HubDataPtr)pObject;
 	CommandDataPtr cmd = (CommandDataPtr)pData;
 
@@ -189,7 +189,7 @@
 	return False;
 }
 
-Bool DCAPI onHubOnline(dcptr_t pObject, dcptr_t pData, Bool* bBreak) {
+Bool DCAPI onHubOnline(dcptr_t pObject, dcptr_t pData, void *opaque, Bool* bBreak) {
 	HubDataPtr hHub = (HubDataPtr)pObject;
 
 	char* buf = (char*)memset(malloc(256), 0, 256);

=== modified file 'plugins/SamplePlugin/Plugin.h'
--- plugins/SamplePlugin/Plugin.h	2012-07-02 21:37:23 +0000
+++ plugins/SamplePlugin/Plugin.h	2012-07-08 03:48:50 +0000
@@ -35,8 +35,8 @@
 void DCAPI set_cfg_int64(const char* name, int64_t value);
 
 /* Event handlers */
-Bool DCAPI onHubEnter(dcptr_t pObject, dcptr_t pData, Bool* bBreak);
-Bool DCAPI onHubOnline(dcptr_t pObject, dcptr_t pData, Bool* bBreak);
+Bool DCAPI onHubEnter(dcptr_t pObject, dcptr_t pData, void *opaque, Bool* bBreak);
+Bool DCAPI onHubOnline(dcptr_t pObject, dcptr_t pData, void *opaque, Bool* bBreak);
 
 /* Plugin main function */
 Bool DCAPI pluginMain(PluginState state, DCCorePtr core, dcptr_t pData);