Minor c/c++ codegen update

1, Moved "#include <string>" from exported header to test flag provider
header file.

2, For production target and read only flags, the generated c
api should just return default value instead of calling into c++ api

3, Remove using namespace server_configurable_flags from header, instead
of just having the namespace to be spelled out in each api call. Having
using namespace xxx in header is not a c++ best practice.

4, Replace #ifdef #def #endif with #pragma once

Bug: b/279483801
Test: atest aconfig.test
Change-Id: I3e55a7b14301f3de419795467f33e2dc889d371e
diff --git a/tools/aconfig/src/codegen_cpp.rs b/tools/aconfig/src/codegen_cpp.rs
index ff9e8ef..c17af1f 100644
--- a/tools/aconfig/src/codegen_cpp.rs
+++ b/tools/aconfig/src/codegen_cpp.rs
@@ -136,10 +136,8 @@
     use std::collections::HashMap;
 
     const EXPORTED_PROD_HEADER_EXPECTED: &str = r#"
-#ifndef com_android_aconfig_test_HEADER_H
-#define com_android_aconfig_test_HEADER_H
+#pragma once
 
-#include <string>
 #include <memory>
 
 namespace com::android::aconfig::test {
@@ -176,14 +174,11 @@
 }
 
 }
-#endif
 "#;
 
     const EXPORTED_TEST_HEADER_EXPECTED: &str = r#"
-#ifndef com_android_aconfig_test_HEADER_H
-#define com_android_aconfig_test_HEADER_H
+#pragma once
 
-#include <string>
 #include <memory>
 
 namespace com::android::aconfig::test {
@@ -250,16 +245,13 @@
 }
 
 }
-#endif
 "#;
 
     const PROD_FLAG_PROVIDER_HEADER_EXPECTED: &str = r#"
-#ifndef com_android_aconfig_test_flag_provider_HEADER_H
-#define com_android_aconfig_test_flag_provider_HEADER_H
+#pragma once
 
 #include "com_android_aconfig_test.h"
 #include <server_configurable_flags/get_flags.h>
-using namespace server_configurable_flags;
 
 namespace com::android::aconfig::test {
 class flag_provider : public flag_provider_interface {
@@ -270,7 +262,7 @@
     }
 
     virtual bool disabled_rw() override {
-        return GetServerConfigurableFlag(
+        return server_configurable_flags::GetServerConfigurableFlag(
             "aconfig_test",
             "com.android.aconfig.test.disabled_rw",
             "false") == "true";
@@ -281,25 +273,23 @@
     }
 
     virtual bool enabled_rw() override {
-        return GetServerConfigurableFlag(
+        return server_configurable_flags::GetServerConfigurableFlag(
             "aconfig_test",
             "com.android.aconfig.test.enabled_rw",
             "true") == "true";
     }
 };
 }
-#endif
 "#;
 
     const TEST_FLAG_PROVIDER_HEADER_EXPECTED: &str = r#"
-#ifndef com_android_aconfig_test_flag_provider_HEADER_H
-#define com_android_aconfig_test_flag_provider_HEADER_H
+#pragma once
 
 #include "com_android_aconfig_test.h"
 #include <server_configurable_flags/get_flags.h>
-using namespace server_configurable_flags;
 
 #include <unordered_map>
+#include <string>
 
 namespace com::android::aconfig::test {
 class flag_provider : public flag_provider_interface {
@@ -330,7 +320,7 @@
         if (it != overrides_.end()) {
             return it->second;
         } else {
-            return GetServerConfigurableFlag(
+            return server_configurable_flags::GetServerConfigurableFlag(
                 "aconfig_test",
                 "com.android.aconfig.test.disabled_rw",
                 "false") == "true";
@@ -359,7 +349,7 @@
         if (it != overrides_.end()) {
             return it->second;
         } else {
-            return GetServerConfigurableFlag(
+            return server_configurable_flags::GetServerConfigurableFlag(
                 "aconfig_test",
                 "com.android.aconfig.test.enabled_rw",
                 "true") == "true";
@@ -375,7 +365,6 @@
     }
 };
 }
-#endif
 "#;
 
     const SOURCE_FILE_EXPECTED: &str = r#"
@@ -389,8 +378,7 @@
 "#;
 
     const C_EXPORTED_PROD_HEADER_EXPECTED: &str = r#"
-#ifndef com_android_aconfig_test_c_HEADER_H
-#define com_android_aconfig_test_c_HEADER_H
+#pragma once
 
 #ifdef __cplusplus
 extern "C" {
@@ -407,12 +395,10 @@
 #ifdef __cplusplus
 }
 #endif
-#endif
 "#;
 
     const C_EXPORTED_TEST_HEADER_EXPECTED: &str = r#"
-#ifndef com_android_aconfig_test_c_HEADER_H
-#define com_android_aconfig_test_c_HEADER_H
+#pragma once
 
 #ifdef __cplusplus
 extern "C" {
@@ -439,7 +425,6 @@
 #ifdef __cplusplus
 }
 #endif
-#endif
 "#;
 
     const C_PROD_SOURCE_FILE_EXPECTED: &str = r#"
@@ -447,7 +432,7 @@
 #include "com_android_aconfig_test.h"
 
 bool com_android_aconfig_test_disabled_ro() {
-    return com::android::aconfig::test::disabled_ro();
+    return false;
 }
 
 bool com_android_aconfig_test_disabled_rw() {
@@ -455,7 +440,7 @@
 }
 
 bool com_android_aconfig_test_enabled_ro() {
-    return com::android::aconfig::test::enabled_ro();
+    return true;
 }
 
 bool com_android_aconfig_test_enabled_rw() {
diff --git a/tools/aconfig/templates/c_exported_header.template b/tools/aconfig/templates/c_exported_header.template
index c22b048..ca812a7 100644
--- a/tools/aconfig/templates/c_exported_header.template
+++ b/tools/aconfig/templates/c_exported_header.template
@@ -1,5 +1,4 @@
-#ifndef {header}_c_HEADER_H
-#define {header}_c_HEADER_H
+#pragma once
 
 #ifdef __cplusplus
 extern "C" \{
@@ -20,4 +19,3 @@
 #ifdef __cplusplus
 }
 #endif
-#endif
diff --git a/tools/aconfig/templates/c_source_file.template b/tools/aconfig/templates/c_source_file.template
index 3d2482d..384221d 100644
--- a/tools/aconfig/templates/c_source_file.template
+++ b/tools/aconfig/templates/c_source_file.template
@@ -3,7 +3,15 @@
 
 {{ for item in class_elements}}
 bool {header}_{item.flag_name}() \{
+    {{ if for_test }}
     return {cpp_namespace}::{item.flag_name}();
+    {{ -else- }}
+    {{ if not item.readwrite- }}
+    return {item.default_value};
+    {{ -else- }}
+    return {cpp_namespace}::{item.flag_name}();
+    {{ -endif }}
+    {{ -endif }}
 }
 
 {{ if for_test }}
diff --git a/tools/aconfig/templates/cpp_exported_header.template b/tools/aconfig/templates/cpp_exported_header.template
index e45548e..cd01853 100644
--- a/tools/aconfig/templates/cpp_exported_header.template
+++ b/tools/aconfig/templates/cpp_exported_header.template
@@ -1,7 +1,5 @@
-#ifndef {header}_HEADER_H
-#define {header}_HEADER_H
+#pragma once
 
-#include <string>
 #include <memory>
 
 namespace {cpp_namespace} \{
@@ -50,4 +48,3 @@
 }
 {{ -endif }}
 }
-#endif
diff --git a/tools/aconfig/templates/cpp_prod_flag_provider.template b/tools/aconfig/templates/cpp_prod_flag_provider.template
index 6ba9e41..f908f12 100644
--- a/tools/aconfig/templates/cpp_prod_flag_provider.template
+++ b/tools/aconfig/templates/cpp_prod_flag_provider.template
@@ -1,9 +1,8 @@
-#ifndef {header}_flag_provider_HEADER_H
-#define {header}_flag_provider_HEADER_H
+#pragma once
+
 #include "{header}.h"
 {{ if readwrite }}
 #include <server_configurable_flags/get_flags.h>
-using namespace server_configurable_flags;
 {{ endif }}
 
 namespace {cpp_namespace} \{
@@ -12,7 +11,7 @@
     {{ for item in class_elements}}
     virtual bool {item.flag_name}() override \{
         {{ if item.readwrite- }}
-        return GetServerConfigurableFlag(
+        return server_configurable_flags::GetServerConfigurableFlag(
             "{item.device_config_namespace}",
             "{item.device_config_flag}",
             "{item.default_value}") == "true";
@@ -23,4 +22,3 @@
     {{ endfor }}
 };
 }
-#endif
diff --git a/tools/aconfig/templates/cpp_test_flag_provider.template b/tools/aconfig/templates/cpp_test_flag_provider.template
index afa56cf..03f10a5 100644
--- a/tools/aconfig/templates/cpp_test_flag_provider.template
+++ b/tools/aconfig/templates/cpp_test_flag_provider.template
@@ -1,13 +1,13 @@
-#ifndef {header}_flag_provider_HEADER_H
-#define {header}_flag_provider_HEADER_H
+#pragma once
+
 #include "{header}.h"
 
 {{ if readwrite }}
 #include <server_configurable_flags/get_flags.h>
-using namespace server_configurable_flags;
 {{ endif }}
 
 #include <unordered_map>
+#include <string>
 
 namespace {cpp_namespace} \{
 class flag_provider : public flag_provider_interface \{
@@ -26,7 +26,7 @@
 	          return it->second;
         } else \{
           {{ if item.readwrite- }}
-          return GetServerConfigurableFlag(
+          return server_configurable_flags::GetServerConfigurableFlag(
               "{item.device_config_namespace}",
               "{item.device_config_flag}",
               "{item.default_value}") == "true";
@@ -46,4 +46,3 @@
     }
 };
 }
-#endif