aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-08-07 11:52:27 +0800
committerchai <chaifix@163.com>2018-08-07 11:52:27 +0800
commitdf24addf48a6de2c4ef4e1723ae7d9c1d261dabe (patch)
tree168a8aced7d70378daa47b0e2b44c85e126b6f76
parentf743358eb6868cd651b28bf67fbcc9c9e3967e5c (diff)
*update
-rw-r--r--libjin/Thread/Thread.cpp7
-rw-r--r--libjin/Thread/Thread.h48
-rw-r--r--libjin/Utils/Log.h10
-rw-r--r--libjin/jin.h8
4 files changed, 48 insertions, 25 deletions
diff --git a/libjin/Thread/Thread.cpp b/libjin/Thread/Thread.cpp
index 374778b..064d3db 100644
--- a/libjin/Thread/Thread.cpp
+++ b/libjin/Thread/Thread.cpp
@@ -296,6 +296,13 @@ namespace thread
return v;
}
+ void Thread::remove(int slot)
+ {
+ lock();
+ common->remove(slot);
+ unlock();
+ }
+
} // thread
} // jin
diff --git a/libjin/Thread/Thread.h b/libjin/Thread/Thread.h
index aeb0d9e..37c978d 100644
--- a/libjin/Thread/Thread.h
+++ b/libjin/Thread/Thread.h
@@ -42,23 +42,36 @@ namespace thread
class Thread
{
public:
-
- union Variant
+ struct Variant
{
- int integer;
- bool boolean;
- char character;
- const char* cstring;
- void* pointer;
- float real;
-
- Variant() {};
- Variant(int i) : integer(i) {};
- Variant(float f) : real(f) {};
- Variant(bool b) : boolean(b) {};
- Variant(char c) : character(c) {};
- Variant(const char* s) : cstring(s) {};
- Variant(void* p) : pointer(p) {};
+ enum Type
+ {
+ NONE = 0,
+ INTERGER,
+ BOOLEAN,
+ CHARACTER,
+ CSTRING,
+ POINTER,
+ REAL,
+ };
+ Type type;
+ union
+ {
+ int integer;
+ bool boolean;
+ char character;
+ const char* cstring;
+ void* pointer;
+ float real;
+ };
+ Variant() :type(NONE) {};
+ Variant(const Variant& v){ memcpy(this, &v, sizeof(v)); }
+ Variant(int i) : integer(i), type(INTERGER) {};
+ Variant(float f) : real(f), type(REAL) {};
+ Variant(bool b) : boolean(b), type(BOOLEAN) {};
+ Variant(char c) : character(c), type(CHARACTER) {};
+ Variant(const char* s) : cstring(s), type(CSTRING) {};
+ Variant(void* p) : pointer(p), type(POINTER) {};
};
private:
@@ -76,6 +89,8 @@ namespace thread
static const int SLOT_ERROR = -1;
static const int SLOT_WARN = -2;
+ static const int SLOT_INFO = -3;
+ static const int SLOT_DEBUG = -4;
private:
std::map<int, Variant> share; // threads shared value
@@ -91,6 +106,7 @@ namespace thread
bool receive(int slot);
Variant fetch(int slot);
Variant demand(int slot);
+ void remove(int slot);
const char* getName();
bool isRunning();
void lock();
diff --git a/libjin/Utils/Log.h b/libjin/Utils/Log.h
index b047402..50ec3c8 100644
--- a/libjin/Utils/Log.h
+++ b/libjin/Utils/Log.h
@@ -65,19 +65,19 @@ void Loghelper::log(Level _level, const char* _fmt, ...)
switch (_level)
{
case LV_ERROR:
- levelStr = "Error: ";
+ levelStr = "[Jin Error]:";
break;
case LV_WARN:
- levelStr = "Warn: ";
+ levelStr = "[Jin Warn]:";
break;
case LV_INFO:
- levelStr = "Info: ";
+ levelStr = "[Jin Info]:";
break;
case LV_DEBUG:
- levelStr = "Debug: ";
+ levelStr = "[Jin Debug]:";
break;
default:
- levelStr = "Unknown: ";
+ levelStr = "[Jin Unknown]:";
break;
}
char buffer[FORMAT_MSG_BUFFER_SIZE + 1] = { 0 };
diff --git a/libjin/jin.h b/libjin/jin.h
index ad83fae..239fddd 100644
--- a/libjin/jin.h
+++ b/libjin/jin.h
@@ -15,9 +15,9 @@
#include "Time/Timer.h"
#include "Thread/Thread.h"
-const char* JIN_VERSION = "Jin 0.1";
-const char* JIN_AUTHOR = "Chai";
-const char* JIN_RELEASE = "Jin 0.1.1";
-const int JIN_VERSION_NUM = 101;
+#define JIN_VERSION "Jin 0.1";
+#define JIN_AUTHOR "Chai";
+#define JIN_RELEASE "Jin 0.1.1";
+#define JIN_VERSION_NUM 101;
#endif // __JIN_H \ No newline at end of file