1 message in com.mysql.lists.ndb-connectorsRev 243: Merged bugfixes. in http://...| From | Sent On | Attachments |
|---|---|---|
| Monty Taylor | 23 Nov 2007 12:40 |
| Subject: | Rev 243: Merged bugfixes. in http://bazaar.launchpad.net/~ndb-connectors/ndb-connectors/telco-6.3![]() |
|---|---|
| From: | Monty Taylor (mtay...@mysql.com) |
| Date: | 11/23/2007 12:40:38 PM |
| List: | com.mysql.lists.ndb-connectors |
At http://bazaar.launchpad.net/~ndb-connectors/ndb-connectors/telco-6.3
------------------------------------------------------------
revno: 243
revision-id: mtay...@mysql.com-20071123204049-6jl2tne45z10hzg3
parent: mtay...@mysql.com-20071122183123-vuqbm4mha4vdkmuq
parent: mtay...@mysql.com-20071123203651-uzg9z2fu2bco161d
committer: Monty Taylor <mtay...@mysql.com>
branch nick: telco-6.3
timestamp: Fri 2007-11-23 12:40:49 -0800
message:
Merged bugfixes.
modified:
configure.in configure.in-20070228020914-u2pk759xg7thauwf-13
interface/mgmapi/NdbLogEventManager.i
ndbmgmlogeventhandle-20070906065939-pj4qrhof8kkzg3d1-1
------------------------------------------------------------
revno: 192.1.25.1.65
revision-id: mtay...@mysql.com-20071123203651-uzg9z2fu2bco161d
parent: mtay...@mysql.com-20071123201650-vs40q2qu6kg7ywen
committer: Monty Taylor <mtay...@mysql.com>
branch nick: devel
timestamp: Fri 2007-11-23 12:36:51 -0800
message:
BUG#32671 ndb-connector java compilation fails with "/bin/sh: no: command
not found"
Added a test and failure condition if we don't find a Java we know how to
deal with.
modified:
configure.in
configure.in-20070228020914-u2pk759xg7thauwf-13
------------------------------------------------------------
revno: 192.1.25.1.64
revision-id: mtay...@mysql.com-20071123201650-vs40q2qu6kg7ywen
parent: mtay...@mysql.com-20071122182639-fjxx0gg53if03e4m
committer: Monty Taylor <mtay...@mysql.com>
branch nick: devel
timestamp: Fri 2007-11-23 12:16:50 -0800
message:
BUG#32669 ndb-connectors rely on not yet standard map::at() method
Replaced calls to map::at with calls to map::find() followed by
map::operator[].
As a side effect of this, NDB/Connectors no longer employs C++ exceptions,
so
integration with the mainline code using -fno-exceptions will be easier.
modified:
interface/mgmapi/NdbLogEventManager.i
ndbmgmlogeventhandle-20070906065939-pj4qrhof8kkzg3d1-1
=== modified file 'configure.in'
--- a/configure.in 2007-11-22 18:31:23 +0000
+++ b/configure.in 2007-11-23 20:40:49 +0000
@@ -53,6 +53,7 @@
WITH_JAVA() +AS_IF([test "x$JAVAC" = "xno"],AC_MSG_ERROR([Unknown or unsupported JDK]))
WITH_CSHARP()
=== modified file 'interface/mgmapi/NdbLogEventManager.i'
--- a/interface/mgmapi/NdbLogEventManager.i 2007-11-20 01:45:07 +0000
+++ b/interface/mgmapi/NdbLogEventManager.i 2007-11-23 20:16:50 +0000
@@ -66,33 +66,43 @@
// Returns -1 on error, 0 otherwise
int registerListener(NdbLogEventTypeListener * listener) {
Ndb_logevent_type theType = listener->getEventType();
-
-
-
evtListeners.insert(std::make_pair<Ndb_logevent_type,NdbLogEventTypeListener
*>(theType,listener));
-
-
- return 0;
+
+ std::map<Ndb_logevent_type,NdbLogEventTypeListener *>::iterator it;
+ it=evtListeners.find(theType);
+ if (it==evtListeners.end()) {
+ // We don't have this one yet
+ evtListeners[theType]=listener;
+ return 0;
+ }
+ // Must unregisterListener first
+ return -1;
}
+ // Returns -1 on error, 0 otherwise
+ int registerListener(NdbLogEventCategoryListener * listener) {
+ ndb_mgm_event_category theCategory = listener->getEventCategory();
+
+
+ std::map<ndb_mgm_event_category,NdbLogEventCategoryListener *>::iterator
it;
+ it=evtCategoryListeners.find(theCategory);
+
+ if(it==evtCategoryListeners.end()) {
+ evtCategoryListeners[theCategory]=listener;
+ return 0;
+ }
+ return -1;
+ }
+
bool unregisterListener(NdbLogEventTypeListener * listener) {
+ evtListeners.erase(evtListeners.find(listener->getEventType()));
return true;
}
- // Returns -1 on error, 0 otherwise
- int registerCategoryListener(NdbLogEventCategoryListener * listener) {
- ndb_mgm_event_category theCategory = listener->getEventCategory();
-
-
- NdbLogEventCategoryListener * evtLis;
-
-
- try {
- evtLis = evtCategoryListeners.at(theCategory);
- } catch (std::out_of_range e) {
- if
(!((evtCategoryListeners.insert(std::make_pair<ndb_mgm_event_category,NdbLogEventCategoryListener*>(theCategory,evtLis))).second))
{
- return -1;
- }
- };
- return 0;
+ bool unregisterListener(NdbLogEventCategoryListener * listener) {
+ evtCategoryListeners.erase
+ (
+ evtCategoryListeners.find(listener->getEventCategory())
+ );
+ return true;
}
@@ -119,28 +129,21 @@ if (eventWrapper->ret > 0) { 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);
- }
-
+ {
+ std::map<Ndb_logevent_type,NdbLogEventTypeListener *>::iterator it;
+ it=evtListeners.find(event->type);
+ if (it!=evtListeners.end()) {
+ ((*it).second)->handleEvent(event);
+ }
+ }
+ {
+ std::map<ndb_mgm_event_category,NdbLogEventCategoryListener *>::iterator it;
+ it=evtCategoryListeners.find(event->category);
+
+ if(it!=evtCategoryListeners.end()) {
+ ((*it).second)->handleEvent(event);
+ }
+ }
// r > 0, event exists;
// r==0, no event (timeout)
// r==-1, error
@@ -203,9 +206,18 @@
public:
// Returns -1 on error, 0 otherwise
~NdbLogEventManager();
+ bool unregisterListener(NdbLogEventTypeListener * listener);
+ bool unregisterListener(NdbLogEventCategoryListener * listener);
+
+ %ndbexception("MgmApiException") {
+ $action
+ if (result < 0) {
+ NDB_exception(NdbApiException,"Must deregister handler before adding a new
one");
+ }
+ }
int registerListener(NdbLogEventTypeListener * listener);
- bool unregisterListener(NdbLogEventTypeListener * listener);
- int registerCategoryListener(NdbLogEventCategoryListener * listener);
+ int registerListener(NdbLogEventCategoryListener * listener);
+
%ndbexception("MgmApiException") { $action




