summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-03-16 13:53:32 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-03-16 13:53:32 +0000
commit8bcf04a19c9f6c44bd38bef47ee1b557f40fb72f (patch)
tree8cfd4780df192fd3678697ebd75c2ab54f22a631 /cpp
parentmore attack test (diff)
downloadice-8bcf04a19c9f6c44bd38bef47ee1b557f40fb72f.tar.bz2
ice-8bcf04a19c9f6c44bd38bef47ee1b557f40fb72f.tar.xz
ice-8bcf04a19c9f6c44bd38bef47ee1b557f40fb72f.zip
Added BlobjectArray
Diffstat (limited to 'cpp')
-rw-r--r--cpp/config/Make.rules2
-rw-r--r--cpp/demo/IceStorm/clock/config_service2
-rw-r--r--cpp/include/Ice/Object.h19
-rw-r--r--cpp/include/Ice/OutgoingAsync.h2
-rw-r--r--cpp/include/Ice/Proxy.h34
-rw-r--r--cpp/src/Glacier2/Blobject.cpp4
-rw-r--r--cpp/src/Glacier2/Blobject.h5
-rw-r--r--cpp/src/Glacier2/ClientBlobject.cpp3
-rw-r--r--cpp/src/Glacier2/ClientBlobject.h3
-rw-r--r--cpp/src/Glacier2/RequestQueue.cpp6
-rw-r--r--cpp/src/Glacier2/RequestQueue.h2
-rw-r--r--cpp/src/Glacier2/ServerBlobject.cpp3
-rw-r--r--cpp/src/Glacier2/ServerBlobject.h3
-rw-r--r--cpp/src/Ice/Object.cpp46
-rw-r--r--cpp/src/Ice/OutgoingAsync.cpp4
-rw-r--r--cpp/src/Ice/Proxy.cpp64
-rw-r--r--cpp/src/IceStorm/TopicI.cpp8
17 files changed, 175 insertions, 35 deletions
diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
index 7c9cd4bd9e3..06443960aaa 100644
--- a/cpp/config/Make.rules
+++ b/cpp/config/Make.rules
@@ -17,7 +17,7 @@ prefix ?= /opt/Ice-$(VERSION)
# Define OPTIMIZE as yes if you want to build with
# optimization. Otherwise Ice is build with debug information.
#
-OPTIMIZE ?= yes
+#OPTIMIZE = yes
#
# Define LP64 as yes or no if you want force a 32 or 64 bit. The
diff --git a/cpp/demo/IceStorm/clock/config_service b/cpp/demo/IceStorm/clock/config_service
index 18102a0f209..0bb9411a98a 100644
--- a/cpp/demo/IceStorm/clock/config_service
+++ b/cpp/demo/IceStorm/clock/config_service
@@ -6,7 +6,7 @@ IceBox.ServiceManager.Endpoints=tcp -p 9998
#
# The IceStorm service
#
-IceBox.Service.IceStorm=IceStormService,30:create --Ice.Config=config
+IceBox.Service.IceStorm=IceStormService,31:create --Ice.Config=config
#
# This property defines the home directory of the Freeze
diff --git a/cpp/include/Ice/Object.h b/cpp/include/Ice/Object.h
index 1520dc23995..c991c896e23 100644
--- a/cpp/include/Ice/Object.h
+++ b/cpp/include/Ice/Object.h
@@ -107,6 +107,25 @@ public:
virtual IceInternal::DispatchStatus __dispatch(IceInternal::Incoming&, const Current&);
};
+class ICE_API BlobjectArray : virtual public Object
+{
+public:
+
+ // Returns true if ok, false if user exception.
+ virtual bool ice_invoke(const std::pair<const Byte*, const Byte*>&, std::vector<Byte>&, const Current&) = 0;
+ virtual IceInternal::DispatchStatus __dispatch(IceInternal::Incoming&, const Current&);
+};
+
+class ICE_API BlobjectArrayAsync : virtual public Object
+{
+public:
+
+ // Returns true if ok, false if user exception.
+ virtual void ice_invoke_async(const AMD_Object_ice_invokePtr&, const std::pair<const Byte*, const Byte*>&,
+ const Current&) = 0;
+ virtual IceInternal::DispatchStatus __dispatch(IceInternal::Incoming&, const Current&);
+};
+
class ICE_API BlobjectAsync : virtual public Object
{
public:
diff --git a/cpp/include/Ice/OutgoingAsync.h b/cpp/include/Ice/OutgoingAsync.h
index cdb8d708e3e..ef12d8e1b52 100644
--- a/cpp/include/Ice/OutgoingAsync.h
+++ b/cpp/include/Ice/OutgoingAsync.h
@@ -76,7 +76,7 @@ public:
virtual void ice_exception(const Ice::Exception&) = 0;
void __invoke(const Ice::ObjectPrx&, const std::string& operation, OperationMode,
- const std::vector<Byte>&, const Context&);
+ const std::pair<const Byte*, const Byte*>&, const Context&);
protected:
diff --git a/cpp/include/Ice/Proxy.h b/cpp/include/Ice/Proxy.h
index ad62ed11017..2e93a2f764e 100644
--- a/cpp/include/Ice/Proxy.h
+++ b/cpp/include/Ice/Proxy.h
@@ -96,16 +96,25 @@ public:
::std::vector< ::std::string> ice_ids(const ::Ice::Context&);
::std::string ice_id();
::std::string ice_id(const ::Ice::Context&);
+
+ // Returns true if ok, false if user exception.
bool ice_invoke(const ::std::string&, ::Ice::OperationMode, const ::std::vector< ::Ice::Byte>&,
- ::std::vector< ::Ice::Byte>&); // Returns true if ok, false if user exception.
+ ::std::vector< ::Ice::Byte>&);
bool ice_invoke(const ::std::string&, ::Ice::OperationMode, const ::std::vector< ::Ice::Byte>&,
- ::std::vector< ::Ice::Byte>&,
- const ::Ice::Context&); // Returns true if ok, false if user exception.
- void ice_invoke_async(const ::Ice::AMI_Object_ice_invokePtr&,
- const ::std::string&, ::Ice::OperationMode, const ::std::vector< ::Ice::Byte>&);
- void ice_invoke_async(const ::Ice::AMI_Object_ice_invokePtr&,
- const ::std::string&, ::Ice::OperationMode, const ::std::vector< ::Ice::Byte>&,
- const ::Ice::Context&);
+ ::std::vector< ::Ice::Byte>&, const ::Ice::Context&);
+ bool ice_invoke(const ::std::string&, ::Ice::OperationMode,
+ const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&, ::std::vector< ::Ice::Byte>&);
+ bool ice_invoke(const ::std::string&, ::Ice::OperationMode,
+ const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&, ::std::vector< ::Ice::Byte>&,
+ const ::Ice::Context&);
+ void ice_invoke_async(const ::Ice::AMI_Object_ice_invokePtr&, const ::std::string&, ::Ice::OperationMode,
+ const ::std::vector< ::Ice::Byte>&);
+ void ice_invoke_async(const ::Ice::AMI_Object_ice_invokePtr&, const ::std::string&, ::Ice::OperationMode,
+ const ::std::vector< ::Ice::Byte>&, const ::Ice::Context&);
+ void ice_invoke_async(const ::Ice::AMI_Object_ice_invokePtr&, const ::std::string&, ::Ice::OperationMode,
+ const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&);
+ void ice_invoke_async(const ::Ice::AMI_Object_ice_invokePtr&, const ::std::string&, ::Ice::OperationMode,
+ const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&, const ::Ice::Context&);
::Ice::Identity ice_getIdentity() const;
::Ice::ObjectPrx ice_newIdentity(const ::Ice::Identity&) const;
@@ -195,7 +204,8 @@ public:
virtual void ice_ping(const ::Ice::Context&) = 0;
virtual ::std::vector< ::std::string> ice_ids(const ::Ice::Context&) = 0;
virtual ::std::string ice_id(const ::Ice::Context&) = 0;
- virtual bool ice_invoke(const ::std::string&, ::Ice::OperationMode, const ::std::vector< ::Ice::Byte>&,
+ virtual bool ice_invoke(const ::std::string&, ::Ice::OperationMode,
+ const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&,
::std::vector< ::Ice::Byte>&, const ::Ice::Context&) = 0;
virtual ::Ice::ConnectionIPtr __getConnection(bool&) const = 0;
@@ -216,7 +226,8 @@ public:
virtual void ice_ping(const ::Ice::Context&);
virtual ::std::vector< ::std::string> ice_ids(const ::Ice::Context&);
virtual ::std::string ice_id(const ::Ice::Context&);
- virtual bool ice_invoke(const ::std::string&, ::Ice::OperationMode, const ::std::vector< ::Ice::Byte>&,
+ virtual bool ice_invoke(const ::std::string&, ::Ice::OperationMode,
+ const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&,
::std::vector< ::Ice::Byte>&, const ::Ice::Context&);
virtual ::Ice::ConnectionIPtr __getConnection(bool&) const;
@@ -248,7 +259,8 @@ public:
virtual void ice_ping(const ::Ice::Context&);
virtual ::std::vector< ::std::string> ice_ids(const ::Ice::Context&);
virtual ::std::string ice_id(const ::Ice::Context&);
- virtual bool ice_invoke(const ::std::string&, ::Ice::OperationMode, const ::std::vector< ::Ice::Byte>&,
+ virtual bool ice_invoke(const ::std::string&, ::Ice::OperationMode,
+ const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&,
::std::vector< ::Ice::Byte>&, const ::Ice::Context&);
virtual ::Ice::ConnectionIPtr __getConnection(bool&) const;
diff --git a/cpp/src/Glacier2/Blobject.cpp b/cpp/src/Glacier2/Blobject.cpp
index af5e30c2c21..044ab52f9d5 100644
--- a/cpp/src/Glacier2/Blobject.cpp
+++ b/cpp/src/Glacier2/Blobject.cpp
@@ -101,8 +101,8 @@ Glacier2::Blobject::destroy()
}
void
-Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Object_ice_invokePtr& amdCB, const ByteSeq& inParams,
- const Current& current)
+Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Object_ice_invokePtr& amdCB,
+ const std::pair<const Ice::Byte*, const Ice::Byte*>& inParams, const Current& current)
{
//
// Set the correct facet on the proxy.
diff --git a/cpp/src/Glacier2/Blobject.h b/cpp/src/Glacier2/Blobject.h
index b026bafd52f..adf9cd086da 100644
--- a/cpp/src/Glacier2/Blobject.h
+++ b/cpp/src/Glacier2/Blobject.h
@@ -16,7 +16,7 @@
namespace Glacier2
{
-class Blobject : public Ice::BlobjectAsync
+class Blobject : public Ice::BlobjectArrayAsync
{
public:
@@ -27,7 +27,8 @@ public:
protected:
- void invoke(Ice::ObjectPrx&, const Ice::AMD_Object_ice_invokePtr&, const Ice::ByteSeq&, const Ice::Current&);
+ void invoke(Ice::ObjectPrx&, const Ice::AMD_Object_ice_invokePtr&,
+ const std::pair<const Ice::Byte*, const Ice::Byte*>&, const Ice::Current&);
const Ice::CommunicatorPtr _communicator;
const Ice::PropertiesPtr _properties;
diff --git a/cpp/src/Glacier2/ClientBlobject.cpp b/cpp/src/Glacier2/ClientBlobject.cpp
index 4f1c851b4bd..d02864882ac 100644
--- a/cpp/src/Glacier2/ClientBlobject.cpp
+++ b/cpp/src/Glacier2/ClientBlobject.cpp
@@ -38,7 +38,8 @@ Glacier2::ClientBlobject::destroy()
}
void
-Glacier2::ClientBlobject::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& amdCB, const ByteSeq& inParams,
+Glacier2::ClientBlobject::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& amdCB,
+ const std::pair<const Byte*, const Byte*>& inParams,
const Current& current)
{
assert(_routingTable); // Destroyed?
diff --git a/cpp/src/Glacier2/ClientBlobject.h b/cpp/src/Glacier2/ClientBlobject.h
index 322f336c4b6..d4afcdc5f71 100644
--- a/cpp/src/Glacier2/ClientBlobject.h
+++ b/cpp/src/Glacier2/ClientBlobject.h
@@ -28,7 +28,8 @@ public:
virtual void destroy();
- virtual void ice_invoke_async(const Ice::AMD_Object_ice_invokePtr&, const Ice::ByteSeq&, const Ice::Current&);
+ virtual void ice_invoke_async(const Ice::AMD_Object_ice_invokePtr&,
+ const std::pair<const Ice::Byte*, const Ice::Byte*>&, const Ice::Current&);
private:
diff --git a/cpp/src/Glacier2/RequestQueue.cpp b/cpp/src/Glacier2/RequestQueue.cpp
index 6ed5d3fe9f6..91d25c1d40a 100644
--- a/cpp/src/Glacier2/RequestQueue.cpp
+++ b/cpp/src/Glacier2/RequestQueue.cpp
@@ -46,10 +46,10 @@ private:
}
-Glacier2::Request::Request(const ObjectPrx& proxy, const ByteSeq& inParams, const Current& current,
- bool forwardContext, const AMD_Object_ice_invokePtr& amdCB) :
+Glacier2::Request::Request(const ObjectPrx& proxy, const std::pair<const Byte*, const Byte*>& inParams,
+ const Current& current, bool forwardContext, const AMD_Object_ice_invokePtr& amdCB) :
_proxy(proxy),
- _inParams(inParams),
+ _inParams(inParams.first, inParams.second),
_current(current),
_forwardContext(forwardContext),
_amdCB(amdCB)
diff --git a/cpp/src/Glacier2/RequestQueue.h b/cpp/src/Glacier2/RequestQueue.h
index 9911592c522..c619100d19a 100644
--- a/cpp/src/Glacier2/RequestQueue.h
+++ b/cpp/src/Glacier2/RequestQueue.h
@@ -24,7 +24,7 @@ class Request : public IceUtil::Shared
{
public:
- Request(const Ice::ObjectPrx&, const Ice::ByteSeq&, const Ice::Current&, bool,
+ Request(const Ice::ObjectPrx&, const std::pair<const Ice::Byte*, const Ice::Byte*>&, const Ice::Current&, bool,
const Ice::AMD_Object_ice_invokePtr&);
void invoke();
diff --git a/cpp/src/Glacier2/ServerBlobject.cpp b/cpp/src/Glacier2/ServerBlobject.cpp
index ee57fcba7bb..39cde8f084a 100644
--- a/cpp/src/Glacier2/ServerBlobject.cpp
+++ b/cpp/src/Glacier2/ServerBlobject.cpp
@@ -34,7 +34,8 @@ Glacier2::ServerBlobject::destroy()
}
void
-Glacier2::ServerBlobject::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& amdCB, const ByteSeq& inParams,
+Glacier2::ServerBlobject::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& amdCB,
+ const std::pair<const Byte*, const Byte*>& inParams,
const Current& current)
{
assert(_connection); // Destroyed?
diff --git a/cpp/src/Glacier2/ServerBlobject.h b/cpp/src/Glacier2/ServerBlobject.h
index 99559365265..3f8e175a4af 100644
--- a/cpp/src/Glacier2/ServerBlobject.h
+++ b/cpp/src/Glacier2/ServerBlobject.h
@@ -27,7 +27,8 @@ public:
virtual void destroy();
- virtual void ice_invoke_async(const Ice::AMD_Object_ice_invokePtr&, const Ice::ByteSeq&, const Ice::Current&);
+ virtual void ice_invoke_async(const Ice::AMD_Object_ice_invokePtr&,
+ const std::pair<const Ice::Byte*, const Ice::Byte*>&, const Ice::Current&);
private:
diff --git a/cpp/src/Ice/Object.cpp b/cpp/src/Ice/Object.cpp
index f07dddce0ad..0b5ce8a9ff2 100644
--- a/cpp/src/Ice/Object.cpp
+++ b/cpp/src/Ice/Object.cpp
@@ -299,6 +299,26 @@ Ice::Blobject::__dispatch(Incoming& in, const Current& current)
}
DispatchStatus
+Ice::BlobjectArray::__dispatch(Incoming& in, const Current& current)
+{
+ pair<const Byte*, const Byte*> inParams;
+ vector<Byte> outParams;
+ Int sz = in.is()->getReadEncapsSize();
+ in.is()->readBlob(inParams.first, sz);
+ inParams.second = inParams.first + sz;
+ bool ok = ice_invoke(inParams, outParams, current);
+ in.os()->writeBlob(outParams);
+ if(ok)
+ {
+ return DispatchOK;
+ }
+ else
+ {
+ return DispatchUserException;
+ }
+}
+
+DispatchStatus
Ice::BlobjectAsync::__dispatch(Incoming& in, const Current& current)
{
vector<Byte> inParams;
@@ -324,6 +344,32 @@ Ice::BlobjectAsync::__dispatch(Incoming& in, const Current& current)
return DispatchAsync;
}
+DispatchStatus
+Ice::BlobjectArrayAsync::__dispatch(Incoming& in, const Current& current)
+{
+ pair<const Byte*, const Byte*> inParams;
+ Int sz = in.is()->getReadEncapsSize();
+ in.is()->readBlob(inParams.first, sz);
+ inParams.second = inParams.first + sz;
+ AMD_Object_ice_invokePtr cb = new ::IceAsync::Ice::AMD_Object_ice_invoke(in);
+ try
+ {
+ ice_invoke_async(cb, inParams, current);
+ }
+ catch(const Exception& ex)
+ {
+ cb->ice_exception(ex);
+ }
+ catch(const ::std::exception& ex)
+ {
+ cb->ice_exception(ex);
+ }
+ catch(...)
+ {
+ cb->ice_exception();
+ }
+ return DispatchAsync;
+}
void
Ice::ice_writeObject(const OutputStreamPtr& out, const ObjectPtr& p)
{
diff --git a/cpp/src/Ice/OutgoingAsync.cpp b/cpp/src/Ice/OutgoingAsync.cpp
index fef41fa0b86..784cc6ca356 100644
--- a/cpp/src/Ice/OutgoingAsync.cpp
+++ b/cpp/src/Ice/OutgoingAsync.cpp
@@ -417,12 +417,12 @@ IceInternal::OutgoingAsync::cleanup()
void
Ice::AMI_Object_ice_invoke::__invoke(const ObjectPrx& prx, const string& operation, OperationMode mode,
- const vector<Byte>& inParams, const Context& context)
+ const pair<const Byte*, const Byte*>& inParams, const Context& context)
{
try
{
__prepare(prx, operation, mode, context);
- __os->writeBlob(inParams);
+ __os->writeBlob(inParams.first, static_cast<Int>(inParams.second - inParams.first));
__os->endWriteEncaps();
}
catch(const LocalException& ex)
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp
index 253f5909657..37951c6a898 100644
--- a/cpp/src/Ice/Proxy.cpp
+++ b/cpp/src/Ice/Proxy.cpp
@@ -277,6 +277,35 @@ IceProxy::Ice::Object::ice_invoke(const string& operation,
vector<Byte>& outParams,
const Context& context)
{
+ pair<const Byte*, const Byte*> inPair;
+ if(inParams.size() == 0)
+ {
+ inPair.first = inPair.second = 0;
+ }
+ else
+ {
+ inPair.first = &inParams[0];
+ inPair.second = inPair.first + inParams.size();
+ }
+ return ice_invoke(operation, mode, inPair, outParams, context);
+}
+
+bool
+IceProxy::Ice::Object::ice_invoke(const string& operation,
+ OperationMode mode,
+ const pair<const Byte*, const Byte*>& inParams,
+ vector<Byte>& outParams)
+{
+ return ice_invoke(operation, mode, inParams, outParams, _reference->getContext());
+}
+
+bool
+IceProxy::Ice::Object::ice_invoke(const string& operation,
+ OperationMode mode,
+ const pair<const Byte*, const Byte*>& inParams,
+ vector<Byte>& outParams,
+ const Context& context)
+{
int __cnt = 0;
while(true)
{
@@ -320,6 +349,35 @@ IceProxy::Ice::Object::ice_invoke_async(const AMI_Object_ice_invokePtr& cb,
const vector<Byte>& inParams,
const Context& context)
{
+ pair<const Byte*, const Byte*> inPair;
+ if(inParams.size() == 0)
+ {
+ inPair.first = inPair.second = 0;
+ }
+ else
+ {
+ inPair.first = &inParams[0];
+ inPair.second = inPair.first + inParams.size();
+ }
+ ice_invoke_async(cb, operation, mode, inPair, context);
+}
+
+void
+IceProxy::Ice::Object::ice_invoke_async(const AMI_Object_ice_invokePtr& cb,
+ const string& operation,
+ OperationMode mode,
+ const pair<const Byte*, const Byte*>& inParams)
+{
+ ice_invoke_async(cb, operation, mode, inParams, _reference->getContext());
+}
+
+void
+IceProxy::Ice::Object::ice_invoke_async(const AMI_Object_ice_invokePtr& cb,
+ const string& operation,
+ OperationMode mode,
+ const pair<const Byte*, const Byte*>& inParams,
+ const Context& context)
+{
cb->__invoke(this, operation, mode, inParams, context);
}
@@ -1114,7 +1172,7 @@ IceDelegateM::Ice::Object::ice_id(const Context& __context)
bool
IceDelegateM::Ice::Object::ice_invoke(const string& operation,
OperationMode mode,
- const vector<Byte>& inParams,
+ const pair<const Byte*, const Byte*>& inParams,
vector<Byte>& outParams,
const Context& context)
{
@@ -1122,7 +1180,7 @@ IceDelegateM::Ice::Object::ice_invoke(const string& operation,
try
{
BasicStream* __os = __og.os();
- __os->writeBlob(inParams);
+ __os->writeBlob(inParams.first, static_cast<Int>(inParams.second - inParams.first));
}
catch(const ::Ice::LocalException& __ex)
{
@@ -1243,7 +1301,7 @@ IceDelegateD::Ice::Object::ice_id(const ::Ice::Context& __context)
bool
IceDelegateD::Ice::Object::ice_invoke(const string&,
OperationMode,
- const vector<Byte>&,
+ const pair<const Byte*, const Byte*>& inParams,
vector<Byte>&,
const Context&)
{
diff --git a/cpp/src/IceStorm/TopicI.cpp b/cpp/src/IceStorm/TopicI.cpp
index dbc2cf505a4..6b2f87898ca 100644
--- a/cpp/src/IceStorm/TopicI.cpp
+++ b/cpp/src/IceStorm/TopicI.cpp
@@ -25,7 +25,7 @@ namespace IceStorm
// The servant has a 1-1 association with a topic. It is used to
// receive events from Publishers.
//
-class PublisherProxyI : public Ice::Blobject
+class PublisherProxyI : public Ice::BlobjectArray
{
public:
@@ -38,7 +38,7 @@ public:
{
}
- virtual bool ice_invoke(const vector< Ice::Byte>&, vector< Ice::Byte>&, const Ice::Current&);
+ virtual bool ice_invoke(const pair<const Ice::Byte*, const Ice::Byte*>&, vector< Ice::Byte>&, const Ice::Current&);
private:
@@ -250,7 +250,7 @@ IceStorm::TopicSubscribers::clearErrorList()
// Incoming events from publishers.
//
bool
-PublisherProxyI::ice_invoke(const vector< Ice::Byte>& inParams, vector< Ice::Byte>& outParam,
+PublisherProxyI::ice_invoke(const pair<const Ice::Byte*, const Ice::Byte*>& inParams, vector< Ice::Byte>& outParam,
const Ice::Current& current)
{
const Ice::Context& context = current.ctx;
@@ -268,7 +268,7 @@ PublisherProxyI::ice_invoke(const vector< Ice::Byte>& inParams, vector< Ice::Byt
}
event->op = current.operation;
event->mode = current.mode;
- event->data = inParams;
+ vector<Ice::Byte>(inParams.first, inParams.second).swap(event->data);
event->context = context;
_subscribers->publish(event);