00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _THREADS_H_
00033 #define _THREADS_H_
00034
00035 #if _MSC_VER > 1000
00036 #pragma once
00037 #endif // _MSC_VER > 1000
00038
00039 #include "global.h"
00040 #include "types.h"
00041
00042 void ThreadDump(const string& info, ThreadID caller);
00043 extern bool HotSpot;
00044
00045 class ThreadInfo
00046 {
00047 private:
00048 string m_thread_name;
00049 jobjectID m_thread_id;
00050 JNIEnv m_thread_env_id;
00051 char m_printable[512];
00052 mutable unsigned long m_started;
00053 public:
00054 ThreadInfo() { }
00055 ThreadInfo(const ThreadInfo &);
00056 ThreadInfo(char *thread_name, char *group_name, char *parent_name, jobjectID thread_id, JNIEnv *thread_env_id);
00057 inline unsigned long getStarted() const;
00058 void setStarted(unsigned long started) const;
00059 inline const char* getShortInfo() const;
00060 inline string getThreadName() const;
00061 };
00062
00063 class ClassInfo
00064 {
00065 private:
00066 mutable char* m_printable;
00067 char * m_class_name;
00068 char * m_source_name;
00069 jclassID m_class_id;
00070 public:
00071 ClassInfo(const ClassInfo& );
00072 ~ClassInfo();
00073 ClassInfo( char * class_name, char * source_name, jclassID class_id);
00074 inline const char * getShortInfo() const;
00075 };
00076
00077 class MethodInfo
00078 {
00079 private:
00080 mutable char * m_short_string;
00081 jobjectID m_class_id;
00082 jmethodID m_method_id;
00083 bool m_used;
00084 char * m_method_name;
00085 char * m_method_signature;
00086 public:
00087 MethodInfo(const MethodInfo &);
00088
00089 ~MethodInfo();
00090
00091 MethodInfo(
00092 char * method_name,
00093 char * method_signature,
00094 jint ,
00095 jint ,
00096 jmethodID method_id,
00097 jobjectID class_id);
00098
00099 inline jobjectID getClassID() const;
00100 const char * getShortInfo() const;
00101 };
00102
00103 #endif // _THREADS_H_
00104