mirror of
https://github.com/monero-project/monero.git
synced 2024-12-26 00:09:27 -05:00
Merge pull request #9038
e191083
epee: remove dead code in math_helper and string_tools (jeffro256)
This commit is contained in:
commit
b22ba16dec
@ -24,213 +24,20 @@
|
|||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint> // uint64_t
|
||||||
|
|
||||||
#include <list>
|
#ifdef _WIN32
|
||||||
#include <numeric>
|
#include <sysinfoapi.h> // GetSystemTimeAsFileTime
|
||||||
#include <random>
|
#else
|
||||||
#include <boost/timer/timer.hpp>
|
#include <sys/time.h> // gettimeofday
|
||||||
#include <boost/uuid/uuid.hpp>
|
#endif
|
||||||
#include <boost/uuid/random_generator.hpp>
|
|
||||||
|
|
||||||
#include "syncobj.h"
|
|
||||||
#include "time_helper.h"
|
|
||||||
|
|
||||||
namespace epee
|
namespace epee
|
||||||
{
|
{
|
||||||
namespace math_helper
|
namespace math_helper
|
||||||
{
|
{
|
||||||
|
|
||||||
template<typename val, int default_base>
|
|
||||||
class average
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
average()
|
|
||||||
{
|
|
||||||
m_base = default_base;
|
|
||||||
m_last_avg_val = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool set_base()
|
|
||||||
{
|
|
||||||
CRITICAL_REGION_LOCAL(m_lock);
|
|
||||||
|
|
||||||
m_base = default_base;
|
|
||||||
if(m_list.size() > m_base)
|
|
||||||
m_list.resize(m_base);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef val value_type;
|
|
||||||
|
|
||||||
void push(const value_type& vl)
|
|
||||||
{
|
|
||||||
CRITICAL_REGION_LOCAL(m_lock);
|
|
||||||
|
|
||||||
//#ifndef DEBUG_STUB
|
|
||||||
m_list.push_back(vl);
|
|
||||||
if(m_list.size() > m_base )
|
|
||||||
m_list.pop_front();
|
|
||||||
//#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
double update(const value_type& vl)
|
|
||||||
{
|
|
||||||
CRITICAL_REGION_LOCAL(m_lock);
|
|
||||||
//#ifndef DEBUG_STUB
|
|
||||||
push(vl);
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
return get_avg();
|
|
||||||
}
|
|
||||||
|
|
||||||
double get_avg()
|
|
||||||
{
|
|
||||||
CRITICAL_REGION_LOCAL(m_lock);
|
|
||||||
|
|
||||||
value_type vl = std::accumulate(m_list.begin(), m_list.end(), value_type(0));
|
|
||||||
if(m_list.size())
|
|
||||||
return m_last_avg_val = (double)(vl/m_list.size());
|
|
||||||
|
|
||||||
return m_last_avg_val = (double)vl;
|
|
||||||
}
|
|
||||||
|
|
||||||
value_type get_last_val()
|
|
||||||
{
|
|
||||||
CRITICAL_REGION_LOCAL(m_lock);
|
|
||||||
if(m_list.size())
|
|
||||||
return m_list.back();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
unsigned int m_base;
|
|
||||||
double m_last_avg_val;
|
|
||||||
std::list<value_type> m_list;
|
|
||||||
critical_section m_lock;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef WINDOWS_PLATFORM
|
|
||||||
|
|
||||||
/************************************************************************/
|
|
||||||
/* */
|
|
||||||
/************************************************************************/
|
|
||||||
class timing_guard_base
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~timing_guard_base(){};
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
class timing_guard: public timing_guard_base
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
timing_guard(T& avrg):m_avrg(avrg)
|
|
||||||
{
|
|
||||||
m_start_ticks = ::GetTickCount();
|
|
||||||
}
|
|
||||||
|
|
||||||
~timing_guard()
|
|
||||||
{
|
|
||||||
m_avrg.push(::GetTickCount()-m_start_ticks);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
T& m_avrg;
|
|
||||||
DWORD m_start_ticks;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class t_timing>
|
|
||||||
timing_guard_base* create_timing_guard(t_timing& timing){return new timing_guard<t_timing>(timing);}
|
|
||||||
|
|
||||||
#define BEGIN_TIMING_ZONE(timing_var) { boost::shared_ptr<math_helper::timing_guard_base> local_timing_guard_ptr(math_helper::create_timing_guard(timing_var));
|
|
||||||
#define END_TIMING_ZONE() }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//#ifdef WINDOWS_PLATFORM_EX
|
|
||||||
template<uint64_t default_time_window>
|
|
||||||
class speed
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
speed()
|
|
||||||
{
|
|
||||||
m_time_window = default_time_window;
|
|
||||||
m_last_speed_value = 0;
|
|
||||||
}
|
|
||||||
bool chick()
|
|
||||||
{
|
|
||||||
#ifndef DEBUG_STUB
|
|
||||||
uint64_t ticks = misc_utils::get_tick_count();
|
|
||||||
CRITICAL_REGION_BEGIN(m_lock);
|
|
||||||
m_chicks.push_back(ticks);
|
|
||||||
CRITICAL_REGION_END();
|
|
||||||
//flush(ticks);
|
|
||||||
#endif
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool chick(size_t count)
|
|
||||||
{
|
|
||||||
for(size_t s = 0; s != count; s++)
|
|
||||||
chick();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
size_t get_speed()
|
|
||||||
{
|
|
||||||
flush(misc_utils::get_tick_count());
|
|
||||||
return m_last_speed_value = m_chicks.size();
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
|
|
||||||
bool flush(uint64_t ticks)
|
|
||||||
{
|
|
||||||
CRITICAL_REGION_BEGIN(m_lock);
|
|
||||||
std::list<uint64_t>::iterator it = m_chicks.begin();
|
|
||||||
while(it != m_chicks.end())
|
|
||||||
{
|
|
||||||
if(*it + m_time_window < ticks)
|
|
||||||
m_chicks.erase(it++);
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
CRITICAL_REGION_END();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::list<uint64_t> m_chicks;
|
|
||||||
uint64_t m_time_window;
|
|
||||||
size_t m_last_speed_value;
|
|
||||||
critical_section m_lock;
|
|
||||||
};
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
template<class tlist>
|
|
||||||
void randomize_list(tlist& t_list)
|
|
||||||
{
|
|
||||||
for(typename tlist::iterator it = t_list.begin();it!=t_list.end();it++)
|
|
||||||
{
|
|
||||||
size_t offset = rand()%t_list.size();
|
|
||||||
typename tlist::iterator it_2 = t_list.begin();
|
|
||||||
for(size_t local_offset = 0;local_offset!=offset;local_offset++)
|
|
||||||
it_2++;
|
|
||||||
if(it_2 == it)
|
|
||||||
continue;
|
|
||||||
std::swap(*it_2, *it);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
template<typename get_interval, bool start_immediate = true>
|
template<typename get_interval, bool start_immediate = true>
|
||||||
class once_a_time
|
class once_a_time
|
||||||
{
|
{
|
||||||
|
@ -127,7 +127,6 @@ namespace string_tools
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool validate_hex(uint64_t length, const std::string& str);
|
|
||||||
std::string get_extension(const std::string& str);
|
std::string get_extension(const std::string& str);
|
||||||
std::string cut_off_extension(const std::string& str);
|
std::string cut_off_extension(const std::string& str);
|
||||||
|
|
||||||
|
@ -82,16 +82,6 @@ namespace string_tools
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
bool validate_hex(uint64_t length, const std::string& str)
|
|
||||||
{
|
|
||||||
if (str.size() != length)
|
|
||||||
return false;
|
|
||||||
for (char c: str)
|
|
||||||
if (!isxdigit(c))
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
bool parse_peer_from_string(uint32_t& ip, uint16_t& port, const std::string& addres)
|
bool parse_peer_from_string(uint32_t& ip, uint16_t& port, const std::string& addres)
|
||||||
{
|
{
|
||||||
//parse ip and address
|
//parse ip and address
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#include "cryptonote_basic/cryptonote_boost_serialization.h"
|
#include "cryptonote_basic/cryptonote_boost_serialization.h"
|
||||||
#include "cryptonote_core/cryptonote_core.h"
|
#include "cryptonote_core/cryptonote_core.h"
|
||||||
#include "blockchain_db/blockchain_db.h"
|
#include "blockchain_db/blockchain_db.h"
|
||||||
|
#include "time_helper.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
|
||||||
#undef MONERO_DEFAULT_LOG_CATEGORY
|
#undef MONERO_DEFAULT_LOG_CATEGORY
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include "string_coding.h"
|
#include "string_coding.h"
|
||||||
#include "string_tools.h"
|
#include "string_tools.h"
|
||||||
#include "storages/portable_storage_template_helper.h"
|
#include "storages/portable_storage_template_helper.h"
|
||||||
|
#include "time_helper.h"
|
||||||
#include "boost/logic/tribool.hpp"
|
#include "boost/logic/tribool.hpp"
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
#include "byte_slice.h"
|
#include "byte_slice.h"
|
||||||
#include "math_helper.h"
|
#include "math_helper.h"
|
||||||
|
#include "syncobj.h"
|
||||||
#include "storages/levin_abstract_invoke2.h"
|
#include "storages/levin_abstract_invoke2.h"
|
||||||
#include "warnings.h"
|
#include "warnings.h"
|
||||||
#include "cryptonote_protocol_defs.h"
|
#include "cryptonote_protocol_defs.h"
|
||||||
|
@ -51,7 +51,6 @@
|
|||||||
#include "common/dns_utils.h"
|
#include "common/dns_utils.h"
|
||||||
#include "common/pruning.h"
|
#include "common/pruning.h"
|
||||||
#include "net/error.h"
|
#include "net/error.h"
|
||||||
#include "math_helper.h"
|
|
||||||
#include "misc_log_ex.h"
|
#include "misc_log_ex.h"
|
||||||
#include "p2p_protocol_defs.h"
|
#include "p2p_protocol_defs.h"
|
||||||
#include "crypto/crypto.h"
|
#include "crypto/crypto.h"
|
||||||
|
@ -35,7 +35,6 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include "common/util.h"
|
#include "common/util.h"
|
||||||
#include "net/http_server_impl_base.h"
|
#include "net/http_server_impl_base.h"
|
||||||
#include "math_helper.h"
|
|
||||||
#include "wallet_rpc_server_commands_defs.h"
|
#include "wallet_rpc_server_commands_defs.h"
|
||||||
#include "wallet2.h"
|
#include "wallet2.h"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user