throw NotImplementedException();
}
+void RequestTaker::contextClosed(RequestContextPtr context UNUSED) {
+ throw NotImplementedException();
+}
+
} // namespace Cynara
virtual void execute(RequestContextPtr context, RemoveBucketRequestPtr request);
virtual void execute(RequestContextPtr context, SetPoliciesRequestPtr request);
virtual void execute(RequestContextPtr context, SignalRequestPtr request);
+
+ virtual void contextClosed(RequestContextPtr context);
};
} // namespace Cynara
request->sequenceNumber()));
}
+void Logic::contextClosed(RequestContextPtr context UNUSED) {
+ //We don't care now, but we will
+}
+
void Logic::onPoliciesChanged(void) {
m_storage->save();
m_socketManager->disconnectAllClients();
virtual void execute(RequestContextPtr context, SetPoliciesRequestPtr request);
virtual void execute(RequestContextPtr context, SignalRequestPtr request);
+ virtual void contextClosed(RequestContextPtr context);
+
private:
PluginManagerPtr m_pluginManager;
StoragePtr m_storage;
void SocketManager::closeSocket(int fd) {
LOGD("SocketManger closeSocket fd [%d] start", fd);
+ Descriptor &desc = m_fds[fd];
+ requestTaker()->contextClosed(std::make_shared<RequestContext>(nullptr,
+ desc.writeQueue()));
removeReadSocket(fd);
removeWriteSocket(fd);
- m_fds[fd].clear();
+ desc.clear();
close(fd);
LOGD("SocketManger closeSocket fd [%d] done", fd);
}