Support priority based dumpsys in surface flinger

Call dump with no args when called with CRITICAL priority. Register
service with support for critical priority dumps.

BUG: 31774394

Test: adb bugreport ~/tmp.zip
Test: adb shell dumpsys --priority CRITICAL
Test: mmm -j32 frameworks/native/services/utils && \
      adb sync data && adb shell /data/nativetest/prioritydumper_test/prioritydumper_test && \
      adb shell /data/nativetest64/prioritydumper_test/prioritydumper_test && \
      printf "\n\n#### ALL TESTS PASSED ####\n"

Change-Id: I29140808493eb7c8805bfa338ab9a335154862b4
diff --git a/services/utils/PriorityDumper.cpp b/services/utils/PriorityDumper.cpp
index 555cf03..9851188 100644
--- a/services/utils/PriorityDumper.cpp
+++ b/services/utils/PriorityDumper.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "include/PriorityDumper.h"
+#include "include/serviceutils/PriorityDumper.h"
 
 namespace android {
 
@@ -25,22 +25,35 @@
     }
 }
 
-void priorityDump(PriorityDumper& dumper, int fd, const Vector<String16>& args) {
+status_t PriorityDumper::dumpAll(int fd, const Vector<String16>& args) {
+    status_t status;
+    status = dumpCritical(fd, args);
+    if (status != OK) return status;
+    status = dumpHigh(fd, args);
+    if (status != OK) return status;
+    status = dumpNormal(fd, args);
+    if (status != OK) return status;
+    return status;
+}
+
+status_t PriorityDumper::priorityDump(int fd, const Vector<String16>& args) {
+    status_t status;
     if (args.size() >= 2 && args[0] == PRIORITY_ARG) {
         String16 priority = args[1];
         Vector<String16> strippedArgs;
         getStrippedArgs(strippedArgs, args, 2);
         if (priority == PRIORITY_ARG_CRITICAL) {
-            dumper.dumpCritical(fd, strippedArgs);
+            status = dumpCritical(fd, strippedArgs);
         } else if (priority == PRIORITY_ARG_HIGH) {
-            dumper.dumpHigh(fd, strippedArgs);
+            status = dumpHigh(fd, strippedArgs);
         } else if (priority == PRIORITY_ARG_NORMAL) {
-            dumper.dumpNormal(fd, strippedArgs);
+            status = dumpNormal(fd, strippedArgs);
         } else {
-            dumper.dump(fd, args);
+            status = dumpAll(fd, args);
         }
     } else {
-        dumper.dump(fd, args);
+        status = dumpAll(fd, args);
     }
+    return status;
 }
-} // namespace android
\ No newline at end of file
+} // namespace android