Did a lot more work on abtracting and organizing the platforms. 

On Mac OS X we now have 3 platforms:
PlatformDarwin - must be subclassed to fill in the missing pure virtual funcs
                 but this implements all the common functionality between
                 remote-macosx and remote-ios. It also allows for another
                 platform to be used (remote-gdb-server for now) when doing
                 remote connections. Keeping this pluggable will allow for
                 flexibility.
PlatformMacOSX - Now implements both local and remote macosx desktop platforms.
PlatformRemoteiOS - Remote only iOS that knows how to locate SDK files in the
                    cached SDK locations on the host.

A new agnostic platform has been created:
PlatformRemoteGDBServer - this implements the platform using the GDB remote 
                          protocol and uses the built in lldb_private::Host
                          static functions to implement many queries.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128193 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
index 4e0b24d..66ddc77 100644
--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
@@ -35,6 +35,7 @@
 
     bool
     GetPacketAndSendResponse (const lldb_private::TimeValue* timeout_ptr,
+                              lldb_private::Error &error,
                               bool &interrupt, 
                               bool &quit);
 
@@ -44,23 +45,26 @@
         return true;
     }
 
-    virtual bool
-    GetSendAcks ()
-    {
-        return m_send_acks;
-    }
+    // After connecting, do a little handshake with the client to make sure
+    // we are at least communicating
+    bool
+    HandshakeWithClient (lldb_private::Error *error_ptr);
 
 protected:
     lldb::thread_t m_async_thread;
-    bool m_send_acks;
 
     size_t
     SendUnimplementedResponse ();
 
+    size_t
+    SendOKResponse ();
 
     bool
     Handle_qHostInfo ();
 
+    bool
+    Handle_QStartNoAckMode ();
+
 private:
     //------------------------------------------------------------------
     // For GDBRemoteCommunicationServer only