support all capital method name in c++

if there is a method with all capital name, it conflicts with the enum's name for the transaction ID

so remove enum and write hardcorded transaction id to prevent misuse
from client

Bug: 119525871
Test: ./runtests.sh
Test: m -j
Change-Id: Ia82b16b6262256449f4da29b549bdd74812aec5d
diff --git a/aidl_to_cpp.cpp b/aidl_to_cpp.cpp
index 17fa3d8..efd5b6b 100644
--- a/aidl_to_cpp.cpp
+++ b/aidl_to_cpp.cpp
@@ -21,6 +21,8 @@
 #include <functional>
 #include <unordered_map>
 
+using std::ostringstream;
+
 namespace android {
 namespace aidl {
 namespace cpp {
@@ -138,6 +140,15 @@
   c.writer << "\n";
 }
 
+std::string GetTransactionIdFor(const AidlMethod& method) {
+  ostringstream output;
+
+  if (method.IsUserDefined()) {
+    output << "::android::IBinder::FIRST_CALL_TRANSACTION + ";
+  }
+  output << method.GetId() << " /* " << method.GetName() << " */";
+  return output.str();
+}
 }  // namespace cpp
 }  // namespace aidl
 }  // namespace android
diff --git a/aidl_to_cpp.h b/aidl_to_cpp.h
index fda5196..8aff371 100644
--- a/aidl_to_cpp.h
+++ b/aidl_to_cpp.h
@@ -39,6 +39,7 @@
 // the Json object
 void WriteLogFor(const CodeGeneratorContext& c);
 
+std::string GetTransactionIdFor(const AidlMethod& method);
 }  // namespace cpp
 }  // namespace aidl
 }  // namespace android
diff --git a/generate_cpp.cpp b/generate_cpp.cpp
index ea66d7d..34fc136 100644
--- a/generate_cpp.cpp
+++ b/generate_cpp.cpp
@@ -92,13 +92,6 @@
   return unique_ptr<AstNode>(ret);
 }
 
-string UpperCase(const std::string& s) {
-  string result = s;
-  for (char& c : result)
-    c = toupper(c);
-  return result;
-}
-
 ArgList BuildArgList(const TypeNamespace& types, const AidlMethod& method, bool for_declaration,
                      bool type_name_only = false) {
   // Build up the argument list for the server method call.
@@ -319,8 +312,7 @@
   }
 
   // Invoke the transaction on the remote binder and confirm status.
-  string transaction_code = StringPrintf(
-      "%s::%s", i_name.c_str(), UpperCase(method.GetName()).c_str());
+  string transaction_code = GetTransactionIdFor(method);
 
   vector<string> args = {transaction_code, kDataVarName,
                          StringPrintf("&%s", kReplyVarName)};
@@ -501,8 +493,8 @@
          << "  if (cached_version_ != -1) {\n"
          << "    ::android::Parcel data;\n"
          << "    ::android::Parcel reply;\n"
-         << "    ::android::status_t err = remote()->transact(" << iface
-         << "::" << UpperCase(kGetInterfaceVersion) << ", data, &reply);\n"
+         << "    ::android::status_t err = remote()->transact(" << GetTransactionIdFor(method)
+         << ", data, &reply);\n"
          << "    if (err == ::android::OK) {\n"
          << "      cached_version_ = reply.readInt32();\n"
          << "    }\n"
@@ -729,7 +721,7 @@
 
   // The switch statement has a case statement for each transaction code.
   for (const auto& method : interface.GetMethods()) {
-    StatementBlock* b = s->AddCase("Call::" + UpperCase(method->GetName()));
+    StatementBlock* b = s->AddCase(GetTransactionIdFor(*method));
     if (!b) { return nullptr; }
 
     bool success = false;
@@ -1004,20 +996,14 @@
   }
 
   if (!interface.GetMethods().empty()) {
-    unique_ptr<Enum> call_enum{new Enum{"Call"}};
     for (const auto& method : interface.GetMethods()) {
       if (method->IsUserDefined()) {
         // Each method gets an enum entry and pure virtual declaration.
         if_class->AddPublic(BuildMethodDecl(*method, types, true));
-        call_enum->AddValue(
-            UpperCase(method->GetName()),
-            StringPrintf("::android::IBinder::FIRST_CALL_TRANSACTION + %d", method->GetId()));
       } else {
         if_class->AddPublic(BuildMetaMethodDecl(*method, types, options, true));
-        call_enum->AddValue(UpperCase(method->GetName()), std::to_string(method->GetId()));
       }
     }
-    if_class->AddPublic(std::move(call_enum));
   }
 
   vector<unique_ptr<Declaration>> decls;
diff --git a/generate_cpp_unittest.cpp b/generate_cpp_unittest.cpp
index 65c9824..a9ba8cd 100644
--- a/generate_cpp_unittest.cpp
+++ b/generate_cpp_unittest.cpp
@@ -122,7 +122,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::SEND, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 0 /* Send */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->Send(goes_in, goes_in_and_out, goes_out, _aidl_return);
   }
@@ -166,7 +166,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::PIFF, _aidl_data, &_aidl_reply, ::android::IBinder::FLAG_ONEWAY);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 1 /* Piff */, _aidl_data, &_aidl_reply, ::android::IBinder::FLAG_ONEWAY);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->Piff(times);
   }
@@ -191,7 +191,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::TAKESABINDER, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 2 /* TakesABinder */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->TakesABinder(f, _aidl_return);
   }
@@ -223,7 +223,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::NULLABLEBINDER, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 3 /* NullableBinder */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->NullableBinder(_aidl_return);
   }
@@ -259,7 +259,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::STRINGLISTMETHOD, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 4 /* StringListMethod */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->StringListMethod(input, output, _aidl_return);
   }
@@ -299,7 +299,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::BINDERLISTMETHOD, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 5 /* BinderListMethod */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->BinderListMethod(input, output, _aidl_return);
   }
@@ -339,7 +339,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::TAKESAFILEDESCRIPTOR, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 6 /* TakesAFileDescriptor */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->TakesAFileDescriptor(f, _aidl_return);
   }
@@ -375,7 +375,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::TAKESAFILEDESCRIPTORARRAY, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 7 /* TakesAFileDescriptorArray */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->TakesAFileDescriptorArray(f, _aidl_return);
   }
@@ -438,7 +438,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::SEND, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 0 /* Send */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->Send(goes_in, goes_in_and_out, goes_out, _aidl_return);
   }
@@ -483,7 +483,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::PIFF, _aidl_data, &_aidl_reply, ::android::IBinder::FLAG_ONEWAY);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 1 /* Piff */, _aidl_data, &_aidl_reply, ::android::IBinder::FLAG_ONEWAY);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->Piff(times);
   }
@@ -509,7 +509,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::TAKESABINDER, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 2 /* TakesABinder */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->TakesABinder(f, _aidl_return);
   }
@@ -542,7 +542,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::NULLABLEBINDER, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 3 /* NullableBinder */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->NullableBinder(_aidl_return);
   }
@@ -579,7 +579,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::STRINGLISTMETHOD, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 4 /* StringListMethod */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->StringListMethod(input, output, _aidl_return);
   }
@@ -620,7 +620,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::BINDERLISTMETHOD, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 5 /* BinderListMethod */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->BinderListMethod(input, output, _aidl_return);
   }
@@ -661,7 +661,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::TAKESAFILEDESCRIPTOR, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 6 /* TakesAFileDescriptor */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->TakesAFileDescriptor(f, _aidl_return);
   }
@@ -698,7 +698,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IComplexTypeInterface::TAKESAFILEDESCRIPTORARRAY, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 7 /* TakesAFileDescriptorArray */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IComplexTypeInterface::getDefaultImpl())) {
      return IComplexTypeInterface::getDefaultImpl()->TakesAFileDescriptorArray(f, _aidl_return);
   }
@@ -750,7 +750,7 @@
 )";
 
 const char kExpectedComplexTypeServerSourceOutput[] =
-R"(#include <android/os/BnComplexTypeInterface.h>
+    R"(#include <android/os/BnComplexTypeInterface.h>
 #include <binder/Parcel.h>
 
 namespace android {
@@ -760,7 +760,7 @@
 ::android::status_t BnComplexTypeInterface::onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) {
   ::android::status_t _aidl_ret_status = ::android::OK;
   switch (_aidl_code) {
-  case Call::SEND:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 0 /* Send */:
   {
     ::std::unique_ptr<::std::vector<int32_t>> in_goes_in;
     ::std::vector<double> in_goes_in_and_out;
@@ -804,7 +804,7 @@
     }
   }
   break;
-  case Call::PIFF:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 1 /* Piff */:
   {
     int32_t in_times;
     if (!(_aidl_data.checkInterface(this))) {
@@ -818,7 +818,7 @@
     ::android::binder::Status _aidl_status(Piff(in_times));
   }
   break;
-  case Call::TAKESABINDER:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 2 /* TakesABinder */:
   {
     ::android::sp<::foo::IFooType> in_f;
     ::android::sp<::foo::IFooType> _aidl_return;
@@ -844,7 +844,7 @@
     }
   }
   break;
-  case Call::NULLABLEBINDER:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 3 /* NullableBinder */:
   {
     ::android::sp<::foo::IFooType> _aidl_return;
     if (!(_aidl_data.checkInterface(this))) {
@@ -865,7 +865,7 @@
     }
   }
   break;
-  case Call::STRINGLISTMETHOD:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 4 /* StringListMethod */:
   {
     ::std::vector<::android::String16> in_input;
     ::std::vector<::android::String16> out_output;
@@ -896,7 +896,7 @@
     }
   }
   break;
-  case Call::BINDERLISTMETHOD:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 5 /* BinderListMethod */:
   {
     ::std::vector<::android::sp<::android::IBinder>> in_input;
     ::std::vector<::android::sp<::android::IBinder>> out_output;
@@ -927,7 +927,7 @@
     }
   }
   break;
-  case Call::TAKESAFILEDESCRIPTOR:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 6 /* TakesAFileDescriptor */:
   {
     ::android::base::unique_fd in_f;
     ::android::base::unique_fd _aidl_return;
@@ -953,7 +953,7 @@
     }
   }
   break;
-  case Call::TAKESAFILEDESCRIPTORARRAY:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 7 /* TakesAFileDescriptorArray */:
   {
     ::std::vector<::android::base::unique_fd> in_f;
     ::std::vector<::android::base::unique_fd> _aidl_return;
@@ -997,7 +997,7 @@
 )";
 
 const char kExpectedComplexTypeServerWithTraceSourceOutput[] =
-R"(#include <android/os/BnComplexTypeInterface.h>
+    R"(#include <android/os/BnComplexTypeInterface.h>
 #include <binder/Parcel.h>
 
 namespace android {
@@ -1007,7 +1007,7 @@
 ::android::status_t BnComplexTypeInterface::onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) {
   ::android::status_t _aidl_ret_status = ::android::OK;
   switch (_aidl_code) {
-  case Call::SEND:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 0 /* Send */:
   {
     ::std::unique_ptr<::std::vector<int32_t>> in_goes_in;
     ::std::vector<double> in_goes_in_and_out;
@@ -1053,7 +1053,7 @@
     }
   }
   break;
-  case Call::PIFF:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 1 /* Piff */:
   {
     int32_t in_times;
     if (!(_aidl_data.checkInterface(this))) {
@@ -1069,7 +1069,7 @@
     atrace_end(ATRACE_TAG_AIDL);
   }
   break;
-  case Call::TAKESABINDER:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 2 /* TakesABinder */:
   {
     ::android::sp<::foo::IFooType> in_f;
     ::android::sp<::foo::IFooType> _aidl_return;
@@ -1097,7 +1097,7 @@
     }
   }
   break;
-  case Call::NULLABLEBINDER:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 3 /* NullableBinder */:
   {
     ::android::sp<::foo::IFooType> _aidl_return;
     if (!(_aidl_data.checkInterface(this))) {
@@ -1120,7 +1120,7 @@
     }
   }
   break;
-  case Call::STRINGLISTMETHOD:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 4 /* StringListMethod */:
   {
     ::std::vector<::android::String16> in_input;
     ::std::vector<::android::String16> out_output;
@@ -1153,7 +1153,7 @@
     }
   }
   break;
-  case Call::BINDERLISTMETHOD:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 5 /* BinderListMethod */:
   {
     ::std::vector<::android::sp<::android::IBinder>> in_input;
     ::std::vector<::android::sp<::android::IBinder>> out_output;
@@ -1186,7 +1186,7 @@
     }
   }
   break;
-  case Call::TAKESAFILEDESCRIPTOR:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 6 /* TakesAFileDescriptor */:
   {
     ::android::base::unique_fd in_f;
     ::android::base::unique_fd _aidl_return;
@@ -1214,7 +1214,7 @@
     }
   }
   break;
-  case Call::TAKESAFILEDESCRIPTORARRAY:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 7 /* TakesAFileDescriptorArray */:
   {
     ::std::vector<::android::base::unique_fd> in_f;
     ::std::vector<::android::base::unique_fd> _aidl_return;
@@ -1292,16 +1292,6 @@
   virtual ::android::binder::Status BinderListMethod(const ::std::vector<::android::sp<::android::IBinder>>& input, ::std::vector<::android::sp<::android::IBinder>>* output, ::std::vector<::android::sp<::android::IBinder>>* _aidl_return) = 0;
   virtual ::android::binder::Status TakesAFileDescriptor(const ::android::base::unique_fd& f, ::android::base::unique_fd* _aidl_return) = 0;
   virtual ::android::binder::Status TakesAFileDescriptorArray(const ::std::vector<::android::base::unique_fd>& f, ::std::vector<::android::base::unique_fd>* _aidl_return) = 0;
-  enum Call {
-    SEND = ::android::IBinder::FIRST_CALL_TRANSACTION + 0,
-    PIFF = ::android::IBinder::FIRST_CALL_TRANSACTION + 1,
-    TAKESABINDER = ::android::IBinder::FIRST_CALL_TRANSACTION + 2,
-    NULLABLEBINDER = ::android::IBinder::FIRST_CALL_TRANSACTION + 3,
-    STRINGLISTMETHOD = ::android::IBinder::FIRST_CALL_TRANSACTION + 4,
-    BINDERLISTMETHOD = ::android::IBinder::FIRST_CALL_TRANSACTION + 5,
-    TAKESAFILEDESCRIPTOR = ::android::IBinder::FIRST_CALL_TRANSACTION + 6,
-    TAKESAFILEDESCRIPTORARRAY = ::android::IBinder::FIRST_CALL_TRANSACTION + 7,
-  };
 };  // class IComplexTypeInterface
 
 class IComplexTypeInterfaceDefault : public IComplexTypeInterface {
diff --git a/tests/aidl_test_service.cpp b/tests/aidl_test_service.cpp
index 4b4eb12..6bb8a63 100644
--- a/tests/aidl_test_service.cpp
+++ b/tests/aidl_test_service.cpp
@@ -473,7 +473,7 @@
 
   android::status_t onTransact(uint32_t code, const Parcel& data, Parcel* reply,
                                uint32_t flags) override {
-    if (code == Call::UNIMPLEMENTEDMETHOD) {
+    if (code == ::android::IBinder::FIRST_CALL_TRANSACTION + 45 /* UnimplementedMethod */) {
       // pretend that UnimplementedMethod isn't implemented by this service.
       return android::UNKNOWN_TRANSACTION;
     } else {
diff --git a/tests/test_data_ping_responder.cpp b/tests/test_data_ping_responder.cpp
index aaad80b..f6731cb 100644
--- a/tests/test_data_ping_responder.cpp
+++ b/tests/test_data_ping_responder.cpp
@@ -132,7 +132,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IPingResponder::PING, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 0 /* Ping */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IPingResponder::getDefaultImpl())) {
      return IPingResponder::getDefaultImpl()->Ping(input, _aidl_return);
   }
@@ -168,7 +168,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IPingResponder::NULLABLEPING, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 1 /* NullablePing */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IPingResponder::getDefaultImpl())) {
      return IPingResponder::getDefaultImpl()->NullablePing(input, _aidl_return);
   }
@@ -204,7 +204,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IPingResponder::UTF8PING, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 2 /* Utf8Ping */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IPingResponder::getDefaultImpl())) {
      return IPingResponder::getDefaultImpl()->Utf8Ping(input, _aidl_return);
   }
@@ -240,7 +240,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IPingResponder::NULLABLEUTF8PING, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 3 /* NullableUtf8Ping */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IPingResponder::getDefaultImpl())) {
      return IPingResponder::getDefaultImpl()->NullableUtf8Ping(input, _aidl_return);
   }
@@ -276,7 +276,7 @@
 ::android::status_t BnPingResponder::onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) {
   ::android::status_t _aidl_ret_status = ::android::OK;
   switch (_aidl_code) {
-  case Call::PING:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 0 /* Ping */:
   {
     ::android::String16 in_input;
     ::android::String16 _aidl_return;
@@ -302,7 +302,7 @@
     }
   }
   break;
-  case Call::NULLABLEPING:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 1 /* NullablePing */:
   {
     ::std::unique_ptr<::android::String16> in_input;
     ::std::unique_ptr<::android::String16> _aidl_return;
@@ -328,7 +328,7 @@
     }
   }
   break;
-  case Call::UTF8PING:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 2 /* Utf8Ping */:
   {
     ::std::string in_input;
     ::std::string _aidl_return;
@@ -354,7 +354,7 @@
     }
   }
   break;
-  case Call::NULLABLEUTF8PING:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 3 /* NullableUtf8Ping */:
   {
     ::std::unique_ptr<::std::string> in_input;
     ::std::unique_ptr<::std::string> _aidl_return;
@@ -420,12 +420,6 @@
   virtual ::android::binder::Status NullablePing(const ::std::unique_ptr<::android::String16>& input, ::std::unique_ptr<::android::String16>* _aidl_return) = 0;
   virtual ::android::binder::Status Utf8Ping(const ::std::string& input, ::std::string* _aidl_return) = 0;
   virtual ::android::binder::Status NullableUtf8Ping(const ::std::unique_ptr<::std::string>& input, ::std::unique_ptr<::std::string>* _aidl_return) = 0;
-  enum Call {
-    PING = ::android::IBinder::FIRST_CALL_TRANSACTION + 0,
-    NULLABLEPING = ::android::IBinder::FIRST_CALL_TRANSACTION + 1,
-    UTF8PING = ::android::IBinder::FIRST_CALL_TRANSACTION + 2,
-    NULLABLEUTF8PING = ::android::IBinder::FIRST_CALL_TRANSACTION + 3,
-  };
 };  // class IPingResponder
 
 class IPingResponderDefault : public IPingResponder {
@@ -498,9 +492,8 @@
 #endif  // AIDL_GENERATED_ANDROID_OS_BN_PING_RESPONDER_H_
 )";
 
-
 const char kExpectedCppOutputWithVersion[] =
-R"(#include <android/os/IPingResponder.h>
+    R"(#include <android/os/IPingResponder.h>
 #include <android/os/BpPingResponder.h>
 
 namespace android {
@@ -561,7 +554,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IPingResponder::PING, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 0 /* Ping */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IPingResponder::getDefaultImpl())) {
      return IPingResponder::getDefaultImpl()->Ping(input, _aidl_return);
   }
@@ -597,7 +590,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IPingResponder::NULLABLEPING, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 1 /* NullablePing */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IPingResponder::getDefaultImpl())) {
      return IPingResponder::getDefaultImpl()->NullablePing(input, _aidl_return);
   }
@@ -633,7 +626,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IPingResponder::UTF8PING, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 2 /* Utf8Ping */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IPingResponder::getDefaultImpl())) {
      return IPingResponder::getDefaultImpl()->Utf8Ping(input, _aidl_return);
   }
@@ -669,7 +662,7 @@
   if (((_aidl_ret_status) != (::android::OK))) {
     goto _aidl_error;
   }
-  _aidl_ret_status = remote()->transact(IPingResponder::NULLABLEUTF8PING, _aidl_data, &_aidl_reply);
+  _aidl_ret_status = remote()->transact(::android::IBinder::FIRST_CALL_TRANSACTION + 3 /* NullableUtf8Ping */, _aidl_data, &_aidl_reply);
   if (UNLIKELY(_aidl_ret_status == ::android::UNKNOWN_TRANSACTION && IPingResponder::getDefaultImpl())) {
      return IPingResponder::getDefaultImpl()->NullableUtf8Ping(input, _aidl_return);
   }
@@ -696,7 +689,7 @@
   if (cached_version_ != -1) {
     ::android::Parcel data;
     ::android::Parcel reply;
-    ::android::status_t err = remote()->transact(IPingResponder::GETINTERFACEVERSION, data, &reply);
+    ::android::status_t err = remote()->transact(1599489362 /* getInterfaceVersion */, data, &reply);
     if (err == ::android::OK) {
       cached_version_ = reply.readInt32();
     }
@@ -717,7 +710,7 @@
 ::android::status_t BnPingResponder::onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) {
   ::android::status_t _aidl_ret_status = ::android::OK;
   switch (_aidl_code) {
-  case Call::PING:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 0 /* Ping */:
   {
     ::android::String16 in_input;
     ::android::String16 _aidl_return;
@@ -743,7 +736,7 @@
     }
   }
   break;
-  case Call::NULLABLEPING:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 1 /* NullablePing */:
   {
     ::std::unique_ptr<::android::String16> in_input;
     ::std::unique_ptr<::android::String16> _aidl_return;
@@ -769,7 +762,7 @@
     }
   }
   break;
-  case Call::UTF8PING:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 2 /* Utf8Ping */:
   {
     ::std::string in_input;
     ::std::string _aidl_return;
@@ -795,7 +788,7 @@
     }
   }
   break;
-  case Call::NULLABLEUTF8PING:
+  case ::android::IBinder::FIRST_CALL_TRANSACTION + 3 /* NullableUtf8Ping */:
   {
     ::std::unique_ptr<::std::string> in_input;
     ::std::unique_ptr<::std::string> _aidl_return;
@@ -821,7 +814,7 @@
     }
   }
   break;
-  case Call::GETINTERFACEVERSION:
+  case 1599489362 /* getInterfaceVersion */:
   {
     _aidl_reply->writeInt32(IPingResponder::VERSION);
   }
@@ -868,13 +861,6 @@
   virtual ::android::binder::Status Utf8Ping(const ::std::string& input, ::std::string* _aidl_return) = 0;
   virtual ::android::binder::Status NullableUtf8Ping(const ::std::unique_ptr<::std::string>& input, ::std::unique_ptr<::std::string>* _aidl_return) = 0;
   virtual int32_t getInterfaceVersion() = 0;
-  enum Call {
-    PING = ::android::IBinder::FIRST_CALL_TRANSACTION + 0,
-    NULLABLEPING = ::android::IBinder::FIRST_CALL_TRANSACTION + 1,
-    UTF8PING = ::android::IBinder::FIRST_CALL_TRANSACTION + 2,
-    NULLABLEUTF8PING = ::android::IBinder::FIRST_CALL_TRANSACTION + 3,
-    GETINTERFACEVERSION = 1599489362,
-  };
 };  // class IPingResponder
 
 class IPingResponderDefault : public IPingResponder {
diff --git a/tests/test_data_string_constants.cpp b/tests/test_data_string_constants.cpp
index 8644663..79046f0 100644
--- a/tests/test_data_string_constants.cpp
+++ b/tests/test_data_string_constants.cpp
@@ -369,9 +369,6 @@
   const int32_t VERSION = 10;
   static const ::android::String16& EXAMPLE_CONSTANT();
   virtual int32_t getInterfaceVersion() = 0;
-  enum Call {
-    GETINTERFACEVERSION = 1599489362,
-  };
 };  // class IStringConstants
 
 class IStringConstantsDefault : public IStringConstants {
@@ -430,7 +427,7 @@
   if (cached_version_ != -1) {
     ::android::Parcel data;
     ::android::Parcel reply;
-    ::android::status_t err = remote()->transact(IStringConstants::GETINTERFACEVERSION, data, &reply);
+    ::android::status_t err = remote()->transact(1599489362 /* getInterfaceVersion */, data, &reply);
     if (err == ::android::OK) {
       cached_version_ = reply.readInt32();
     }
@@ -451,7 +448,7 @@
 ::android::status_t BnStringConstants::onTransact(uint32_t _aidl_code, const ::android::Parcel& _aidl_data, ::android::Parcel* _aidl_reply, uint32_t _aidl_flags) {
   ::android::status_t _aidl_ret_status = ::android::OK;
   switch (_aidl_code) {
-  case Call::GETINTERFACEVERSION:
+  case 1599489362 /* getInterfaceVersion */:
   {
     _aidl_reply->writeInt32(IStringConstants::VERSION);
   }