mirror of https://github.com/opencardev/aasdk
Merge pull request #17 from f1xpl/feature/performance_improvements
Remove wrapping of handlers in shared_ptrpull/1/head
commit
839fd0f7af
|
@ -66,8 +66,8 @@ public:
|
||||||
{
|
{
|
||||||
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
||||||
|
|
||||||
resolveHandler_ = std::make_shared<ResolveHandler>(std::move(resolveHandler));
|
resolveHandler_ = std::move(resolveHandler);
|
||||||
rejectHandler_ = rejectHandler == nullptr ? nullptr : std::make_shared<RejectHandler>(std::move(rejectHandler));
|
rejectHandler_ = std::move(rejectHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
void resolve(ResolveArgumentType argument)
|
void resolve(ResolveArgumentType argument)
|
||||||
|
@ -77,12 +77,12 @@ public:
|
||||||
if(resolveHandler_ != nullptr && this->isPending())
|
if(resolveHandler_ != nullptr && this->isPending())
|
||||||
{
|
{
|
||||||
ioContextWrapper_.post([argument = std::move(argument), resolveHandler = std::move(resolveHandler_)]() mutable {
|
ioContextWrapper_.post([argument = std::move(argument), resolveHandler = std::move(resolveHandler_)]() mutable {
|
||||||
(*resolveHandler)(std::move(argument));
|
resolveHandler(std::move(argument));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ioContextWrapper_.reset();
|
ioContextWrapper_.reset();
|
||||||
rejectHandler_.reset();
|
rejectHandler_ = RejectHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reject(ErrorArgumentType error)
|
void reject(ErrorArgumentType error)
|
||||||
|
@ -92,12 +92,12 @@ public:
|
||||||
if(rejectHandler_ != nullptr && this->isPending())
|
if(rejectHandler_ != nullptr && this->isPending())
|
||||||
{
|
{
|
||||||
ioContextWrapper_.post([error = std::move(error), rejectHandler = std::move(rejectHandler_)]() mutable {
|
ioContextWrapper_.post([error = std::move(error), rejectHandler = std::move(rejectHandler_)]() mutable {
|
||||||
(*rejectHandler)(std::move(error));
|
rejectHandler(std::move(error));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ioContextWrapper_.reset();
|
ioContextWrapper_.reset();
|
||||||
resolveHandler_.reset();
|
resolveHandler_ = ResolveHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -106,8 +106,8 @@ private:
|
||||||
return ioContextWrapper_.isActive();
|
return ioContextWrapper_.isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<ResolveHandler> resolveHandler_;
|
ResolveHandler resolveHandler_;
|
||||||
std::shared_ptr<RejectHandler> rejectHandler_;
|
RejectHandler rejectHandler_;
|
||||||
IOContextWrapper ioContextWrapper_;
|
IOContextWrapper ioContextWrapper_;
|
||||||
std::mutex mutex_;
|
std::mutex mutex_;
|
||||||
};
|
};
|
||||||
|
@ -147,8 +147,8 @@ public:
|
||||||
{
|
{
|
||||||
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
||||||
|
|
||||||
resolveHandler_ = std::make_shared<ResolveHandler>(std::move(resolveHandler));
|
resolveHandler_ = std::move(resolveHandler);
|
||||||
rejectHandler_ = rejectHandler == nullptr ? nullptr : std::make_shared<RejectHandler>(std::move(rejectHandler));
|
rejectHandler_ = std::move(rejectHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
void resolve()
|
void resolve()
|
||||||
|
@ -158,12 +158,12 @@ public:
|
||||||
if(resolveHandler_ != nullptr && this->isPending())
|
if(resolveHandler_ != nullptr && this->isPending())
|
||||||
{
|
{
|
||||||
ioContextWrapper_.post([resolveHandler = std::move(resolveHandler_)]() mutable {
|
ioContextWrapper_.post([resolveHandler = std::move(resolveHandler_)]() mutable {
|
||||||
(*resolveHandler)();
|
resolveHandler();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ioContextWrapper_.reset();
|
ioContextWrapper_.reset();
|
||||||
rejectHandler_.reset();
|
rejectHandler_ = RejectHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reject(ErrorArgumentType error)
|
void reject(ErrorArgumentType error)
|
||||||
|
@ -173,12 +173,12 @@ public:
|
||||||
if(rejectHandler_ != nullptr && this->isPending())
|
if(rejectHandler_ != nullptr && this->isPending())
|
||||||
{
|
{
|
||||||
ioContextWrapper_.post([error = std::move(error), rejectHandler = std::move(rejectHandler_)]() mutable {
|
ioContextWrapper_.post([error = std::move(error), rejectHandler = std::move(rejectHandler_)]() mutable {
|
||||||
(*rejectHandler)(std::move(error));
|
rejectHandler(std::move(error));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ioContextWrapper_.reset();
|
ioContextWrapper_.reset();
|
||||||
resolveHandler_.reset();
|
resolveHandler_ = ResolveHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -187,8 +187,8 @@ private:
|
||||||
return ioContextWrapper_.isActive();
|
return ioContextWrapper_.isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<ResolveHandler> resolveHandler_;
|
ResolveHandler resolveHandler_;
|
||||||
std::shared_ptr<RejectHandler> rejectHandler_;
|
RejectHandler rejectHandler_;
|
||||||
IOContextWrapper ioContextWrapper_;
|
IOContextWrapper ioContextWrapper_;
|
||||||
std::mutex mutex_;
|
std::mutex mutex_;
|
||||||
};
|
};
|
||||||
|
@ -227,8 +227,8 @@ public:
|
||||||
{
|
{
|
||||||
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
||||||
|
|
||||||
resolveHandler_ = std::make_shared<ResolveHandler>(std::move(resolveHandler));
|
resolveHandler_ = std::move(resolveHandler);
|
||||||
rejectHandler_ = rejectHandler == nullptr ? nullptr : std::make_shared<RejectHandler>(std::move(rejectHandler));
|
rejectHandler_ = std::move(rejectHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
void resolve()
|
void resolve()
|
||||||
|
@ -238,12 +238,12 @@ public:
|
||||||
if(resolveHandler_ != nullptr && this->isPending())
|
if(resolveHandler_ != nullptr && this->isPending())
|
||||||
{
|
{
|
||||||
ioContextWrapper_.post([resolveHandler = std::move(resolveHandler_)]() mutable {
|
ioContextWrapper_.post([resolveHandler = std::move(resolveHandler_)]() mutable {
|
||||||
(*resolveHandler)();
|
resolveHandler();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ioContextWrapper_.reset();
|
ioContextWrapper_.reset();
|
||||||
rejectHandler_.reset();
|
rejectHandler_ = RejectHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reject()
|
void reject()
|
||||||
|
@ -253,12 +253,12 @@ public:
|
||||||
if(rejectHandler_ != nullptr && this->isPending())
|
if(rejectHandler_ != nullptr && this->isPending())
|
||||||
{
|
{
|
||||||
ioContextWrapper_.post([rejectHandler = std::move(rejectHandler_)]() mutable {
|
ioContextWrapper_.post([rejectHandler = std::move(rejectHandler_)]() mutable {
|
||||||
(*rejectHandler)();
|
rejectHandler();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ioContextWrapper_.reset();
|
ioContextWrapper_.reset();
|
||||||
resolveHandler_.reset();
|
resolveHandler_ = ResolveHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -267,8 +267,8 @@ private:
|
||||||
return ioContextWrapper_.isActive();
|
return ioContextWrapper_.isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<ResolveHandler> resolveHandler_;
|
ResolveHandler resolveHandler_;
|
||||||
std::shared_ptr<RejectHandler> rejectHandler_;
|
RejectHandler rejectHandler_;
|
||||||
IOContextWrapper ioContextWrapper_;
|
IOContextWrapper ioContextWrapper_;
|
||||||
std::mutex mutex_;
|
std::mutex mutex_;
|
||||||
};
|
};
|
||||||
|
@ -308,8 +308,8 @@ public:
|
||||||
{
|
{
|
||||||
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
||||||
|
|
||||||
resolveHandler_ = std::make_shared<ResolveHandler>(std::move(resolveHandler));
|
resolveHandler_ = std::move(resolveHandler);
|
||||||
rejectHandler_ = rejectHandler == nullptr ? nullptr : std::make_shared<RejectHandler>(std::move(rejectHandler));
|
rejectHandler_ = std::move(rejectHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
void resolve(ResolveArgumentType argument)
|
void resolve(ResolveArgumentType argument)
|
||||||
|
@ -319,12 +319,12 @@ public:
|
||||||
if(resolveHandler_ != nullptr && this->isPending())
|
if(resolveHandler_ != nullptr && this->isPending())
|
||||||
{
|
{
|
||||||
ioContextWrapper_.post([argument = std::move(argument), resolveHandler = std::move(resolveHandler_)]() mutable {
|
ioContextWrapper_.post([argument = std::move(argument), resolveHandler = std::move(resolveHandler_)]() mutable {
|
||||||
(*resolveHandler)(std::move(argument));
|
resolveHandler(std::move(argument));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ioContextWrapper_.reset();
|
ioContextWrapper_.reset();
|
||||||
rejectHandler_.reset();
|
rejectHandler_ = RejectHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reject()
|
void reject()
|
||||||
|
@ -334,12 +334,12 @@ public:
|
||||||
if(rejectHandler_ != nullptr && this->isPending())
|
if(rejectHandler_ != nullptr && this->isPending())
|
||||||
{
|
{
|
||||||
ioContextWrapper_.post([rejectHandler = std::move(rejectHandler_)]() mutable {
|
ioContextWrapper_.post([rejectHandler = std::move(rejectHandler_)]() mutable {
|
||||||
(*rejectHandler)();
|
rejectHandler();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ioContextWrapper_.reset();
|
ioContextWrapper_.reset();
|
||||||
resolveHandler_.reset();
|
resolveHandler_ = ResolveHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -348,8 +348,8 @@ private:
|
||||||
return ioContextWrapper_.isActive();
|
return ioContextWrapper_.isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<ResolveHandler> resolveHandler_;
|
ResolveHandler resolveHandler_;
|
||||||
std::shared_ptr<RejectHandler> rejectHandler_;
|
RejectHandler rejectHandler_;
|
||||||
IOContextWrapper ioContextWrapper_;
|
IOContextWrapper ioContextWrapper_;
|
||||||
std::mutex mutex_;
|
std::mutex mutex_;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue