OSDN Git Service

2007-01-31 Andrew Haley <aph@redhat.com>
[pf3gnuchains/gcc-fork.git] / libjava / java / lang / Thread.h
1
2 // DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
3
4 #ifndef __java_lang_Thread__
5 #define __java_lang_Thread__
6
7 #pragma interface
8
9 #include <java/lang/Object.h>
10 #include <gcj/array.h>
11
12 extern "Java"
13 {
14   namespace gnu
15   {
16     namespace gcj
17     {
18         class RawData;
19         class RawDataManaged;
20     }
21     namespace java
22     {
23       namespace util
24       {
25           class WeakIdentityHashMap;
26       }
27     }
28   }
29 }
30
31 class _Jv_JNIEnv;
32 #define _JV_NOT_OWNER 1
33 #define _JV_INTERRUPTED 2
34 _Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();
35 void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);
36 void _Jv_ThreadRun (java::lang::Thread* thread);
37 jint _Jv_AttachCurrentThread(java::lang::Thread* thread);
38 java::lang::Thread* _Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);
39 java::lang::Thread* _Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);
40 jint _Jv_DetachCurrentThread ();
41 struct _Jv_Thread_t;
42 _Jv_Thread_t* _Jv_ThreadGetData (java::lang::Thread* thread);
43
44 class java::lang::Thread : public ::java::lang::Object
45 {
46
47 public:
48   Thread();
49   Thread(::java::lang::Runnable *);
50   Thread(::java::lang::String *);
51   Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *);
52   Thread(::java::lang::ThreadGroup *, ::java::lang::String *);
53   Thread(::java::lang::Runnable *, ::java::lang::String *);
54   Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *);
55   Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *, jlong);
56 private:
57   Thread(::java::lang::Thread *, ::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *);
58 public:
59   static jint activeCount();
60   virtual void checkAccess();
61   virtual jint countStackFrames();
62   static ::java::lang::Thread * currentThread();
63   virtual void destroy();
64   static void dumpStack();
65   static jint enumerate(JArray< ::java::lang::Thread * > *);
66   virtual ::java::lang::String * getName();
67   virtual jint getPriority();
68   virtual ::java::lang::ThreadGroup * getThreadGroup();
69   static jboolean holdsLock(::java::lang::Object *);
70   virtual void interrupt();
71   static jboolean interrupted();
72   virtual jboolean isInterrupted();
73   virtual jboolean isAlive();
74   virtual jboolean isDaemon();
75   virtual void join();
76   virtual void join(jlong);
77   virtual void join(jlong, jint);
78   virtual void resume();
79 private:
80   void finish_();
81   jboolean isInterrupted(jboolean);
82 public:
83   virtual void run();
84   virtual void setDaemon(jboolean);
85   virtual ::java::lang::ClassLoader * getContextClassLoader();
86   virtual void setContextClassLoader(::java::lang::ClassLoader *);
87   virtual void setName(::java::lang::String *);
88   static void yield();
89   static void sleep(jlong);
90   static void sleep(jlong, jint);
91   virtual void start();
92   virtual void stop();
93   virtual void stop(::java::lang::Throwable *);
94   virtual void suspend();
95   virtual void setPriority(jint);
96   virtual ::java::lang::String * toString();
97 private:
98   void initialize_native();
99   static ::java::lang::String * gen_name();
100 public: // actually package-private
101   static ::java::util::Map * getThreadLocals();
102 public:
103   virtual void setUncaughtExceptionHandler(::java::lang::Thread$UncaughtExceptionHandler *);
104   virtual ::java::lang::Thread$UncaughtExceptionHandler * getUncaughtExceptionHandler();
105   static void setDefaultUncaughtExceptionHandler(::java::lang::Thread$UncaughtExceptionHandler *);
106   static ::java::lang::Thread$UncaughtExceptionHandler * getDefaultUncaughtExceptionHandler();
107   virtual jlong getId();
108   virtual ::java::lang::Thread$State * getState();
109   static ::java::util::Map * getAllStackTraces();
110   virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace();
111   static const jint MIN_PRIORITY = 1;
112   static const jint NORM_PRIORITY = 5;
113   static const jint MAX_PRIORITY = 10;
114 public: // actually package-private
115   ::java::lang::ThreadGroup * __attribute__((aligned(__alignof__( ::java::lang::Object)))) group;
116 private:
117   ::java::lang::Runnable * runnable;
118 public: // actually package-private
119   ::java::lang::String * name;
120 private:
121   jboolean daemon;
122   jint priority;
123 public: // actually package-private
124   jboolean interrupt_flag;
125 private:
126   static const jbyte THREAD_DEAD = 0;
127   static const jbyte THREAD_ALIVE = 1;
128   static const jbyte THREAD_SIGNALED = 2;
129   jboolean startable_flag;
130   ::java::lang::ClassLoader * contextClassLoader;
131   jlong threadId;
132   static jlong nextThreadId;
133   static jlong totalThreadsCreated;
134   static ::java::lang::Thread$UncaughtExceptionHandler * defaultHandler;
135 public: // actually package-private
136   ::gnu::java::util::WeakIdentityHashMap * locals;
137   ::java::lang::Thread$UncaughtExceptionHandler * exceptionHandler;
138 private:
139   ::java::lang::Object * parkBlocker;
140 public: // actually package-private
141   static const jbyte THREAD_PARK_RUNNING = 0;
142   static const jbyte THREAD_PARK_PERMIT = 1;
143   static const jbyte THREAD_PARK_PARKED = 2;
144   static const jbyte THREAD_PARK_DEAD = 3;
145   ::java::lang::Object * accessControlState;
146   ::gnu::gcj::RawData * interp_frame;
147   ::gnu::gcj::RawData * frame;
148   volatile jint state;
149   ::gnu::gcj::RawDataManaged * data;
150 public:
151   static ::java::lang::Class class$;
152
153   friend _Jv_JNIEnv * ::_Jv_GetCurrentJNIEnv ();
154   friend void ::_Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);
155   friend void ::_Jv_ThreadRun (java::lang::Thread* thread);
156   friend jint (::_Jv_AttachCurrentThread) (java::lang::Thread* thread);
157   friend java::lang::Thread* ::_Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);
158   friend java::lang::Thread* ::_Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);
159   friend jint (::_Jv_DetachCurrentThread) ();
160 };
161
162 #endif // __java_lang_Thread__