diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2022-03-10 17:55:40 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-03-10 19:32:28 +0000 |
commit | 7c5ff6c91299f45dff93e07b13c097ec846ce040 (patch) | |
tree | bc879cce28594b06844cb041987760229987649c /buildscripts/idl | |
parent | c0652d91db0fb5cc54f12811e100ec8108130112 (diff) | |
download | mongo-7c5ff6c91299f45dff93e07b13c097ec846ce040.tar.gz |
SERVER-63588 ServerParameter: test for redact, remove self-registration
Diffstat (limited to 'buildscripts/idl')
-rw-r--r-- | buildscripts/idl/idl/generator.py | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/buildscripts/idl/idl/generator.py b/buildscripts/idl/idl/generator.py index 08a3caecaf8..4adaabda915 100644 --- a/buildscripts/idl/idl/generator.py +++ b/buildscripts/idl/idl/generator.py @@ -838,7 +838,8 @@ class _CppHeaderFileWriter(_CppFileWriterBase): self._writer.write_line( 'void append(OperationContext*, BSONObjBuilder&, const std::string&) final;') - self._writer.write_line('Status set(const BSONElement&) final;') + if cls.override_set: + self._writer.write_line('Status set(const BSONElement&) final;') self._writer.write_line('Status setFromString(const std::string&) final;') if cls.data is not None: @@ -2284,15 +2285,18 @@ class _CppSourceFileWriter(_CppFileWriterBase): def _gen_server_parameter_specialized(self, param): # type: (ast.ServerParameter) -> None """Generate a specialized ServerParameter.""" - self._writer.write_line( - 'return new %s(%s, %s);' % (param.cpp_class.name, _encaps(param.name), param.set_at)) + self._writer.write_line('auto sp = makeServerParameter<%s>(%s, %s);' % + (param.cpp_class.name, _encaps(param.name), param.set_at)) + if param.redact: + self._writer.write_line('sp->setRedact();') + self._writer.write_line('return sp;') def _gen_server_parameter_class_definitions(self, param): # type: (ast.ServerParameter) -> None """Generate storage for default and/or append method for a specialized ServerParameter.""" cls = param.cpp_class - if param.default or param.redact or not cls.override_set: + if param.default or param.redact: self.gen_description_comment("%s: %s" % (param.name, param.description)) if param.default: @@ -2307,23 +2311,13 @@ class _CppSourceFileWriter(_CppFileWriterBase): self._writer.write_line('b << name << "###";') self.write_empty_line() - if not cls.override_set: - with self._block('Status %s::set(const BSONElement& newValueElement) {' % (cls.name), - '}'): - self._writer.write_line('auto swValue = coerceToString(newValueElement, %s);' % - ('true' if param.redact else 'false')) - with self._predicate('!swValue.isOK()'): - self._writer.write_line('return swValue.getStatus();') - self._writer.write_line('return setFromString(swValue.getValue());') - self.write_empty_line() - def _gen_server_parameter_with_storage(self, param): # type: (ast.ServerParameter) -> None """Generate a single IDLServerParameterWithStorage.""" if param.feature_flag: self._writer.write_line( common.template_args( - 'auto* ret = new FeatureFlagServerParameter(${name}, ${storage});', + 'auto* ret = makeFeatureFlagServerParameter(${name}, ${storage});', storage=param.cpp_varname, name=_encaps(param.name))) else: self._writer.write_line( @@ -2368,7 +2362,7 @@ class _CppSourceFileWriter(_CppFileWriterBase): for alias_no, alias in enumerate(param.deprecated_name): self._writer.write_line( common.template_args( - '${unused} auto* ${alias_var} = new IDLServerParameterDeprecatedAlias(${name}, ${param_var});', + '${unused} auto* ${alias_var} = makeIDLServerParameterDeprecatedAlias(${name}, ${param_var});', unused='[[maybe_unused]]', alias_var='scp_%d_%d' % (param_no, alias_no), name=_encaps(alias), param_var='scp_%d' % (param_no))) |