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.
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint> // uint64_t
|
||||
|
||||
#include <list>
|
||||
#include <numeric>
|
||||
#include <random>
|
||||
#include <boost/timer/timer.hpp>
|
||||
#include <boost/uuid/uuid.hpp>
|
||||
#include <boost/uuid/random_generator.hpp>
|
||||
|
||||
#include "syncobj.h"
|
||||
#include "time_helper.h"
|
||||
#ifdef _WIN32
|
||||
#include <sysinfoapi.h> // GetSystemTimeAsFileTime
|
||||
#else
|
||||
#include <sys/time.h> // gettimeofday
|
||||
#endif
|
||||
|
||||
namespace epee
|
||||
{
|
||||
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>
|
||||
class once_a_time
|
||||
{
|
||||
|
|
|
@ -127,7 +127,6 @@ namespace string_tools
|
|||
return s;
|
||||
}
|
||||
|
||||
bool validate_hex(uint64_t length, const std::string& str);
|
||||
std::string get_extension(const std::string& str);
|
||||
std::string cut_off_extension(const std::string& str);
|
||||
|
||||
|
|
|
@ -82,16 +82,6 @@ namespace string_tools
|
|||
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)
|
||||
{
|
||||
//parse ip and address
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "cryptonote_basic/cryptonote_boost_serialization.h"
|
||||
#include "cryptonote_core/cryptonote_core.h"
|
||||
#include "blockchain_db/blockchain_db.h"
|
||||
#include "time_helper.h"
|
||||
#include "version.h"
|
||||
|
||||
#undef MONERO_DEFAULT_LOG_CATEGORY
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "string_coding.h"
|
||||
#include "string_tools.h"
|
||||
#include "storages/portable_storage_template_helper.h"
|
||||
#include "time_helper.h"
|
||||
#include "boost/logic/tribool.hpp"
|
||||
#include <boost/filesystem.hpp>
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include "byte_slice.h"
|
||||
#include "math_helper.h"
|
||||
#include "syncobj.h"
|
||||
#include "storages/levin_abstract_invoke2.h"
|
||||
#include "warnings.h"
|
||||
#include "cryptonote_protocol_defs.h"
|
||||
|
|
|
@ -51,7 +51,6 @@
|
|||
#include "common/dns_utils.h"
|
||||
#include "common/pruning.h"
|
||||
#include "net/error.h"
|
||||
#include "math_helper.h"
|
||||
#include "misc_log_ex.h"
|
||||
#include "p2p_protocol_defs.h"
|
||||
#include "crypto/crypto.h"
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#include <string>
|
||||
#include "common/util.h"
|
||||
#include "net/http_server_impl_base.h"
|
||||
#include "math_helper.h"
|
||||
#include "wallet_rpc_server_commands_defs.h"
|
||||
#include "wallet2.h"
|
||||
|
||||
|
|
Loading…
Reference in New Issue