mirror of
https://github.com/holub/mame
synced 2025-06-22 12:28:33 +03:00
Minor refactoring. (nw)
This commit is contained in:
parent
5b0d4772a3
commit
cb16de91c6
@ -17,6 +17,7 @@
|
|||||||
#include "nl_config.h"
|
#include "nl_config.h"
|
||||||
#include "plib/plists.h"
|
#include "plib/plists.h"
|
||||||
#include "plib/pchrono.h"
|
#include "plib/pchrono.h"
|
||||||
|
#include "plib/ptypes.h"
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------
|
||||||
// timed queue
|
// timed queue
|
||||||
|
@ -51,30 +51,6 @@ typedef __int128_t INT128;
|
|||||||
// Standard defines
|
// Standard defines
|
||||||
//============================================================
|
//============================================================
|
||||||
|
|
||||||
// prevent implicit copying
|
|
||||||
#if 0
|
|
||||||
#define P_PREVENT_COPYING(name) \
|
|
||||||
private: \
|
|
||||||
name(const name &); \
|
|
||||||
name(const name &&); \
|
|
||||||
name &operator=(const name &);
|
|
||||||
#else
|
|
||||||
|
|
||||||
namespace plib
|
|
||||||
{
|
|
||||||
struct nocopyassignmove
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
nocopyassignmove() = default;
|
|
||||||
~nocopyassignmove() = default;
|
|
||||||
private:
|
|
||||||
nocopyassignmove(const nocopyassignmove &) = delete;
|
|
||||||
nocopyassignmove(nocopyassignmove &&) = delete;
|
|
||||||
nocopyassignmove &operator=(const nocopyassignmove &) = delete;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//============================================================
|
//============================================================
|
||||||
// Pointer to Member Function
|
// Pointer to Member Function
|
||||||
//============================================================
|
//============================================================
|
||||||
|
@ -14,6 +14,14 @@
|
|||||||
|
|
||||||
namespace plib {
|
namespace plib {
|
||||||
|
|
||||||
|
P_ENUM(plog_level,
|
||||||
|
DEBUG,
|
||||||
|
INFO,
|
||||||
|
VERBOSE,
|
||||||
|
WARNING,
|
||||||
|
ERROR,
|
||||||
|
FATAL)
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct ptype_traits_base
|
struct ptype_traits_base
|
||||||
{
|
{
|
||||||
@ -175,14 +183,6 @@ private:
|
|||||||
unsigned m_arg;
|
unsigned m_arg;
|
||||||
};
|
};
|
||||||
|
|
||||||
P_ENUM(plog_level,
|
|
||||||
DEBUG,
|
|
||||||
INFO,
|
|
||||||
VERBOSE,
|
|
||||||
WARNING,
|
|
||||||
ERROR,
|
|
||||||
FATAL)
|
|
||||||
|
|
||||||
class plog_dispatch_intf;
|
class plog_dispatch_intf;
|
||||||
|
|
||||||
template <bool build_enabled = true>
|
template <bool build_enabled = true>
|
||||||
@ -242,7 +242,7 @@ private:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template <plog_level::e L, bool build_enabled = true>
|
template <plog_level::E L, bool build_enabled = true>
|
||||||
class plog_channel : public pfmt_writer_t<build_enabled>
|
class plog_channel : public pfmt_writer_t<build_enabled>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -258,7 +258,7 @@ private:
|
|||||||
|
|
||||||
class plog_dispatch_intf
|
class plog_dispatch_intf
|
||||||
{
|
{
|
||||||
template<plog_level::e, bool> friend class plog_channel;
|
template<plog_level::E, bool> friend class plog_channel;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~plog_dispatch_intf();
|
virtual ~plog_dispatch_intf();
|
||||||
@ -290,7 +290,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template <plog_level::e L, bool build_enabled>
|
template <plog_level::E L, bool build_enabled>
|
||||||
void plog_channel<L, build_enabled>::vdowrite(const pstring &ls) const
|
void plog_channel<L, build_enabled>::vdowrite(const pstring &ls) const
|
||||||
{
|
{
|
||||||
m_base->vlog(L, ls);
|
m_base->vlog(L, ls);
|
||||||
|
@ -39,11 +39,26 @@ namespace plib
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//============================================================
|
||||||
|
// prevent implicit copying
|
||||||
|
//============================================================
|
||||||
|
|
||||||
|
struct nocopyassignmove
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
nocopyassignmove() = default;
|
||||||
|
~nocopyassignmove() = default;
|
||||||
|
private:
|
||||||
|
nocopyassignmove(const nocopyassignmove &) = delete;
|
||||||
|
nocopyassignmove(nocopyassignmove &&) = delete;
|
||||||
|
nocopyassignmove &operator=(const nocopyassignmove &) = delete;
|
||||||
|
};
|
||||||
|
|
||||||
//============================================================
|
//============================================================
|
||||||
// penum - strongly typed enumeration
|
// penum - strongly typed enumeration
|
||||||
//============================================================
|
//============================================================
|
||||||
|
|
||||||
struct enum_base
|
struct penum_base
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
static int from_string_int(const char *str, const char *x);
|
static int from_string_int(const char *str, const char *x);
|
||||||
@ -53,22 +68,22 @@ namespace plib
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define P_ENUM(ename, ...) \
|
#define P_ENUM(ename, ...) \
|
||||||
struct ename : public plib::enum_base { \
|
struct ename : public plib::penum_base { \
|
||||||
enum e { __VA_ARGS__ }; \
|
enum E { __VA_ARGS__ }; \
|
||||||
ename (e v) : m_v(v) { } \
|
ename (E v) : m_v(v) { } \
|
||||||
bool set_from_string (const pstring &s) { \
|
bool set_from_string (const pstring &s) { \
|
||||||
static const char *strings = # __VA_ARGS__; \
|
static const char *strings = # __VA_ARGS__; \
|
||||||
int f = from_string_int(strings, s.c_str()); \
|
int f = from_string_int(strings, s.c_str()); \
|
||||||
if (f>=0) { m_v = static_cast<e>(f); return true; } else { return false; } \
|
if (f>=0) { m_v = static_cast<E>(f); return true; } else { return false; } \
|
||||||
} \
|
} \
|
||||||
operator e() const {return m_v;} \
|
operator E() const {return m_v;} \
|
||||||
bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \
|
bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \
|
||||||
bool operator==(const e &rhs) const {return m_v == rhs;} \
|
bool operator==(const E &rhs) const {return m_v == rhs;} \
|
||||||
const pstring name() const { \
|
const pstring name() const { \
|
||||||
static const char *strings = # __VA_ARGS__; \
|
static const char *strings = # __VA_ARGS__; \
|
||||||
return nthstr(static_cast<int>(m_v), strings); \
|
return nthstr(static_cast<int>(m_v), strings); \
|
||||||
} \
|
} \
|
||||||
private: e m_v; };
|
private: E m_v; };
|
||||||
|
|
||||||
|
|
||||||
#endif /* PTYPES_H_ */
|
#endif /* PTYPES_H_ */
|
||||||
|
@ -104,7 +104,7 @@ namespace plib
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int enum_base::from_string_int(const char *str, const char *x)
|
int penum_base::from_string_int(const char *str, const char *x)
|
||||||
{
|
{
|
||||||
int cnt = 0;
|
int cnt = 0;
|
||||||
const char *cur = str;
|
const char *cur = str;
|
||||||
@ -131,7 +131,7 @@ namespace plib
|
|||||||
return cnt;
|
return cnt;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
pstring enum_base::nthstr(int n, const char *str)
|
pstring penum_base::nthstr(int n, const char *str)
|
||||||
{
|
{
|
||||||
char buf[64];
|
char buf[64];
|
||||||
char *bufp = buf;
|
char *bufp = buf;
|
||||||
|
Loading…
Reference in New Issue
Block a user