List:NDB Connectors« Previous MessageNext Message »
From:Monty Taylor Date:November 20 2007 12:15am
Subject:Rev 230: Merged in handler changes. in http://bazaar.launchpad.net/~ndb-connectors/ndb-connectors/telco-6.3
View as plain text  
At http://bazaar.launchpad.net/~ndb-connectors/ndb-connectors/telco-6.3

------------------------------------------------------------
revno: 230
revision-id: mtaylor@stripped
parent: mtaylor@stripped
parent: mtaylor@stripped
committer: Monty Taylor <mtaylor@stripped>
branch nick: telco-6.3
timestamp: Mon 2007-11-19 16:15:09 -0800
message:
  Merged in handler changes. 
modified:
  interface/mgmapi/NdbLogEvent.i ndblogevent.i-20070906065931-8drgzkovsy4cdn0b-1
  interface/mgmapi/NdbLogEventManager.i
ndbmgmlogeventhandle-20070906065939-pj4qrhof8kkzg3d1-1
  java/com/mysql/cluster/mgmj/examples/SampleMGMJ.java
samplemgmj.java-20071119093428-2f2zw02dpk5jlq9f-2
  java/mgmj.i                    mgmapi.i-20070415064013-80k9rsqzumm2kjaf-1
    ------------------------------------------------------------
    revno: 192.1.25.1.48
    revision-id: mtaylor@stripped
    parent: mtaylor@stripped
    committer: Monty Taylor <mtaylor@stripped>
    branch nick: devel
    timestamp: Mon 2007-11-19 15:55:29 -0800
    message:
      Fixed EventHandlers for MGM/J.
    modified:
      interface/mgmapi/NdbLogEvent.i ndblogevent.i-20070906065931-8drgzkovsy4cdn0b-1
      interface/mgmapi/NdbLogEventManager.i
ndbmgmlogeventhandle-20070906065939-pj4qrhof8kkzg3d1-1
      java/com/mysql/cluster/mgmj/examples/SampleMGMJ.java
samplemgmj.java-20071119093428-2f2zw02dpk5jlq9f-2
      java/mgmj.i                    mgmapi.i-20070415064013-80k9rsqzumm2kjaf-1
=== modified file 'interface/mgmapi/NdbLogEvent.i'
--- a/interface/mgmapi/NdbLogEvent.i	2007-11-19 09:34:49 +0000
+++ b/interface/mgmapi/NdbLogEvent.i	2007-11-19 23:55:29 +0000
@@ -81,6 +81,7 @@
   
 };
 
+
 %inline %{
 
 
@@ -944,7 +945,7 @@
 
   struct BaseEventWrapper { 
     int ret; 
-    BaseEvent * theEvent; 
+    ndb_logevent * theEvent; 
   };
 
   %}

=== modified file 'interface/mgmapi/NdbLogEventManager.i'
--- a/interface/mgmapi/NdbLogEventManager.i	2007-11-19 09:34:49 +0000
+++ b/interface/mgmapi/NdbLogEventManager.i	2007-11-19 23:55:29 +0000
@@ -48,8 +48,8 @@
     
     ndb_logevent_handle * handle; 
     
-    std::map<Ndb_logevent_type,std::vector<NdbLogEventTypeListener *> >
evtListeners; 
-    std::map<ndb_mgm_event_category,std::vector<NdbLogEventCategoryListener *>
> evtCategoryListeners;
+    std::map<Ndb_logevent_type,NdbLogEventTypeListener *> evtListeners; 
+    std::map<ndb_mgm_event_category,NdbLogEventCategoryListener *>
evtCategoryListeners;
     
   public: 
     
@@ -66,16 +66,10 @@
       Ndb_logevent_type theType = listener->getEventType();
       
       
-      std::vector<NdbLogEventTypeListener *> evtVec; 
+      printf("Inserting %p, %d\n",listener, theType);
+      evtListeners.insert(std::make_pair<Ndb_logevent_type,NdbLogEventTypeListener
*>(theType,listener));
+	
       
-      try {
-	evtVec = evtListeners.at(theType);
-      } catch (std::out_of_range e) { 
-	if
(!(evtListeners.insert(std::make_pair<Ndb_logevent_type,std::vector<NdbLogEventTypeListener
*> >(theType,evtVec))).second) { 
-	  return -1;
-	}
-      }; 
-      evtVec.push_back(listener);
       return 0;
     }
     
@@ -87,17 +81,16 @@
       ndb_mgm_event_category theCategory = listener->getEventCategory();
       
       
-      std::vector<NdbLogEventCategoryListener *> evtVec; 
+      NdbLogEventCategoryListener * evtLis; 
+
       
       try {
-	evtVec = evtCategoryListeners.at(theCategory);
+	evtLis = evtCategoryListeners.at(theCategory);
       } catch (std::out_of_range e) { 
-	if
(!((evtCategoryListeners.insert(std::make_pair<ndb_mgm_event_category,std::vector<NdbLogEventCategoryListener*>
>(theCategory,evtVec))).second)) {
+	if
(!((evtCategoryListeners.insert(std::make_pair<ndb_mgm_event_category,NdbLogEventCategoryListener*>(theCategory,evtLis))).second))
{
 	  return -1;
 	}
-	evtVec = evtCategoryListeners.at(theCategory);
       }; 
-      evtVec.push_back(listener);
       return 0;
     }
     
@@ -111,293 +104,42 @@
 	if (event==0) { 
 	return NULL; 
 	}*/
-      ndb_logevent event; 
+      ndb_logevent * event = (ndb_logevent*) malloc (sizeof(ndb_logevent));
+      if (event==0) { 
+	return NULL; 
+      }
       BaseEventWrapper * eventWrapper = (BaseEventWrapper
*)malloc(sizeof(BaseEventWrapper)); 
       
       //int r= ndb_logevent_get_next(handle,&(*event),timeout_in_milliseconds);
-      eventWrapper->ret =
ndb_logevent_get_next(handle,&event,timeout_in_milliseconds);
+      eventWrapper->ret =
ndb_logevent_get_next(handle,&(*event),timeout_in_milliseconds);
       
       eventWrapper->theEvent = NULL;
       //TODO: Figure out how to deal with no event properly
       if (eventWrapper->ret > 0) { 
-	
-	switch(event.type) { 
-
-	case NDB_LE_Connected:
-	  eventWrapper->theEvent = (BaseEvent *)(new ConnectedEvent(event));
-	  break;
-
-	case NDB_LE_Disconnected:
-	  eventWrapper->theEvent = (BaseEvent *)(new DisconnectedEvent(event));
-	  break;
-
-	case NDB_LE_CommunicationClosed:
-	  eventWrapper->theEvent = (BaseEvent *)(new CommunicationClosedEvent(event));
-	  break;
-
-	case NDB_LE_CommunicationOpened:
-	  eventWrapper->theEvent = (BaseEvent *)(new CommunicationOpenedEvent(event));
-	  break;
-
-	case NDB_LE_ConnectedApiVersion:
-	  eventWrapper->theEvent = (BaseEvent *)(new ConnectedApiVersionEvent(event));
-	  break;
-
-	case NDB_LE_GlobalCheckpointStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new GlobalCheckpointStartedEvent(event));
-	  break;
-
-	case NDB_LE_GlobalCheckpointCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new GlobalCheckpointCompletedEvent(event));
-	  break;
-
-	case NDB_LE_LocalCheckpointStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new LocalCheckpointStartedEvent(event));
-	  break;
-
-	case NDB_LE_LocalCheckpointCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new LocalCheckpointCompletedEvent(event));
-	  break;
-
-	case NDB_LE_LCPStoppedInCalcKeepGci:
-	  eventWrapper->theEvent = (BaseEvent *)(new LCPStoppedInCalcKeepGciEvent(event));
-	  break;
-
-	case NDB_LE_LCPFragmentCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new LCPFragmentCompletedEvent(event));
-	  break;
-
-	case NDB_LE_NDBStartStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new NDBStartStartedEvent(event));
-	  break;
-
-	case NDB_LE_NDBStartCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new NDBStartCompletedEvent(event));
-	  break;
-
-	case NDB_LE_STTORRYRecieved:
-	  eventWrapper->theEvent = (BaseEvent *)(new STTORRYRecievedEvent(event));
-	  break;
-
-	case NDB_LE_StartPhaseCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new StartPhaseCompletedEvent(event));
-	  break;
-
-	case NDB_LE_CM_REGCONF:
-	  eventWrapper->theEvent = (BaseEvent *)(new CmRegConfEvent(event));
-	  break;
-
-	case NDB_LE_CM_REGREF:
-	  eventWrapper->theEvent = (BaseEvent *)(new CmRegRefEvent(event));
-	  break;
-
-	case NDB_LE_FIND_NEIGHBOURS:
-	  eventWrapper->theEvent = (BaseEvent *)(new FindNeighboursEvent(event));
-	  break;
-
-	case NDB_LE_NDBStopStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new NDBStopStartedEvent(event));
-	  break;
-
-	case NDB_LE_NDBStopCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new NDBStopCompletedEvent(event));
-	  break;
-
-	case NDB_LE_NDBStopForced:
-	  eventWrapper->theEvent = (BaseEvent *)(new NDBStopForcedEvent(event));
-	  break;
-
-	case NDB_LE_NDBStopAborted:
-	  eventWrapper->theEvent = (BaseEvent *)(new NDBStopAbortedEvent(event));
-	  break;
-
-	case NDB_LE_StartREDOLog:
-	  eventWrapper->theEvent = (BaseEvent *)(new StartREDOLogEvent(event));
-	  break;
-
-	case NDB_LE_StartLog:
-	  eventWrapper->theEvent = (BaseEvent *)(new StartLogEvent(event));
-	  break;
-
-	case NDB_LE_UNDORecordsExecuted:
-	  eventWrapper->theEvent = (BaseEvent *)(new UNDORecordsExecutedEvent(event));
-	  break;
-
-	case NDB_LE_NR_CopyDict:
-	  eventWrapper->theEvent = (BaseEvent *)(new NRCopyDictEvent(event));
-	  break;
-
-	case NDB_LE_NR_CopyDistr:
-	  eventWrapper->theEvent = (BaseEvent *)(new NRCopyDistrEvent(event));
-	  break;
-
-	case NDB_LE_NR_CopyFragsStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new NRCopyFragsStartedEvent(event));
-	  break;
-
-	case NDB_LE_NR_CopyFragDone:
-	  eventWrapper->theEvent = (BaseEvent *)(new NRCopyFragDoneEvent(event));
-	  break;
-
-	case NDB_LE_NR_CopyFragsCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new NRCopyFragsCompletedEvent(event));
-	  break;
-
-	case NDB_LE_NodeFailCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new NodeFailCompletedEvent(event));
-	  break;
-
-	case NDB_LE_NODE_FAILREP:
-	  eventWrapper->theEvent = (BaseEvent *)(new NodeFAILREPEvent(event));
-	  break;
-
-	case NDB_LE_ArbitState:
-	  eventWrapper->theEvent = (BaseEvent *)(new ArbitStateEvent(event));
-	  break;
-
-	case NDB_LE_ArbitResult:
-	  eventWrapper->theEvent = (BaseEvent *)(new ArbitResultEvent(event));
-	  break;
-
-	case NDB_LE_GCP_TakeoverStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new GCPTakeoverStartedEvent(event));
-	  break;
-
-	case NDB_LE_GCP_TakeoverCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new GCPTakeoverCompletedEvent(event));
-	  break;
-
-	case NDB_LE_LCP_TakeoverStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new LCPTakeoverStartedEvent(event));
-	  break;
-
-	case NDB_LE_LCP_TakeoverCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new LCPTakeoverCompletedEvent(event));
-	  break;
-
-	case NDB_LE_TransReportCounters:
-	  eventWrapper->theEvent = (BaseEvent *)(new TransReportCountersEvent(event));
-	  break;
-
-	case NDB_LE_OperationReportCounters:
-	  eventWrapper->theEvent = (BaseEvent *)(new OperationReportCountersEvent(event));
-	  break;
-
-	case NDB_LE_TableCreated:
-	  eventWrapper->theEvent = (BaseEvent *)(new TableCreatedEvent(event));
-	  break;
-
-	case NDB_LE_UndoLogBlocked:
-	  eventWrapper->theEvent = (BaseEvent *)(new UndoLogBlockedEvent(event));
-	  break;
-
-	case NDB_LE_JobStatistic:
-	  eventWrapper->theEvent = (BaseEvent *)(new JobStatisticEvent(event));
-	  break;
-
-	case NDB_LE_SendBytesStatistic:
-	  eventWrapper->theEvent = (BaseEvent *)(new SendBytesStatisticEvent(event));
-	  break;
-
-	case NDB_LE_ReceiveBytesStatistic:
-	  eventWrapper->theEvent = (BaseEvent *)(new ReceiveBytesStatisticEvent(event));
-	  break;
-
-	case NDB_LE_MemoryUsage:
-	  eventWrapper->theEvent = (BaseEvent *)(new MemoryUsageEvent(event));
-	  break;
-
-/*	case NDB_LE_ThreadConfigLoop:
-	  eventWrapper->theEvent = (BaseEvent *)(new ThreadConfigLoopEvent(event));
-	  break;
-*/
-	case NDB_LE_TransporterError:
-	  eventWrapper->theEvent = (BaseEvent *)(new TransporterErrorEvent(event));
-	  break;
-
-	case NDB_LE_TransporterWarning:
-	  eventWrapper->theEvent = (BaseEvent *)(new TransporterWarningEvent(event));
-	  break;
-
-	case NDB_LE_MissedHeartbeat:
-	  eventWrapper->theEvent = (BaseEvent *)(new MissedHeartbeatEvent(event));
-	  break;
-
-	case NDB_LE_DeadDueToHeartbeat:
-	  eventWrapper->theEvent = (BaseEvent *)(new DeadDueToHeartbeatEvent(event));
-	  break;
-
-	case NDB_LE_WarningEvent:
-	  eventWrapper->theEvent = (BaseEvent *)(new WarningEventEvent(event));
-	  break;
-
-	case NDB_LE_SentHeartbeat:
-	  eventWrapper->theEvent = (BaseEvent *)(new SentHeartbeatEvent(event));
-	  break;
-
-	case NDB_LE_CreateLogBytes:
-	  eventWrapper->theEvent = (BaseEvent *)(new CreateLogBytesEvent(event));
-	  break;
-
-	case NDB_LE_InfoEvent:
-	  eventWrapper->theEvent = (BaseEvent *)(new InfoEventEvent(event));
-	  break;
-
-	case NDB_LE_SingleUser:
-	  eventWrapper->theEvent = (BaseEvent *)(new SingleUserEvent(event));
-	  break;
-
-	case NDB_LE_BackupStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new BackupStartedEvent(event));
-	  break;
-
-	case NDB_LE_BackupFailedToStart:
-	  eventWrapper->theEvent = (BaseEvent *)(new BackupFailedToStartEvent(event));
-	  break;
-
-/*	case NDB_LE_BackupStatus:
-	  eventWrapper->theEvent = (BaseEvent *)(new BackupStatusEvent(event));
-	  break;
-*/
-	case NDB_LE_BackupCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new BackupCompletedEvent(event));
-	  break;
-
-	case NDB_LE_BackupAborted:
-	  eventWrapper->theEvent = (BaseEvent *)(new BackupAbortedEvent(event));
-	  break;
-
-/*	case NDB_LE_RestoreMetaData:
-	  eventWrapper->theEvent = (BaseEvent *)(new RestoreMetaDataEvent(event));
-	  break;
-*/
-/*	case NDB_LE_RestoreData:
-	  eventWrapper->theEvent = (BaseEvent *)(new RestoreDataEvent(event));
-	  break;
-*/
-/*	case NDB_LE_RestoreLog:
-	  eventWrapper->theEvent = (BaseEvent *)(new RestoreLogEvent(event));
-	  break;
-*/
-/*	case NDB_LE_RestoreStarted:
-	  eventWrapper->theEvent = (BaseEvent *)(new RestoreStartedEvent(event));
-	  break;
-*/
-/*	case NDB_LE_RestoreCompleted:
-	  eventWrapper->theEvent = (BaseEvent *)(new RestoreCompletedEvent(event));
-	  break;
-*/
-	case NDB_LE_EventBufferStatus:
-	  eventWrapper->theEvent = (BaseEvent *)(new EventBufferStatusEvent(event));
-	  break;
-
-	case NDB_LE_StartReport:
-	  eventWrapper->theEvent = (BaseEvent *)(new StartReportEvent(event));
-	  break;
-
-	default:
-	  break;
-	}
+	eventWrapper->theEvent = event;
+	
+	NdbLogEventTypeListener * evtLis = NULL;
+	NdbLogEventCategoryListener * catLis = NULL;
+	
+	try {
+	  evtLis = evtListeners.at(event->type);
+	  
+	} catch (std::out_of_range e) { 
+	  // We don't have a listener to fire
+	}
+	if (evtLis != NULL) { 
+	  evtLis->handleEvent(event);
+	}
+	try {
+	  catLis = evtCategoryListeners.at(event->category);
+	  
+	} catch (std::out_of_range e) { 
+	  // We don't have a listener to fire
+	}
+	if (catLis != NULL) { 
+	  catLis->handleEvent(event);
+	}
+
 	// r > 0, event exists; 
 	// r==0, no event (timeout)
 	// r==-1, error
@@ -429,8 +171,8 @@
     %}
 
 
-%feature("directors") NdbLogEventTypeListener;
-%feature("directors") NdbLogEventCategoryListener;
+%feature("director") NdbLogEventTypeListener;
+%feature("director") NdbLogEventCategoryListener;
 
 class NdbLogEventListener { 
 public: 

=== modified file 'java/com/mysql/cluster/mgmj/examples/SampleMGMJ.java'
--- a/java/com/mysql/cluster/mgmj/examples/SampleMGMJ.java	2007-11-19 09:39:22 +0000
+++ b/java/com/mysql/cluster/mgmj/examples/SampleMGMJ.java	2007-11-19 23:55:29 +0000
@@ -7,38 +7,43 @@
 	/**
 	 * @param args
 	 */
+	
+	
 	public static void main(String[] args) throws MgmApiException {
 
 		NdbMgm mgm = NdbMgmFactory.createNdbMgm("localhost");
 
 		mgm.setConnectTimeout(4000);
 		mgm.connect(5, 3, true);
-		int[] filter = { 15, NdbMgmEventCategory.NDB_MGM_EVENT_CATEGORY_STATISTIC.swigValue(),
0 };
-		/*NdbFilterList theList = new NdbFilterList();
-		NdbFilterItem theItem = new NdbFilterItem();
-		theItem.setLevel(15);
-		theItem.setCategory(NdbMgmEventCategory.NDB_MGM_EVENT_CATEGORY_STATISTIC);
+		/*int[] filter = { 15,
NdbMgmEventCategory.NDB_MGM_EVENT_CATEGORY_STATISTIC.swigValue(), 0 };
+		NdbLogEventManager manager = mgm.createNdbLogEventManager(filter); */
+
+		NdbFilterList theList = new NdbFilterList();
+		NdbFilterItem theItem = new
NdbFilterItem(15,NdbMgmEventCategory.NDB_MGM_EVENT_CATEGORY_STATISTIC);
 		theList.add(theItem);
-		NdbLogEventManager manager = mgm.createNdbLogEventManager(theList);*/
-		NdbLogEventManager manager = mgm.createNdbLogEventManager(filter);
-
+		NdbLogEventManager manager = mgm.createNdbLogEventManager(theList);
+		TransReportListener theListener = new TransReportListener();
+		System.out.println("Registering listener");
+		manager.registerListener(theListener);
+		System.out.println("Done");
+		
 		while(true) { 	
 			//mgm.dumpState(1, 1000);
-			BaseEvent event = manager.getLogEvent(5000);
+			NdbLogEvent event = manager.getLogEvent(5000);
 			if (event != null)  {
-				System.out.println("Got an Event from Node" + event.getSourceNodeId()+" 
"+event.getType());
-			if (event.getType() == NdbLogEventType.NDB_LE_TransReportCounters) {
-				TransReportCountersEvent theEvent = new TransReportCountersEvent(event.getEvent());
+				System.out.println("Got an Event from Node" + event.getSourceNodeId()+" 
"+event.getEventType());
+			if (event.getEventType() == NdbLogEventType.NDB_LE_TransReportCounters) {
+				TransReportCountersEvent theEvent = new TransReportCountersEvent(event);
 				System.out.println("Trans count:"+theEvent.getTransCount());
 				System.out.println("Read count:"+theEvent.getReadCount());
 				System.out.println("Scan count:"+theEvent.getScanCount());
 				System.out.println("Range Scan count:"+theEvent.getRangeScanCount());
-			} else if (event.getType() == NdbLogEventType.NDB_LE_MemoryUsage) { 
-				MemoryUsageEvent theEvent = new MemoryUsageEvent(event.getEvent()); 
+			} else if (event.getEventType() == NdbLogEventType.NDB_LE_MemoryUsage) { 
+				MemoryUsageEvent theEvent = new MemoryUsageEvent(event); 
 				if (theEvent.getPageSizeKb() == 8192) { 
-					//System.out.println("Index Memory: "+theEvent.getPagesUsed());
+					System.out.println("Index Memory: "+theEvent.getPagesUsed());
 				} else if (theEvent.getPageSizeKb() == 32768) { 
-					//System.out.println("Data Memory: "+theEvent.getPagesUsed());
+					System.out.println("Data Memory: "+theEvent.getPagesUsed());
 				}
 				
 
@@ -51,3 +56,31 @@
 	}
 
 }
+
+class TransReportListener extends NdbLogEventTypeListener {
+
+
+
+	/* (non-Javadoc)
+	 * @see com.mysql.cluster.mgmj.NdbLogEventTypeListener#getEventType()
+	 */
+	@Override
+	public NdbLogEventType getEventType() {
+		// TODO Auto-generated method stub
+		return NdbLogEventType.NDB_LE_TransReportCounters; 
+	}
+
+	/* (non-Javadoc)
+	 * @see
com.mysql.cluster.mgmj.NdbLogEventCategoryListener#handleEvent(com.mysql.cluster.mgmj.NdbLogEvent)
+	 */
+	@Override
+	public void handleEvent(NdbLogEvent event) {
+		TransReportCountersEvent theEvent = new TransReportCountersEvent(event);
+		System.out.println("Listner Trans count:"+theEvent.getTransCount());
+		System.out.println("Listner Read count:"+theEvent.getReadCount());
+		System.out.println("Listner Scan count:"+theEvent.getScanCount());
+		System.out.println("Listner Range Scan count:"+theEvent.getRangeScanCount());
+	} 
+	
+	
+}

=== modified file 'java/mgmj.i'
--- a/java/mgmj.i	2007-11-19 09:34:49 +0000
+++ b/java/mgmj.i	2007-11-19 23:55:29 +0000
@@ -18,7 +18,7 @@
 */
 
 
-%module mgmj
+%module(directors="1") mgmj
 
 /*
 %typemap(javaimports) NdbMgmFactory, ndb_mgm_handle, ndb_mgm_cluster_state,
ndb_mgm_node_state "import com.mysql.cluster.errors.*;"
@@ -46,12 +46,12 @@
   $result=$1->theEvent; 
  } 
 //%typemap(jtype) (BaseEventWrapper *) "BaseEvent";
-%typemap(jstype) (BaseEventWrapper *) "BaseEvent";
-%typemap(jni) (BaseEventWrapper *) "BaseEvent *";
+%typemap(jstype) (BaseEventWrapper *) "NdbLogEvent";
+%typemap(jni) (BaseEventWrapper *) "ndb_logevent *";
 
 %typemap(javaout) (BaseEventWrapper *) { 
   long cPtr = $jnicall; 
-  return (cPtr == 0) ? null :  new BaseEvent(cPtr,true);
+  return (cPtr == 0) ? null :  new NdbLogEvent(cPtr,true);
  }
 %typemap(newfree) (BaseEventWrapper *) "free($1);";
 /*

Thread
Rev 230: Merged in handler changes. in http://bazaar.launchpad.net/~ndb-connectors/ndb-connectors/telco-6.3Monty Taylor20 Nov