Skip to content

Commit

Permalink
Merge branch 'main' into cpp17
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Smith committed Nov 14, 2023
2 parents d663fba + 2adf5ae commit fc2c2c5
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 19 deletions.
41 changes: 23 additions & 18 deletions six/modules/c++/six/source/NITFHeaderCreator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -257,31 +257,36 @@ struct SecurityParameterSetter final
getField().set(p.str());
}
}
SecurityParameterSetter() = delete;
SecurityParameterSetter& operator=(const SecurityParameterSetter&) = delete;
#if _MSC_VER
// doing `= delete` for the default constructor causes the line below not to compile w/C++20
#pragma warning(disable: 4623) // '...': default constructor was implicitly defined as deleted
#endif
};

void NITFHeaderCreator::setSecurity(const six::Classification& classification,
nitf::FileSecurity security,
const std::string& prefix)
{
const SecurityParameterSetter setSecurityParameter{ prefix, classification.fileOptions };
setSecurityParameter(NITFImageInfo::CLSY, [&]() { return security.getClassificationSystem(); });
setSecurityParameter(NITFImageInfo::CLSY, [&]() { return security.getClassificationSystem(); });
setSecurityParameter(NITFImageInfo::CODE, [&]() { return security.getCodewords(); });
setSecurityParameter(NITFImageInfo::CTLH, [&]() { return security.getControlAndHandling(); });
setSecurityParameter(NITFImageInfo::REL, [&]() { return security.getReleasingInstructions(); });
setSecurityParameter(NITFImageInfo::DCTP, [&]() { return security.getDeclassificationType(); });
setSecurityParameter(NITFImageInfo::DCDT, [&]() { return security.getDeclassificationDate(); });
setSecurityParameter(NITFImageInfo::DCXM, [&]() { return security.getDeclassificationExemption(); });
setSecurityParameter(NITFImageInfo::DG, [&]() { return security.getDowngrade(); });
setSecurityParameter(NITFImageInfo::DGDT, [&]() { return security.getDowngradeDateTime(); });
setSecurityParameter(NITFImageInfo::CLTX, [&]() { return security.getClassificationText(); });
setSecurityParameter(NITFImageInfo::CATP, [&]() { return security.getClassificationAuthorityType(); });
setSecurityParameter(NITFImageInfo::CAUT, [&]() { return security.getClassificationAuthority(); });
setSecurityParameter(NITFImageInfo::CRSN, [&]() { return security.getClassificationReason(); });
setSecurityParameter(NITFImageInfo::SRDT, [&]() { return security.getSecuritySourceDate(); });
setSecurityParameter(NITFImageInfo::CTLN, [&]() { return security.getSecurityControlNumber(); });
const SecurityParameterSetter setSecurityParameter_{ prefix, classification.fileOptions };
#define setSecurityParameter(code_, getter_) \
setSecurityParameter_(NITFImageInfo::code_, [&]() { return security.get ## getter_(); })
setSecurityParameter(CLSY, ClassificationSystem);
setSecurityParameter(CODE, Codewords);
setSecurityParameter(CTLH, ControlAndHandling);
setSecurityParameter(REL, ReleasingInstructions);
setSecurityParameter(DCTP, DeclassificationType);
setSecurityParameter(DCDT, DeclassificationDate);
setSecurityParameter(DCXM, DeclassificationExemption);
setSecurityParameter(DG, Downgrade);
setSecurityParameter(DGDT, DowngradeDateTime);
setSecurityParameter(CLTX, ClassificationText);
setSecurityParameter(CATP, ClassificationAuthorityType);
setSecurityParameter(CAUT, ClassificationAuthority);
setSecurityParameter(CRSN, ClassificationReason);
setSecurityParameter(SRDT, SecuritySourceDate);
setSecurityParameter(CTLN, SecurityControlNumber);
#undef setSecurityParameter

// Now, do some specific overrides
if (security.getClassificationSystem().toString().empty())
Expand Down
2 changes: 1 addition & 1 deletion six/modules/c++/six/source/XmlLite.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ static std::string toString(const xml::lite::QName& name, const T& p, const xml:
{
try
{
return str::toString(p);
return six::toString(p);
}
catch (const except::Exception& ex)
{
Expand Down

0 comments on commit fc2c2c5

Please sign in to comment.