rpms/qpidc/F-12 qmf.patch,NONE,1.1 qpidc.spec,1.106,1.107
Nuno Santos
nsantos at fedoraproject.org
Tue Nov 3 15:54:23 UTC 2009
Author: nsantos
Update of /cvs/extras/rpms/qpidc/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv6765
Modified Files:
qpidc.spec
Added Files:
qmf.patch
Log Message:
Add patch for qmf fixes
qmf.patch:
bindings/qmf/ruby/qmf.rb | 4 +--
src/qmf/engine/ObjectImpl.h | 2 -
src/qpid/management/ManagementAgent.cpp | 34 +++++++++++++++++++++++++++++---
src/qpid/management/ManagementAgent.h | 3 ++
4 files changed, 37 insertions(+), 6 deletions(-)
--- NEW FILE qmf.patch ---
Index: cpp/src/qmf/engine/ObjectImpl.h
===================================================================
--- cpp/src/qmf/engine/ObjectImpl.h (revision 831913)
+++ cpp/src/qmf/engine/ObjectImpl.h (working copy)
@@ -56,7 +56,7 @@
void destroy();
const ObjectId* getObjectId() const { return objectId.get(); }
- void setObjectId(ObjectId* oid) { objectId.reset(oid); }
+ void setObjectId(ObjectId* oid) { objectId.reset(new ObjectId(*oid)); }
const SchemaObjectClass* getClass() const { return objectClass; }
Value* getValue(const std::string& key) const;
void invokeMethod(const std::string& methodName, const Value* inArgs, void* context) const;
Index: cpp/src/qpid/management/ManagementAgent.h
===================================================================
--- cpp/src/qpid/management/ManagementAgent.h (revision 831913)
+++ cpp/src/qpid/management/ManagementAgent.h (working copy)
@@ -113,11 +113,13 @@
//
struct RemoteAgent : public Manageable
{
+ ManagementAgent& agent;
uint32_t brokerBank;
uint32_t agentBank;
std::string routingKey;
ObjectId connectionRef;
qmf::org::apache::qpid::broker::Agent* mgmtObject;
+ RemoteAgent(ManagementAgent& _agent) : agent(_agent) {}
ManagementObject* GetManagementObject (void) const { return mgmtObject; }
virtual ~RemoteAgent ();
};
@@ -212,6 +214,7 @@
void writeData ();
void periodicProcessing (void);
+ void deleteObjectNowLH(const ObjectId& oid);
void encodeHeader (framing::Buffer& buf, uint8_t opcode, uint32_t seq = 0);
bool checkHeader (framing::Buffer& buf, uint8_t *opcode, uint32_t *seq);
void sendBuffer (framing::Buffer& buf,
Index: cpp/src/qpid/management/ManagementAgent.cpp
===================================================================
--- cpp/src/qpid/management/ManagementAgent.cpp (revision 831913)
+++ cpp/src/qpid/management/ManagementAgent.cpp (working copy)
@@ -44,9 +44,11 @@
ManagementAgent::RemoteAgent::~RemoteAgent ()
{
- if (mgmtObject != 0)
+ QPID_LOG(trace, "Remote Agent removed bank=[" << brokerBank << "." << agentBank << "]");
+ if (mgmtObject != 0) {
mgmtObject->resourceDestroy();
- QPID_LOG(trace, "Remote Agent removed bank=[" << brokerBank << "." << agentBank << "]");
+ agent.deleteObjectNowLH(mgmtObject->getObjectId());
+ }
}
ManagementAgent::ManagementAgent () :
@@ -443,6 +445,32 @@
}
}
+void ManagementAgent::deleteObjectNowLH(const ObjectId& oid)
+{
+ ManagementObjectMap::iterator iter = managementObjects.find(oid);
+ if (iter == managementObjects.end())
+ return;
+ ManagementObject* object = iter->second;
+ if (!object->isDeleted())
+ return;
+
+#define DNOW_BUFSIZE 2048
+ char msgChars[DNOW_BUFSIZE];
+ uint32_t contentSize;
+ Buffer msgBuffer(msgChars, DNOW_BUFSIZE);
+
+ encodeHeader(msgBuffer, 'c');
+ object->writeProperties(msgBuffer);
+ contentSize = msgBuffer.getPosition();
+ msgBuffer.reset();
+ stringstream key;
+ key << "console.obj.1.0." << object->getPackageName() << "." << object->getClassName();
+ sendBuffer(msgBuffer, contentSize, mExchange, key.str());
+ QPID_LOG(trace, "SEND Immediate(delete) ContentInd to=" << key.str());
+
+ managementObjects.erase(oid);
+}
+
void ManagementAgent::sendCommandComplete (string replyToKey, uint32_t sequence,
uint32_t code, string text)
{
@@ -871,7 +899,7 @@
assignedBank = assignBankLH(requestedAgentBank);
- RemoteAgent* agent = new RemoteAgent;
+ RemoteAgent* agent = new RemoteAgent(*this);
agent->brokerBank = brokerBank;
agent->agentBank = assignedBank;
agent->routingKey = replyToKey;
Index: cpp/bindings/qmf/ruby/qmf.rb
===================================================================
--- cpp/bindings/qmf/ruby/qmf.rb (revision 831913)
+++ cpp/bindings/qmf/ruby/qmf.rb (working copy)
@@ -456,7 +456,7 @@
attr_reader :impl, :agent_key
def initialize(impl=nil)
if impl
- @impl = impl
+ @impl = Qmfengine::ObjectId.new(impl)
else
@impl = Qmfengine::ObjectId.new
end
@@ -594,7 +594,7 @@
attr_reader :impl
def initialize(kwargs = {})
if kwargs.include?(:impl)
- @impl = kwargs[:impl]
+ @impl = Qmfengine::Query.new(kwargs[:impl])
else
package = ''
if kwargs.include?(:key)
Index: qpidc.spec
===================================================================
RCS file: /cvs/extras/rpms/qpidc/F-12/qpidc.spec,v
retrieving revision 1.106
retrieving revision 1.107
diff -u -p -r1.106 -r1.107
--- qpidc.spec 23 Oct 2009 22:01:21 -0000 1.106
+++ qpidc.spec 3 Nov 2009 15:54:22 -0000 1.107
@@ -12,7 +12,7 @@
Name: qpidc
Version: 0.5.%{qpid_svnrev}
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Libraries for Qpid C++ client applications
Group: System Environment/Libraries
License: ASL 2.0
@@ -21,6 +21,7 @@ Source0: %{name}-%{version}.tar.g
Source1: rhm-0.5.%{rhm_svnrev}.tar.gz
Source2: qpidd.pp
Patch0: so_number.patch
+Patch1: qmf.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: boost-devel
@@ -243,6 +244,7 @@ exit 0
%setup
%setup -T -D -b 1
%patch0
+%patch1
%define perftests "perftest topic_listener topic_publisher latencytest client_test txtest"
@@ -519,6 +521,9 @@ fi
%postun -n qmf -p /sbin/ldconfig
%changelog
+* Tue Nov 3 2009 Nuno Santos <nsantos at redhat.com> - 0.5.829175-2
+- Add patch for qmf fixes
+
* Fri Oct 23 2009 Nuno Santos <nsantos at redhat.com> - 0.5.829175-1
- Rebased to svn rev 829175
More information about the scm-commits
mailing list