sync code

This commit is contained in:
Ned Wright
2024-09-15 02:49:26 +00:00
parent f4bad4c4d9
commit eddd250409
48 changed files with 368 additions and 174 deletions

View File

@@ -28,6 +28,7 @@
#include <memory>
#include <string>
#include <vector>
#include <map>
#include <sstream>
#include <iomanip>
#include <sys/types.h>
@@ -145,6 +146,30 @@ operator<<(ostream &os, const vector<Printable> &obj)
return os;
}
// LCOV_EXCL_START Reason: Currently not used in 4.8 coverage but is used in alpine.
template <typename PrintableKey, typename PrintableValue>
ostream &
operator<<(ostream &os, const pair<PrintableKey, PrintableValue> &)
{
// Uncomment when g++ 4.8 is no longer supported
// return os << obj.first << ':' << obj.second;
return os;
}
// LCOL_EXCL_STOP
template <typename PrintableKey, typename PrintableValue>
ostream &
operator<<(ostream &os, const map<PrintableKey, PrintableValue> &)
{
// Uncomment when g++ 4.8 is no longer supported
// bool first = true;
// for (const auto &pair : obj) {
// os << (first ? "" : ", ") << pair;
// first = false;
// }
return os;
}
} // namespace std
#endif // __COMMON_H__

View File

@@ -0,0 +1,50 @@
// Copyright (C) 2022 Check Point Software Technologies Ltd. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef __TIME_PRINT_H__
#define __TIME_PRINT_H__
#include <ostream>
#include <chrono>
static inline std::ostream &
operator<<(std::ostream &os, const std::chrono::microseconds &time)
{
return os << time.count() << "usec";
}
static inline std::ostream &
operator<<(std::ostream &os, const std::chrono::milliseconds &time)
{
return os << time.count() << "ms";
}
static inline std::ostream &
operator<<(std::ostream &os, const std::chrono::seconds &time)
{
return os << time.count() << "s";
}
static inline std::ostream &
operator<<(std::ostream &os, const std::chrono::minutes &time)
{
return os << time.count() << "m";
}
static inline std::ostream &
operator<<(std::ostream &os, const std::chrono::hours &time)
{
return os << time.count() << "h";
}
#endif // __TIME_PRINT_H__