summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2009-08-04 19:04:43 +0000
committerAndrew Stitcher <astitcher@apache.org>2009-08-04 19:04:43 +0000
commit010434f8f32489162ee4a697025994c9872b9b67 (patch)
tree5ee8ae0cd6c6511fa517fb7a6e22bd5186e4c3c9 /qpid/cpp
parent5a0f8ed80b85a38ec235683aba4275fc61824ea2 (diff)
downloadqpid-python-010434f8f32489162ee4a697025994c9872b9b67.tar.gz
Fixes for cluster code to compile with new stricter corosync header files
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@800921 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/cluster/Cluster.cpp12
-rw-r--r--qpid/cpp/src/qpid/cluster/Cluster.h10
-rw-r--r--qpid/cpp/src/qpid/cluster/Cpg.cpp22
-rw-r--r--qpid/cpp/src/qpid/cluster/Cpg.h28
4 files changed, 56 insertions, 16 deletions
diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp
index ca3a7fa257..5a0b3a3d5e 100644
--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp
+++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp
@@ -315,7 +315,7 @@ void Cluster::leave(Lock&) {
// Deliver CPG message.
void Cluster::deliver(
cpg_handle_t /*handle*/,
- cpg_name* /*group*/,
+ const cpg_name* /*group*/,
uint32_t nodeid,
uint32_t pid,
void* msg,
@@ -507,10 +507,10 @@ ostream& operator<<(ostream& o, const AddrList& a) {
void Cluster::configChange (
cpg_handle_t /*handle*/,
- cpg_name */*group*/,
- cpg_address *current, int nCurrent,
- cpg_address *left, int nLeft,
- cpg_address */*joined*/, int /*nJoined*/)
+ const cpg_name */*group*/,
+ const cpg_address *current, int nCurrent,
+ const cpg_address *left, int nLeft,
+ const cpg_address */*joined*/, int /*nJoined*/)
{
Mutex::ScopedLock l(lock);
if (state == INIT) { // First config change.
@@ -521,7 +521,7 @@ void Cluster::configChange (
QPID_LOG(notice, *this << " membership change: " << AddrList(current, nCurrent)
<< AddrList(left, nLeft, "left: "));
std::string addresses;
- for (cpg_address* p = current; p < current+nCurrent; ++p)
+ for (const cpg_address* p = current; p < current+nCurrent; ++p)
addresses.append(MemberId(*p).str());
deliverEvent(Event::control(ClusterConfigChangeBody(ProtocolVersion(), addresses), self));
}
diff --git a/qpid/cpp/src/qpid/cluster/Cluster.h b/qpid/cpp/src/qpid/cluster/Cluster.h
index a95f2ab60e..35e95b3d3b 100644
--- a/qpid/cpp/src/qpid/cluster/Cluster.h
+++ b/qpid/cpp/src/qpid/cluster/Cluster.h
@@ -169,7 +169,7 @@ class Cluster : private Cpg::Handler, public management::Manageable {
// == Called in CPG dispatch thread
void deliver( // CPG deliver callback.
cpg_handle_t /*handle*/,
- struct cpg_name *group,
+ const struct cpg_name *group,
uint32_t /*nodeid*/,
uint32_t /*pid*/,
void* /*msg*/,
@@ -179,10 +179,10 @@ class Cluster : private Cpg::Handler, public management::Manageable {
void configChange( // CPG config change callback.
cpg_handle_t /*handle*/,
- struct cpg_name */*group*/,
- struct cpg_address */*members*/, int /*nMembers*/,
- struct cpg_address */*left*/, int /*nLeft*/,
- struct cpg_address */*joined*/, int /*nJoined*/
+ const struct cpg_name */*group*/,
+ const struct cpg_address */*members*/, int /*nMembers*/,
+ const struct cpg_address */*left*/, int /*nLeft*/,
+ const struct cpg_address */*joined*/, int /*nJoined*/
);
// == Called in management threads.
diff --git a/qpid/cpp/src/qpid/cluster/Cpg.cpp b/qpid/cpp/src/qpid/cluster/Cpg.cpp
index 0878ae94b9..5dbf057d0f 100644
--- a/qpid/cpp/src/qpid/cluster/Cpg.cpp
+++ b/qpid/cpp/src/qpid/cluster/Cpg.cpp
@@ -49,6 +49,28 @@ Cpg* Cpg::cpgFromHandle(cpg_handle_t handle) {
// Global callback functions.
void Cpg::globalDeliver (
cpg_handle_t handle,
+ const struct cpg_name *group,
+ uint32_t nodeid,
+ uint32_t pid,
+ void* msg,
+ size_t msg_len)
+{
+ cpgFromHandle(handle)->handler.deliver(handle, group, nodeid, pid, msg, msg_len);
+}
+
+void Cpg::globalConfigChange(
+ cpg_handle_t handle,
+ const struct cpg_name *group,
+ const struct cpg_address *members, size_t nMembers,
+ const struct cpg_address *left, size_t nLeft,
+ const struct cpg_address *joined, size_t nJoined
+)
+{
+ cpgFromHandle(handle)->handler.configChange(handle, group, members, nMembers, left, nLeft, joined, nJoined);
+}
+
+void Cpg::globalDeliver (
+ cpg_handle_t handle,
struct cpg_name *group,
uint32_t nodeid,
uint32_t pid,
diff --git a/qpid/cpp/src/qpid/cluster/Cpg.h b/qpid/cpp/src/qpid/cluster/Cpg.h
index 624721b560..0f5faa312e 100644
--- a/qpid/cpp/src/qpid/cluster/Cpg.h
+++ b/qpid/cpp/src/qpid/cluster/Cpg.h
@@ -68,7 +68,7 @@ class Cpg : public sys::IOHandle {
virtual ~Handler() {};
virtual void deliver(
cpg_handle_t /*handle*/,
- struct cpg_name *group,
+ const struct cpg_name *group,
uint32_t /*nodeid*/,
uint32_t /*pid*/,
void* /*msg*/,
@@ -76,10 +76,10 @@ class Cpg : public sys::IOHandle {
virtual void configChange(
cpg_handle_t /*handle*/,
- struct cpg_name */*group*/,
- struct cpg_address */*members*/, int /*nMembers*/,
- struct cpg_address */*left*/, int /*nLeft*/,
- struct cpg_address */*joined*/, int /*nJoined*/
+ const struct cpg_name */*group*/,
+ const struct cpg_address */*members*/, int /*nMembers*/,
+ const struct cpg_address */*left*/, int /*nLeft*/,
+ const struct cpg_address */*joined*/, int /*nJoined*/
) = 0;
};
@@ -122,6 +122,24 @@ class Cpg : public sys::IOHandle {
static Cpg* cpgFromHandle(cpg_handle_t);
+ // New versions for corosync 1.0 and higher
+ static void globalDeliver(
+ cpg_handle_t handle,
+ const struct cpg_name *group,
+ uint32_t nodeid,
+ uint32_t pid,
+ void* msg,
+ size_t msg_len);
+
+ static void globalConfigChange(
+ cpg_handle_t handle,
+ const struct cpg_name *group,
+ const struct cpg_address *members, size_t nMembers,
+ const struct cpg_address *left, size_t nLeft,
+ const struct cpg_address *joined, size_t nJoined
+ );
+
+ // Old versions for openais
static void globalDeliver(
cpg_handle_t handle,
struct cpg_name *group,