]> source.dussan.org Git - tigervnc.git/commitdiff
Code refactoring: passing VNCServer pointer to PollingManager methods
authorConstantin Kaplinsky <const@tightvnc.com>
Tue, 3 Jun 2008 07:04:17 +0000 (07:04 +0000)
committerConstantin Kaplinsky <const@tightvnc.com>
Tue, 3 Jun 2008 07:04:17 +0000 (07:04 +0000)
instead of maintaining it as a member variable.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2569 3789f03b-4d11-0410-bbf8-ca57d06f2519

unix/x0vncserver/PollingManager.cxx
unix/x0vncserver/PollingManager.h
unix/x0vncserver/x0vncserver.cxx

index 9a9f28aff9c4297e944b37fbd3aa29fb129ff642..27f102853efce761d9c9bfc32f6a50b961ab075f 100644 (file)
@@ -51,7 +51,6 @@ PollingManager::PollingManager(Display *dpy, XPixelBuffer *buffer,
                                ImageFactory *factory,
                                int offsetLeft, int offsetTop)
   : m_dpy(dpy),
-    m_server(0),
     m_image(buffer->getImage()),
     m_bytesPerPixel(buffer->getPF().bpp / 8),
     m_offsetLeft(offsetLeft),
@@ -90,15 +89,6 @@ PollingManager::~PollingManager()
   delete m_columnImage;
 }
 
-//
-// Register VNCServer object.
-//
-
-void PollingManager::setVNCServer(VNCServer *s)
-{
-  m_server = s;
-}
-
 //
 // DEBUG: Measuring time spent in the poll() function,
 //        as well as time intervals between poll() calls.
@@ -127,15 +117,15 @@ void PollingManager::debugAfterPoll()
 // Search for changed rectangles on the screen.
 //
 
-void PollingManager::poll()
+void PollingManager::poll(VNCServer *server)
 {
 #ifdef DEBUG
   debugBeforePoll();
 #endif
 
   // Perform polling and try update clients if changes were detected.
-  if (pollScreen())
-    m_server->tryUpdate();
+  if (pollScreen(server))
+    server->tryUpdate();
 
 #ifdef DEBUG
   debugAfterPoll();
@@ -148,9 +138,9 @@ void PollingManager::poll()
 #define DBG_REPORT_CHANGES(title)
 #endif
 
-bool PollingManager::pollScreen()
+bool PollingManager::pollScreen(VNCServer *server)
 {
-  if (!m_server)
+  if (!server)
     return false;
 
   // Clear the m_changeFlags[] array, indicating that no changes have
@@ -175,7 +165,7 @@ bool PollingManager::pollScreen()
     checkNeighbors();
     DBG_REPORT_CHANGES("After checking neighbors");
     // Inform the server about the changes.
-    nTilesChanged = sendChanges();
+    nTilesChanged = sendChanges(server);
   }
 
 #ifdef DEBUG_PRINT_NUM_CHANGED_TILES
@@ -265,7 +255,7 @@ int PollingManager::checkColumn(int x, int y, int h, bool *pChangeFlags)
   return nTilesChanged;
 }
 
-int PollingManager::sendChanges()
+int PollingManager::sendChanges(VNCServer *server)
 {
   const bool *pChangeFlags = m_changeFlags;
   int nTilesChanged = 0;
@@ -287,7 +277,7 @@ int PollingManager::sendChanges()
         if (rect.br.y > m_height)
           rect.br.y = m_height;
         // Add to the changed region maintained by the server.
-        m_server->add_changed(rect);
+        server->add_changed(rect);
         // Skip processed tiles.
         x += count;
       }
index 97a158fa412f732840615b5b071187b6d45786ce..587e347b7477244e95e85e9a5eea567526173a71 100644 (file)
@@ -43,8 +43,6 @@ public:
                  int offsetLeft = 0, int offsetTop = 0);
   virtual ~PollingManager();
 
-  void setVNCServer(VNCServer *s);
-
   // Currently, these functions do nothing. In past versions, we used
   // to poll area around the pointer if its position has been changed
   // recently. But that rather decreased overal polling performance,
@@ -54,15 +52,14 @@ public:
   void setPointerPos(const Point &pos) {}
   void unsetPointerPos() {}
 
-  void poll();
+  void poll(VNCServer *server);
 
 protected:
 
   // Screen polling. Returns true if some changes were detected.
-  bool pollScreen();
+  bool pollScreen(VNCServer *server);
 
   Display *m_dpy;
-  VNCServer *m_server;
 
   const Image *m_image;
   const int m_bytesPerPixel;
@@ -98,7 +95,7 @@ private:
 
   int checkRow(int x, int y, int w);
   int checkColumn(int x, int y, int h, bool *pChangeFlags);
-  int sendChanges();
+  int sendChanges(VNCServer *server);
 
   // Check neighboring tiles and update m_changeFlags[].
   void checkNeighbors();
index 8489290a1f6c105163c5a1e09b9ee5e56eb5bb05..edaf1a8cf3a0050f603515f85ffcd7df6c71c1b0 100644 (file)
@@ -202,8 +202,6 @@ public:
     pollmgr = new PollingManager(dpy, pb, &factory,
                                  geometry->offsetLeft(),
                                  geometry->offsetTop());
-    pollmgr->setVNCServer(vs);
-
     running = true;
   }
 
@@ -225,7 +223,7 @@ public:
 
   inline void poll() {
     if (pollmgr)
-      pollmgr->poll();
+      pollmgr->poll(server);
   }
 
   virtual void pointerEvent(const Point& pos, int buttonMask) {