AudioFlinger: Extract inner Client class

Test: atest audiorecord_tests audiotrack_tests audiorouting_tests trackplayerbase_tests audiosystem_tests
Test: atest AudioTrackTest AudioRecordTest
Test: YouTube and Camera
Bug: 288339104
Bug: 289135349
Merged-In: I5b2973c12b3d36663fadd2e5ed362602785e1447
Change-Id: I5b2973c12b3d36663fadd2e5ed362602785e1447
(cherry picked from commit 59867e43c84de5563c73043594e13941cd016246)
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index e2d340b..8fbf692 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -117,6 +117,8 @@
 #include "android/media/BnAudioRecord.h"
 #include "android/media/BnEffect.h"
 
+#include "Client.h"
+
 // include AudioFlinger component interfaces
 #include "IAfEffect.h"
 
@@ -146,6 +148,7 @@
 class AudioFlinger : public AudioFlingerServerAdapter::Delegate
 {
     friend class sp<AudioFlinger>;
+    friend class Client; // removeClient_l();
 public:
     static void instantiate() ANDROID_API;
 
@@ -497,26 +500,6 @@
 private:
     void dumpToThreadLog_l(const sp<ThreadBase> &thread);
 
-public:
-    // TODO(b/288339104) Move to separate file
-    // --- Client ---
-    class Client : public RefBase {
-      public:
-        Client(const sp<AudioFlinger>& audioFlinger, pid_t pid);
-        virtual             ~Client();
-        AllocatorFactory::ClientAllocator& allocator();
-        pid_t               pid() const { return mPid; }
-        sp<AudioFlinger>    audioFlinger() const { return mAudioFlinger; }
-
-    private:
-        DISALLOW_COPY_AND_ASSIGN(Client);
-
-        const sp<AudioFlinger>    mAudioFlinger;
-        const pid_t         mPid;
-        AllocatorFactory::ClientAllocator mClientAllocator;
-    };
-private:
-
     // --- Notification Client ---
     class NotificationClient : public IBinder::DeathRecipient {
     public: