@@ -73,6 +73,14 @@ IE_CORE_DEFINERUNTIMETYPED( DisplayDriverServer );
7373namespace
7474{
7575
76+ struct MergeDriverInfo
77+ {
78+ DisplayDriverPtr mergeDriver = nullptr ;
79+ int mergeCount = 0 ;
80+ };
81+
82+ using MergeMap = std::map<int , MergeDriverInfo>;
83+
7684/* Set the FD_CLOEXEC flag for the given socket descriptor, so that it will not exist on child processes.*/
7785static void fixSocketFlags ( int socketDesc )
7886{
@@ -98,7 +106,7 @@ class DisplayDriverServer::Session : public RefCounted
98106{
99107 public:
100108
101- Session ( boost::asio::io_service& io_service, DisplayDriverServer:: MergeMap& mergeMap );
109+ Session ( boost::asio::io_service& io_service, MergeMap& mergeMap );
102110 ~Session () override ;
103111
104112 boost::asio::ip::tcp::socket& socket ();
@@ -117,7 +125,7 @@ class DisplayDriverServer::Session : public RefCounted
117125 DisplayDriverPtr m_displayDriver;
118126 DisplayDriverServerHeader m_header;
119127 CharVectorDataPtr m_buffer;
120- DisplayDriverServer:: MergeMap& m_mergeMap;
128+ MergeMap& m_mergeMap;
121129 std::optional<int > m_mergeId;
122130};
123131
@@ -130,6 +138,7 @@ class DisplayDriverServer::PrivateData : public RefCounted
130138 boost::asio::io_service m_service;
131139 boost::asio::ip::tcp::acceptor m_acceptor;
132140 std::thread m_thread;
141+ MergeMap m_mergeMap;
133142
134143 PrivateData ( DisplayDriverServer::Port portNumber ) :
135144 m_service (),
@@ -201,7 +210,7 @@ DisplayDriverServer::DisplayDriverServer( DisplayDriverServer::Port portNumber )
201210{
202211 m_data = new DisplayDriverServer::PrivateData ( portNumber );
203212
204- DisplayDriverServer::SessionPtr newSession ( new DisplayDriverServer::Session ( m_data->m_service , m_mergeMap ) );
213+ DisplayDriverServer::SessionPtr newSession ( new DisplayDriverServer::Session ( m_data->m_service , m_data-> m_mergeMap ) );
205214 m_data->m_acceptor .async_accept ( newSession->socket (),
206215 boost::bind ( &DisplayDriverServer::handleAccept, this , newSession,
207216 boost::asio::placeholders::error));
@@ -285,7 +294,7 @@ void DisplayDriverServer::handleAccept( DisplayDriverServer::SessionPtr session,
285294{
286295 if (!error)
287296 {
288- DisplayDriverServer::SessionPtr newSession ( new DisplayDriverServer::Session ( m_data->m_service , m_mergeMap ) );
297+ DisplayDriverServer::SessionPtr newSession ( new DisplayDriverServer::Session ( m_data->m_service , m_data-> m_mergeMap ) );
289298 m_data->m_acceptor .async_accept ( newSession->socket (),
290299 boost::bind ( &DisplayDriverServer::handleAccept, this , newSession,
291300 boost::asio::placeholders::error));
@@ -297,7 +306,7 @@ void DisplayDriverServer::handleAccept( DisplayDriverServer::SessionPtr session,
297306 * DisplayDriverServer::Session functions
298307 */
299308
300- DisplayDriverServer::Session::Session ( boost::asio::io_service& io_service, DisplayDriverServer:: MergeMap& mergeMap ) :
309+ DisplayDriverServer::Session::Session ( boost::asio::io_service& io_service, MergeMap& mergeMap ) :
301310 m_socket( io_service ), m_displayDriver(nullptr ), m_buffer( new CharVectorData( ) ), m_mergeMap( mergeMap )
302311{
303312}
0 commit comments