Skip to content

Commit

Permalink
latest from coda-oss (mdaus#514)
Browse files Browse the repository at this point in the history
* latest from coda-oss

* Squashed 'externals/coda-oss/' changes from 67d6362..d06dc6534d

d06dc6534d mem::AutoPtr for C++17 (mdaus#615)
83443602a6 mem::AutoPtr class to aid C++17 transition (mdaus#614)
f10fa2009c Release 2022-11-04 (mdaus#613)
a32e697044 remove exception specifications (mdaus#609)
084f19126a utilities to find files/directories for unittests (mdaus#608)
a3cedada96 Merge branch 'master'
fde6c864fa Merge pull request mdaus#607 from mdaus/bugfix/change-order-of-config-header-install
c8a0044010 Install the cmake-configured header after installing the xercesc source tree. Otherwise, the original config will persist in the install
dda2c9acda Merge pull request mdaus#606 from mdaus/fix-xerces-config
004a00f09b Bump zlib version for conan builds
207f4dbb9f Fix Xerces config issue and install its config.h
b842417671 Add support for debug optimizations.
0f6cda57dc Use enhanced debug information with gcc/gdb.
5047dce1a9 Work around GCC avx support bug.
001ab18751 Rebuild the waf self-extractor with a fix for the FIPS error.
5a7f64fca2 Revert "Rebuild the waf self-extractor with a fix for the FIPS problem."
9f6f775f8f Rebuild the waf self-extractor with a fix for the FIPS problem.
af7229bd83 utilities to find files from a build (mdaus#605)
264ae49dd7 be sure downstream projects build w/C++14 (mdaus#604)
7a7b13cbd5 "hello world" for HDF5 (mdaus#602)
33cff0ff43 more C++14
963e8ff40c Revert "add HDF5 source code (mdaus#603)"
7b5e71a006 add HDF5 source code (mdaus#603)
ec7bb2e520 add HDF5 source code (mdaus#603)
ec26f703e7 build in NITRO and SIX (mdaus#601)
f4361a9730 make it easier to write cli unit-tests (mdaus#600)
34b6fdeee1 tweak toString() to reduce specialization (mdaus#599)
5907b3ed60 remove C++11 workarounds (mdaus#598)
caed59480d Release 2022-08-30_cpp14 (mdaus#597)
2630d41e08 get rid of merge conflict
652bce3854 Merge branch 'master'
6f41c09d71 Release 2022-08-30 (mdaus#596)
838c323d6a Merge branch 'master'
f916680126 Added handler accessor to MinidomParser for inheriting modules (mdaus#594)
72d29e9c27 get unittests working when "nested" in other projects (mdaus#595)
f8f18fea5f Actually look at unit test results when using waf (mdaus#593)
4189c429e8 Merge branch 'master'
cda679ceee more overloads to take a string length (mdaus#592)
b95a32bc4c by default, Uri()s aren't validated (mdaus#591)
903ee7ffff Merge branch 'master'
173930a6f2 fix a UTF-8 conversion bug (mdaus#590)
a1c0a1eea6 Merge branch 'master'
c5c221a832 CODA code inherits from xml.lite classes :-( (mdaus#589)
1bfe5fc402 Merge branch 'master'
a4c6294c30 use EncodedStringView instead of _bstr_t (mdaus#588)
6c2df8bb62 "main" is now C++14 (not C++20)
2ce4161080 Squashed commit of the following:
3a0f7fd14d Merge branch 'master'
83c982f0cf remove work-arounds to write non-UTF-8 XML (mdaus#586)
142fd7185e Merge branch 'master'
ebf6db1762 <bit> is part of C++20
d3aa8aa5ce std::u8string is in C++20, not C++17
03654933c4 changes to math.linear from coda (mdaus#587)
d442e5be0f Merge branch 'master'
5a2f8e52f1 release 2022-08-02 (mdaus#585)
e5516aba29 tweak names to match utf8:: conventions (mdaus#584)
32f08a9e40 Squashed commit of the following:
ee15ba3172 Merge branch 'master'
3083ec7915 move most platform-specific code to EncodedStringView (mdaus#583)
bede753547 fix unit-test with C++20
61a8033f62 consistent use of coda_oss:: and std::
5d3bf9eb83 Merge branch 'master'
36371410c0 EncodedString tweaks for XML processing (mdaus#582)
cf2016205c remove any vestiges of Expat and libXML (mdaus#580)
33538aa0fc update for newer Intel compiler
ed65e4ccc5 Add two patch candidates to fix FIPS problems in waf.
34c40bd397 Merge branch 'master'
a731ebf8e8 release 2022-06-29 (mdaus#579)
a9b9d2a9fa Merge branch 'master'
59387bd87b update "ReleaseNotes.md" for recent changes (mdaus#578)
24a3f01afe Merge branch 'master'
e4f940854a remove "boost" and "serialize" (mdaus#577)
80b70537e9 update to zlib-1.2.12 (mdaus#576)
f92811a53b Merge branch 'master'
202084bacb Remove some compiler warnings (mdaus#575)
414c25c551 build with C++20 in VS
1a99a29da3 Merge branch 'master'
c61232224b build most code with Visual Studio (mdaus#574)
5cca863d7e Merge branch 'master'
6e4d952bea some unit-tests need argc/argv (mdaus#573)
36e051d7b6 Add run1D method to GenerationThreadPool (mdaus#572)
6d4776235e Merge branch 'master'
0a08b8e4e9 build "coda-oss-lite" as a VS2022 project (mdaus#571)
6677cc38e3 simplify creation of encodes string (mdaus#570)
ba62c610c1 Add the 'universal_newlines=True' flag to python Popen calls.
984e4a96ce Fix a bug in waf platform detection.
8f1173f4a6 fix build errors
f21af35b0b Merge branch 'master'
d2aca8d4b5 release 2022-05-03 (mdaus#569)
ff55fed596 can't replace all TEST_ASSERT macros with functions (mdaus#568)
4db8ada411 restore changes clobbered with merge from "master"
a1f36e1839 Merge branch 'master'
89a636a fix copy/assignment in EncodedString (mdaus#567)
c3fe91d latest tweaks to build with C++17 (mdaus#566)
a59a51b be sure we use a 64-bit time_t (mdaus#565)
1f79fb3 Poly2D::atY() bugfix (mdaus#564)
ac53076 Testing to see if windows-2019 works with github actions (mdaus#563)
8d0726b Fix a bug in waf platform detection.
80fe8e9f8a Merge branch 'master'
c662b5a Update ReleaseNotes.md
ef4a3bb Release 2022-02-22 (aka 2/22/22) (mdaus#562)
33b0f3f6eb Merge branch 'master'
8bd0c8cf4a Merge branch 'main' of github.com:mdaus/coda-oss
0a0e6cf use char16_t on Linux (mdaus#560)
7e41b4b5e4 Merge branch 'feature/use-cpp11-code'
fe65bfd fix units for ICC, sys::filesystem (mdaus#559)
fc99e4b3e6 recreate from "master"
510317c07a use std::filesystem to "implement" sys::filesystem
895f6c77cd always implement sys::filesystem
0d83ae22fc "units" changes from master
b58173b781 latest from "master" (not quite)
793e3442c8 Squashed commit of the following:
91a729f5a2 re-create from "master"
def9791 update to GSL 4.0.0 (mdaus#558)
fe365e5 fix XML validation for UTF-8 (mdaus#557)
502e582 support conversion to std::wstring (mdaus#556)
e694225 Delete codeql-analysis.yml
45bc6a9 Create codeql-analysis.yml
87d9a7e remove CodeQL
eab5ecb Update build_unittest.yml
8ab12d4 Delete codeql-analysis.yml
9e54209 try running CodeQL as part of build-linux-cmake
de0c506 Create codeql-analysis.yml
0496087 tweaks to build in "coda" (mdaus#554)
0ba2423 replace sys::U8string with coda_oss::u8string (mdaus#553)
bcee655 add EncodedString class (mdaus#552)
c2eecd3 simplify implementation of EncodedStringView (mdaus#551)
c1320ef fix 'typename' for other compilers (mdaus#550)
ac3b939 tweaks to make "main" build easier (mdaus#549)
78da741 remove sys/Optional.h (mdaus#548)
f31730a put our std work-arounds in one place (mdaus#547)
9b7bb57 Add an EncodedStringView class (mdaus#545)
c0e1da5 another batch of tweaks to cleanup compiler warnings, etc. (mdaus#546)
0f3bfd9 added missing "virtual", support unique_ptr (mdaus#544)
ca32f99 Add option to specify curl installation location. (mdaus#501)
2df9c1a allow std::filesystem::path to be used for validation (mdaus#543)
2891435 add SinCos for units::Angle (mdaus#542)
e430edd Delete log4j as 1) it's old, 2) coda-oss doesn't use it, and 3) remove any questions about security vulnerability (mdaus#541)
bb11134 xml.lite tweaks (mdaus#540)
955b33e Release 2021_12_13 (mdaus#539)
d73d74d xml.lite tweaks (mdaus#537)
3a90e25 use more C++11 functionality (mdaus#538)
9ca2a0e remove more compiler warnings (mdaus#536)
0ec9da1 be sure == and != are in-sync (mdaus#535)
9084be3 fix size_t compiler warnings (mdaus#534)
abd6469 fix ICC errors (mdaus#533)
09cb36f update version number before cutting a new release (mdaus#532)
c29e4d2 fix ICC warnings/errors from high-side (mdaus#531)
91f8f1c simplify our std:: implementations (mdaus#530)
7c633c7 Further reduce use of std::auto_ptr (mdaus#529)
d858837 Provide support for creating simple version numbers (mdaus#528)
b035825 Merge pull request mdaus#527 from mdaus/fix-crypt-h-clash
ffed3d6 Disable encryption support in minizip build and remove crypt.h header
ee2b2bf Merge pull request mdaus#525 from mdaus/swig-fix
3c02ff2 Fix config-python prefix issue
6149053 Add new config-python module for SWIG compatibility workarounds
30acf5b mt::transform_async(), mem::SharedPtr, math::SinCos() (mdaus#526)
21efd6a Implement better workaround for lack of SWIG support for "final"
60837a6 Revert unneeded changes
0bc994d Fix SWIG path issue for waf build
070f4e9 Update SWIG generated files
f8472b0 Fix SWIG path issues and warnings
e10707f Set minimum SWIG version to 4.0.1
b8cdba5 Fix waf SWIG build issue
2bd0ee3 Enable SWIG in Github waf build
f2b0011 Try fixing SWIG compile issue again
afafabc Fix SWIG compile issue on Linux due to missing macro
7c8d4a8 Add SWIG to the CI flow
4023d72 Regenerate SWIG bindings
1d8c701 Add some compile definitions needed by SWIG for CMake build
e5cc585 Remove some functions which return unique_ptr from SWIG bindings (incompatible).
965a291 Remove "final" specifier from structs bound in SWIG (incompatible)
f1bec56 Merge branch 'master' of https://github.com/mdaus/coda-oss
c01c4d7 do in-line initialization (mdaus#524)
fb7230e Update CMakeLists.txt
5dfb056 tweaks for C++17 (mdaus#523)
1a7d3ab Merge pull request mdaus#515 from mdaus/security-and-conan-updates
d13885d make it easier to create a new Element with the right encoding (mdaus#522)
3fb09e7 Merge pull request mdaus#359 from mdaus/parseArgUpdate
0d546a8 Tweak some ArgumentParser tests for the ignoreUnknownArguments option
14bd1f2 Merge remote-tracking branch 'origin/master' into parseArgUpdate
cf398c0 tweak code for C++11/C++17 (mdaus#521)
2d0322b reduce use of std::auto_ptr (mdaus#520)
853320e reduce use of deprecated C++98 code (mdaus#519)
4752ba2 Replace some warning pragmas with macros
3268555 Merge remote-tracking branch 'origin/master' into security-and-conan-updates
f0350c0 Merge pull request mdaus#518 from mdaus/bugfix/python3.9-related
fc01df0 fix typos in gcc macros
9d356f3 fix gcc impl
8124da7 remove unreachable code
d034b3a clobber warnings from numpy innards
9941a40 macros to disable warnings around system headers
8a725bb Merge pull request mdaus#516 from mdaus/mbraswell-enablecpp17-windows
2e7b816 Fixed pragma stuff on gcc
9775bb0 Fixed pragma stuff on gcc
680d3cc Merge branch 'master' of https://github.com/mdaus/coda-oss
8ffd6ed forgot to add "units" to CMakeFiles.txt
0683567 Remove Auto_ptr flag and make disable warnings cross_platform compatible
d62efec Merge branch 'master' of https://github.com/mdaus/coda-oss into mbraswell-enablecpp17-windows
d04042e Merge pull request mdaus#517 from mdaus/develop/compiler-warning-helpers
cf5cd16 Fix macro usage on gcc
a88bbcd Macros to narrowly target disabling warnings
c0d5cdf Formatting Changes
be019b4 Formatting Changes
2eb04dc Fixed compiler warnings and added option to compile cpp17 with waf on windows
5d9f27f Refactor coda-oss conan recipe
ce66457 Disable warning for MSVC2017 and earlier
ecfefbf Merge remote-tracking branch 'origin/master' into security-and-conan-updates
8b14798 Merge pull request mdaus#514 from mdaus/develop/fix-unused-symbol-errors
1d9a4ec Add conan option to use std::regex instead of pcre
6dd5d44 add required include
4c0ae77 add required include
1873cee parameterize build (somewhat)
c9ef567 fix Release compile error
e6b47e9 fix compiler error
eff205b helper macro to fix unusual targets
342098a Fix CMake build for modules without include files
5625706 Enable cpp17 option for windows builds
98e12b1 Use consistent line endings for *.in template files
d01fea0 Configure coda_add_module to install more file extension types
30823f6 Delete stray file
ac7760b Load dependency targets when loading coda-oss for conan build
14781ca Implement conan build for openjpeg and pcre2 dependencies
9d955ef Exclude unsupported XML backend wrappers from CMake build to remove warnings
1e8c9b2 Merge remote-tracking branch 'origin/master' into security-and-conan-updates
772d804 Implement conan build for libjpeg dependency
98b653d Implement conan build for xerces-c dependency
11323e8 Implement conan build for zlib dependency
d0e6bf2 Improve conan test_package
a03e129 Fix uninitialized member variable warning in mt::AbstractTiedThreadPool
c7bb47b Remove member variable duplicated in derived class io::ToggleOutputStream
0838ac2 Use consistent line endings for conan recipes and CMake files.
2768e5f Update libjpeg to v9d
d75f55b Update zlib to 1.2.11
ca2f84c Fix warning in GSL for MSVC 2015 and earlier
1babd19 Fix warning in thread tests for MSVC
2f17632 Fix warning in except module for Visual Studio 2015 and earlier
a485bf6 Fix BIGENDIAN redefinition warning
59543e4 Disable warning in dbi for MSVC 2017 and earlier
b4b2128 Fix warnings in numpyutils for MSVC 2017 and earlier
2b179b6 Fix integer overflow issue
898151a Hook up simple "units" (mdaus#513)
4d6beee Merge pull request mdaus#511 from mdaus/develop/horizontal-improved-numerical-precision
c1878b2 Fix for numerical precision issues surrounding horizontal lines
7d1442c Merge pull request mdaus#510 from mbraswell/fix-testnumelements-build
58fc85f Whitespace change to trigger workflow
ab74026 Fix wscript to successfully build test_num_elements
323283c Merge pull request mdaus#509 from mbraswell/develop-mbraswell-cpp17
16a5502 Added option to enable cpp17
b0625cf tweak debug stuff (mdaus#508)
8455494 fix RowCol casting (mdaus#507)
01fbb5f Get std::u8string working right with C++20 (mdaus#506)
df9413e more "noexcept" for fewer code-analysis diagnostics (mdaus#505)
e6219f9 reduce compiler warnings/code-analysis diagnostics (mdaus#504)
4c9ea0e tweaks for VS2019 16.10 (mdaus#503)
0d8ea07 reduce compiler warnings (mdaus#502)
625b8b5 reduce compiler warnings (mdaus#500)
3795758 get rid of more compiler warnings/code-analysis diagnostics (mdaus#499)
427f91b reduce compiler-warnings and code-analysis diagnostics (mdaus#498)
c82dd9e cleanup compiler and code-analysis diagnistics (mdaus#496)
b5105b5 reduce compiler warnings (mdaus#495)
e0099cc Develop/compiler optimizations (mdaus#494)
0eeb3f9 tweaks to python wrappers made in "nitro" (mdaus#492)
5f91f70 fix printf() format string (mdaus#491)
55b855a Delete codeql-analysis.yml
603c192 Update codeql-analysis.yml
f306979 Update codeql-analysis.yml
4a1f78f Create codeql-analysis.yml
3c80a65 add back coda_oss::filesystem::path (mdaus#490)
eaea659 tweak how std:: features are exposed (mdaus#489)
0492f0d simplify code exposing std:: routines (#488)
e5f3d77 remove code-analysis diagnostics (mdaus#485)
5be599e make HOME and USERPROFILE the same (mdaus#484)
62b22ae cleanup more compiler warnings (mdaus#483)
c32ec7d add unit-tests for env-var editing (mdaus#482)
311aea4 allow an environment-variable to be "edited" during expansion (mdaus#481)
bbcab13 static_assert is C++11, don't use it when checking for C++11 (mdaus#480)
068562f fix glitches in expandEnviromentVariables() (mdaus#479)
30ed1d9 produce a new Path::expandEnviromentVariables() function (mdaus#478)
074a873 remove compiler warnings (mdaus#477)
e29f654 latest C++17 tweaks (mdaus#476)
c4e681b tweak code when wchar_t is a built-in type (mdaus#474)
8449ac2 wchar_t might not be a built-in type on old systems (mdaus#473)
a62bdb3 add operator= to sys::Optional (mdaus#472)
8e310a7 use compiler-provided macros to determine features (mdaus#470)
88405c8 "constexpr" can be hard to get right with older compilers; don't even try (mdaus#471)
b195ab3 need at least VS2017 to use the real GSL (mdaus#469)
2978f91 tweaks to build with older compilers (mdaus#468)
7235b89 The (old) version of SWIG we're using doesn't like certain C++11 features. (mdaus#464)
cccde7f only look in the Win1252->UTF-8 map as a last resort (mdaus#467)
3db0974 get rid of more compiler warnings (mdaus#465)
5e0d2e8 get rid of "char8_t" compiler warning (mdaus#463)
d710bc6 make getValue() easier to use (mdaus#462)
f5a9284 make getElement*() be consistent for both 0 and >1 (mdaus#461)
88be6db consistently add C++14/17/20 library features (mdaus#459)
59c3a7e use coda_oss:: as a drop-in replacement for std:: (mdaus#458)
35de452 use sys::Filesystem::path rather than std::string (mdaus#457)
cace666 make sys::Filesystem::path better conform to std::filesystem::path (mdaus#456)
f395edc remove ambiguous overloads w/C++17 (mdaus#455)
eac4371 use newly added sys::Optional<> to manage "encoding" (mdaus#454)
243ef5e don't derive from std::iterator (mdaus#453)
a48b011 Arguments should be "const&" to prevent C4866 (mdaus#452)
878bff9 provide std::span (mdaus#451)
81727c4 remove newly added a new pure virtual as that's a breaking change (mdaus#450)
93cf0f0 main -> master (mdaus#449)
5af37a7 be sure code compiles with C++17 (mdaus#448)
82b5aec build with C++17 (#407)
6ffb888 reduce compiler warnings (mdaus#439)
9137dda GSL (Guideline Support Library) from https://github.com/Microsoft/GSL (mdaus#423)
bc5552c update to xerces-c-3.2.3 (mdaus#409)
6fe09e1 update to openjpeg-2.3.1 (mdaus#417)
6405c0c reduce differences in #407 (mdaus#438)
2987bbf tweak how std::filesystem is enabled (mdaus#437)
8fd3c2f tweak how std::endian is enabled (mdaus#436)
138372c more straight-forward reduction of std::auto_ptr (mdaus#435)
f13c7ce straight-forward reduction of std::auto_ptr (mdaus#434)
d243b08 add mem::auto_ptr for transition to C++17 (mdaus#432)
54ed521 allow clients to specify custom toType and toString (mdaus#431)
7f90aab remove trailing underscore from macro (#429)
999e490 with C++11, several sys typedefs are the same on both Windows & *nix (#427)
6f075b1 add sys::Byte (mdaus#426)
92221bd allow except::Throwable to derive from std::exception (mdaus#421)
a8f52d0 reduce compiler warnings (mdaus#424)
63ea20a #including <bit> w/C++17 generates warnings (mdaus#408)
10ef060 reduce compiler warnings (mdaus#405)
cf233fd forgot Conf.cpp changes for sys::Endian (mdaus#403)
cc53b18 fix several compiler warnings/code-analysis diagnostics (mdaus#404)
1db3751 implmeent sys::Endian from C++20 (mdaus#402)
f042cd6 support std::filesystem if desired (mdaus#400)
4895a9f WIN32 is old, but existing code might still use it; _WIN32 is better (mdaus#398)
e2a62f8 make it easier to use xml.lite (mdaus#396)
1059b7d allow for explicit use of a UTF-8 string (mdaus#395)
27de8b8 Optionally record how std::string is encoded when manipulating XML (mdaus#378)
e0018ce implement some <filesystem>-like routines until we can use C++17 (mdaus#388)
cafb236 Merge pull request mdaus#363 from mdaus/feature/fix-compiler-warnings
6a78bec use the existing sys::ubyte rather than making our own pre-C++17 std::byte
14c9fc4 fix a couple of G++ compiler warnings via static_cast<>
e596a60 std::numeric_limits<T>::epsilon() can be "constexpr"
78b0f6b another try at removing the compiler warning from tiff::split()
8e1de21 fixed typo; added a few nots about why we're not using strncpy()
fed3ba8 retore previous tiff::split() code as the change got rid of the compiler warning but wasn't portable
98a5896 get rid of g++ strncpy() warning
798f847 don't use memset(0) with C++ objects
7f697d0 casting result of system() to void doesn't get rid of compiler warning
d55a849 remove new g++ compiler warnings in WSL
d0aaa29 Merge pull request mdaus#361 from mdaus/feature/fix-compiler-warnings
cc62e86 fix compiler warnings
d45c1f9 Updates based on peer review comments which include changing ostream to pointer, adding a couple of more tests, and updating all auto_ptr to unique_ptr in unit test.
fb12ba1 Update ArgumentParser to use a stream as an argument if the ignore unknown argument flag is set to true.
536d2b0 Added ability to ignore unknown arguments in the ArgumentParser.
27288f4 Merge pull request #358 from mdaus/conan-options
fd5e1ee Expose additional CMake options in conan recipe
c972161 Remove unneeded CMake function

git-subtree-dir: externals/coda-oss
git-subtree-split: d06dc6534d713ecce71db9986d8db3bb5f7a213f

* Squashed 'externals/coda-oss/' changes from d06dc6534d..8241dfe7e6

8241dfe7e6 remove last vestiges of std::auto_ptr (mdaus#616)

git-subtree-dir: externals/coda-oss
git-subtree-split: 8241dfe7e68d566d9b7ca1ccf572279f41cf6848
  • Loading branch information
J. Daniel Smith authored Nov 25, 2022
1 parent 1d29e4d commit 52fe000
Show file tree
Hide file tree
Showing 39 changed files with 72 additions and 190 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ class Row
std::vector< Field > mData;
};

//typedef mem::auto_ptr< Row > pRow;
//typedef std::unique_ptr< Row > pRow;

/*!
* \class ResultSet
Expand Down Expand Up @@ -303,7 +303,7 @@ class ResultSet
Row mCurrentRow;
};

typedef mem::auto_ptr< ResultSet > pResultSet;
typedef std::unique_ptr< ResultSet > pResultSet;

/*!
* \class DatabaseConnection
Expand Down
2 changes: 1 addition & 1 deletion externals/coda-oss/modules/c++/io/include/io/DbgStream.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ struct DbgStream : public OutputStream
}
protected:
//! The bound stream
mem::auto_ptr<OutputStream> mStream;
std::unique_ptr<OutputStream> mStream;
//! On or off??
bool mOn = false;
};
Expand Down
4 changes: 2 additions & 2 deletions externals/coda-oss/modules/c++/io/include/io/ProxyStreams.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ struct CODA_OSS_API ProxyInputStream : public InputStream
return mProxy->read(buffer, len);
}

mem::auto_ptr<InputStream> mProxy;
std::unique_ptr<InputStream> mProxy;
bool mOwnPtr;
};

Expand Down Expand Up @@ -117,7 +117,7 @@ struct CODA_OSS_API ProxyOutputStream : public OutputStream
}

protected:
mem::auto_ptr<OutputStream> mProxy;
std::unique_ptr<OutputStream> mProxy;
bool mOwnPtr = false;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ using path = std::filesystem::path;
#else
using path = coda_oss::filesystem::path;
#endif
mem::auto_ptr<logging::Logger> setupLogger(
std::unique_ptr<logging::Logger> setupLogger(
const path& program,
const std::string& logLevel = "warning",
const path& logFile = "console",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ struct CODA_OSS_API StreamHandler : public Handler
// used for the bulk of the logging for speed
void emitRecord(const LogRecord* record) override;

mem::auto_ptr<io::OutputStream> mStream;
std::unique_ptr<io::OutputStream> mStream;

private:
bool mClosed;
Expand Down
4 changes: 2 additions & 2 deletions externals/coda-oss/modules/c++/logging/source/Setup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

#include "logging/Setup.h"

mem::auto_ptr<logging::Logger>
std::unique_ptr<logging::Logger>
logging::setupLogger(const path& program_,
const std::string& logLevel,
const path& logFile_,
Expand Down Expand Up @@ -89,5 +89,5 @@ logging::setupLogger(const path& program_,
logHandler->setFormatter(formatter.release());
log->addHandler(logHandler.release(), true);

return mem::auto_ptr<logging::Logger>(log.release());
return std::unique_ptr<logging::Logger>(log.release());
}
18 changes: 17 additions & 1 deletion externals/coda-oss/modules/c++/mem/include/mem/AutoPtr.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@
#pragma once

#include <memory>
#include <type_traits>

#include "coda_oss/memory.h"
#include "mem/SharedPtr.h"

namespace mem
{
Expand Down Expand Up @@ -81,6 +81,18 @@ class AutoPtr final
*this = std::move(p);
}

template<typename U>
AutoPtr& operator=(std::auto_ptr<U> p) noexcept
{
ptr_.reset(p.release());
return *this;
}
template <typename U>
AutoPtr(std::auto_ptr<U> p) noexcept
{
*this = p;
}


T* get() const noexcept
{
Expand All @@ -106,6 +118,10 @@ class AutoPtr final
{
return get();
}

operator std::unique_ptr<T>& () { return ptr_; }
operator const std::unique_ptr<T>& () const { return ptr_; }

};

} // namespace mem
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ namespace mem
/*!
* \class ScopedCloneablePtr
* \brief This class provides RAII for object allocations via new. It is a
* light wrapper around std::auto_ptr and has the same semantics
* light wrapper around std::unique_ptr and has the same semantics
* except that the copy constructor and assignment operator are deep
* copies (by using T's clone() method) rather than transferring
* ownership.
*
* This is useful for cases where you have a class which has a member
* variable that's dynamically allocated and you want to provide a
* valid copy constructor / assignment operator. With raw pointers or
* std::auto_ptr's, you'll have to write the copy constructor /
* std::unique_ptr's, you'll have to write the copy constructor /
* assignment operator for this class - this is tedious and
* error-prone since you need to include all the members in the class.
* Using ScopedCloneablePtr's instead, the compiler-generated copy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ namespace mem
/*!
* \class ScopedCopyablePtr
* \brief This class provides RAII for object allocations via new. It is a
* light wrapper around std::auto_ptr and has the same semantics
* light wrapper around std::unique_ptr and has the same semantics
* except that the copy constructor and assignment operator are deep
* copies (that is, they use T's copy constructor) rather than
* transferring ownership.
*
* This is useful for cases where you have a class which has a member
* variable that's dynamically allocated and you want to provide a
* valid copy constructor / assignment operator. With raw pointers or
* std::auto_ptr's, you'll have to write the copy constructor /
* std::unique_ptr's, you'll have to write the copy constructor /
* assignment operator for this class - this is tedious and
* error-prone since you need to include all the members in the class.
* Using ScopedCopyablePtr's instead, the compiler-generated copy
Expand Down
16 changes: 2 additions & 14 deletions externals/coda-oss/modules/c++/mem/include/mem/ScopedPtr.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ namespace mem
/*!
* \class ScopedPtr
* \brief This class provides RAII for object allocations via new. It is a
* light wrapper around std::auto_ptr and has the same semantics
* light wrapper around std::unique_ptr and has the same semantics
* except that the copy constructor and assignment operator are deep
* copies (by using T's clone() method) rather than transferring
* ownership.
*
* This is useful for cases where you have a class which has a member
* variable that's dynamically allocated and you want to provide a
* valid copy constructor / assignment operator. With raw pointers or
* std::auto_ptr's, you'll have to write the copy constructor /
* std::unique_ptr's, you'll have to write the copy constructor /
* assignment operator for this class - this is tedious and
* error-prone since you need to include all the members in the class.
* Using ScopedCloneablePtr's instead, the compiler-generated copy
Expand Down Expand Up @@ -77,12 +77,6 @@ class ScopedPtr
{
reset(std::move(ptr));
}
#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17
explicit ScopedPtr(mem::auto_ptr<T> ptr)
{
reset(ptr);
}
#endif

ScopedPtr(const ScopedPtr& rhs)
{
Expand Down Expand Up @@ -161,12 +155,6 @@ class ScopedPtr
{
mPtr = std::move(ptr);
}
#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17
void reset(mem::auto_ptr<T> ptr)
{
reset(std::unique_ptr<T>(ptr.release()));
}
#endif
};
}

Expand Down
23 changes: 0 additions & 23 deletions externals/coda-oss/modules/c++/mem/include/mem/SharedPtrCpp11.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,29 +32,6 @@

namespace mem
{
// This won't work everywhere since C++11's std::unique_ptr<> often requires
// "&&" and std::move. But for member data and the like it can reduce some
// boiler-plate code; note that it's often possible to just use std::unique_ptr
// directly. This is mostly needed to support existing interfaces.
#if CODA_OSS_cpp17 // std::auto_ptr removed in C++17
#if defined(CODA_OSS_no_autoptr) && (!CODA_OSS_no_autoptr)
#error "std::auto_ptr was removed in C++17."
#endif
#define CODA_OSS_autoptr_is_std 0 // mem::auto_ptr != std::auto_ptr
#else // C++11 or C++14 still have std::auto_ptr, but it's depricated
#ifdef CODA_OSS_no_autoptr // don't use std::auto_ptr even if it's available
#define CODA_OSS_autoptr_is_std 0 // mem::auto_ptr != std::auto_ptr
#else
#define CODA_OSS_autoptr_is_std 1 // mem::auto_ptr == std::auto_ptr
#endif
#endif
template <typename T> using auto_ptr =
#if CODA_OSS_autoptr_is_std
std::auto_ptr<T>;
#else
std::unique_ptr<T>;
#endif

// Pretty much give-up on mem::SharedPtr as it's too hard to get something that will
// compile with all the different compilers; let somebody else worry about that
// via std::shared_ptr. The only code change is use_count() instead of getCount(),
Expand Down
16 changes: 0 additions & 16 deletions externals/coda-oss/modules/c++/mem/include/mem/VectorOfPointers.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,6 @@ struct VectorOfPointers
mValues.resize(mValues.size() + 1);
mValues.back() = value.release();
}
#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17
template <typename OtherT>
void push_back(mem::auto_ptr<OtherT> value)
{
std::unique_ptr<OtherT> scopedValue(value.release());
push_back(std::move(scopedValue));
}
#endif

typedef typename std::vector<T*>::iterator iterator;
typedef typename std::vector<T*>::const_iterator const_iterator;
Expand Down Expand Up @@ -199,14 +191,6 @@ template <typename T>
mValues.resize(mValues.size() + 1);
mValues.back().reset(value.release());
}
#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17
template <typename OtherT>
void push_back(mem::auto_ptr<OtherT> value)
{
std::unique_ptr<OtherT> scopedValue(value.release());
push_back(std::move(scopedValue));
}
#endif

template <typename OtherT>
void push_back(std::shared_ptr<OtherT> value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ class AbstractCPUAffinityInitializer
* \returns a new thread initializer. In general, this should return
* a different affinity initializer each time it is called.
*/
mem::auto_ptr<AbstractCPUAffinityThreadInitializer> newThreadInitializer()
std::unique_ptr<AbstractCPUAffinityThreadInitializer> newThreadInitializer()
{
return mem::auto_ptr<AbstractCPUAffinityThreadInitializer>(
return std::unique_ptr<AbstractCPUAffinityThreadInitializer>(
newThreadInitializerImpl());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ class AbstractTiedThreadPool : public AbstractThreadPool<Request_T>
mAffinityInit = affinityInit;
}

virtual mem::auto_ptr<CPUAffinityThreadInitializer>
virtual std::unique_ptr<CPUAffinityThreadInitializer>
getCPUAffinityThreadInitializer()
{
mem::auto_ptr<CPUAffinityThreadInitializer> threadInit(nullptr);
std::unique_ptr<CPUAffinityThreadInitializer> threadInit(nullptr);

// If we were passed a schematic
// for initializing thread affinity...
Expand All @@ -74,11 +74,11 @@ class AbstractTiedThreadPool : public AbstractThreadPool<Request_T>
#if CODA_OSS_cpp17
std::unique_ptr<CPUAffinityThreadInitializer>&& init) = 0;
#else
mem::auto_ptr<CPUAffinityThreadInitializer> init) = 0;
std::unique_ptr<CPUAffinityThreadInitializer> init) = 0;
virtual mt::TiedWorkerThread<Request_T>*
newTiedWorker(mt::RequestQueue<Request_T>* q,
std::unique_ptr<CPUAffinityThreadInitializer>&& init) {
mem::auto_ptr<CPUAffinityThreadInitializer> init_(init.release());
std::unique_ptr<CPUAffinityThreadInitializer> init_(init.release());
return newTiedWorker(q, init_);
}
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ namespace mt
{
struct AbstractNextCPUProviderLinux
{
virtual mem::auto_ptr<const sys::ScopedCPUMaskUnix> nextCPU() = 0;
virtual std::unique_ptr<const sys::ScopedCPUMaskUnix> nextCPU() = 0;
};

/*!
Expand Down Expand Up @@ -69,9 +69,9 @@ class CPUAffinityInitializerLinux : public AbstractCPUAffinityInitializer
* \returns a new CPUAffinityInitializerLinux for the next available
* CPU that can be bound to.
*/
mem::auto_ptr<CPUAffinityThreadInitializerLinux> newThreadInitializer()
std::unique_ptr<CPUAffinityThreadInitializerLinux> newThreadInitializer()
{
return mem::auto_ptr<CPUAffinityThreadInitializerLinux>(
return std::unique_ptr<CPUAffinityThreadInitializerLinux>(
newThreadInitializerImpl());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ class CPUAffinityInitializerWin32 : public AbstractCPUAffinityInitializer
* \todo Not yet implemented
* \returns NULL
*/
mem::auto_ptr<CPUAffinityThreadInitializerWin32> newThreadInitializer()
std::unique_ptr<CPUAffinityThreadInitializerWin32> newThreadInitializer()
{
return mem::auto_ptr<CPUAffinityThreadInitializerWin32>(
return std::unique_ptr<CPUAffinityThreadInitializerWin32>(
newThreadInitializerImpl());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,6 @@ class CPUAffinityThreadInitializerLinux :
*/
CPUAffinityThreadInitializerLinux(
std::unique_ptr<const sys::ScopedCPUMaskUnix>&& cpu);
#if CODA_OSS_autoptr_is_std // std::auto_ptr removed in C++17
CPUAffinityThreadInitializerLinux(
mem::auto_ptr<const sys::ScopedCPUMaskUnix> cpu);
#endif

/*!
* Attempt to bind to the affinity mask given during construction
Expand Down
12 changes: 1 addition & 11 deletions externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,6 @@ struct CODA_OSS_API ThreadGroup
* \param runnable auto_ptr to sys::Runnable
*/
void createThread(std::unique_ptr<sys::Runnable>&& runnable);
#if CODA_OSS_autoptr_is_std
void createThread(mem::auto_ptr<sys::Runnable> runnable);
#endif

/*!
* Waits for all threads to complete.
Expand Down Expand Up @@ -138,7 +135,7 @@ struct CODA_OSS_API ThreadGroup
* the internal CPUAffinityInitializer. If no initializer
* was created, will return NULL.
*/
mem::auto_ptr<CPUAffinityThreadInitializer> getNextInitializer();
std::unique_ptr<CPUAffinityThreadInitializer> getNextInitializer();

/*!
* \class ThreadGroupRunnable
Expand All @@ -164,13 +161,6 @@ struct CODA_OSS_API ThreadGroup
mt::ThreadGroup& parentThreadGroup,
std::unique_ptr<CPUAffinityThreadInitializer>&& threadInit =
std::unique_ptr<CPUAffinityThreadInitializer>(nullptr));
#if CODA_OSS_autoptr_is_std
ThreadGroupRunnable(
mem::auto_ptr<sys::Runnable> runnable,
mt::ThreadGroup& parentThreadGroup,
mem::auto_ptr<CPUAffinityThreadInitializer> threadInit =
mem::auto_ptr<CPUAffinityThreadInitializer>(nullptr));
#endif

ThreadGroupRunnable(const ThreadGroupRunnable&) = delete;
ThreadGroupRunnable& operator=(const ThreadGroupRunnable&) = delete;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ class TiedWorkerThread : public mt::WorkerThread<Request_T>
#if !CODA_OSS_cpp17
TiedWorkerThread(
mt::RequestQueue<Request_T>* requestQueue,
mem::auto_ptr<CPUAffinityThreadInitializer> cpuAffinityInit =
mem::auto_ptr<CPUAffinityThreadInitializer>(nullptr)) :
std::unique_ptr<CPUAffinityThreadInitializer> cpuAffinityInit =
std::unique_ptr<CPUAffinityThreadInitializer>(nullptr)) :
TiedWorkerThread(requestQueue, std::unique_ptr<CPUAffinityThreadInitializer>(cpuAffinityInit.release()))
{
}
Expand Down
Loading

0 comments on commit 52fe000

Please sign in to comment.