summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ConnectionI.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2014-07-24 16:06:51 +0000
committerBernard Normier <bernard@zeroc.com>2014-07-24 16:06:51 +0000
commitac23953bb2f5ab0bac337f15d4d8739e7aa1ce5c (patch)
tree3af419df5b8c46c809d579fdcd7165135f452d8f /cpp/src/Ice/ConnectionI.cpp
parentVS 2010 build fix (diff)
downloadice-ac23953bb2f5ab0bac337f15d4d8739e7aa1ce5c.tar.bz2
ice-ac23953bb2f5ab0bac337f15d4d8739e7aa1ce5c.tar.xz
ice-ac23953bb2f5ab0bac337f15d4d8739e7aa1ce5c.zip
Completed fix for ICE-5567: move various C++11 classes/functions out of line
Diffstat (limited to 'cpp/src/Ice/ConnectionI.cpp')
-rw-r--r--cpp/src/Ice/ConnectionI.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp
index d9588b62e89..01f18e6e91f 100644
--- a/cpp/src/Ice/ConnectionI.cpp
+++ b/cpp/src/Ice/ConnectionI.cpp
@@ -983,6 +983,45 @@ Ice::ConnectionI::begin_flushBatchRequests(const Callback_Connection_flushBatchR
return __begin_flushBatchRequests(cb, cookie);
}
+#ifdef ICE_CPP11
+AsyncResultPtr
+Ice::ConnectionI::begin_flushBatchRequests(
+ const IceInternal::Function<void (const Exception&)>& exception,
+ const IceInternal::Function<void (bool)>& sent)
+{
+
+ class Cpp11CB : public IceInternal::Cpp11FnCallbackNC
+ {
+ public:
+
+ Cpp11CB(const IceInternal::Function<void (const Exception&)>& excb,
+ const IceInternal::Function<void (bool)>& sentcb) :
+ IceInternal::Cpp11FnCallbackNC(excb, sentcb)
+ {
+ CallbackBase::checkCallback(true, excb != nullptr);
+ }
+
+ virtual void
+ __completed(const AsyncResultPtr& __result) const
+ {
+ ConnectionPtr __con = __result->getConnection();
+ assert(__con);
+ try
+ {
+ __con->end_flushBatchRequests(__result);
+ assert(false);
+ }
+ catch(const Exception& ex)
+ {
+ IceInternal::Cpp11FnCallbackNC::__exception(__result, ex);
+ }
+ }
+ };
+
+ return __begin_flushBatchRequests(new Cpp11CB(exception, sent), 0);
+}
+#endif
+
AsyncResultPtr
Ice::ConnectionI::__begin_flushBatchRequests(const CallbackBasePtr& cb, const LocalObjectPtr& cookie)
{