// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- #ifndef __java_util_concurrent_locks_AbstractQueuedLongSynchronizer__ #define __java_util_concurrent_locks_AbstractQueuedLongSynchronizer__ #pragma interface #include extern "Java" { namespace sun { namespace misc { class Unsafe; } } } class java::util::concurrent::locks::AbstractQueuedLongSynchronizer : public ::java::util::concurrent::locks::AbstractOwnableSynchronizer { public: // actually protected AbstractQueuedLongSynchronizer(); virtual jlong getState(); virtual void setState(jlong); virtual jboolean compareAndSetState(jlong, jlong); private: ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * enq(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * addWaiter(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); void setHead(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); void unparkSuccessor(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); void setHeadAndPropagate(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, jlong); void cancelAcquire(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); static jboolean shouldParkAfterFailedAcquire(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); static void selfInterrupt(); jboolean parkAndCheckInterrupt(); public: // actually package-private virtual jboolean acquireQueued(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, jlong); private: void doAcquireInterruptibly(jlong); jboolean doAcquireNanos(jlong, jlong); void doAcquireShared(jlong); void doAcquireSharedInterruptibly(jlong); jboolean doAcquireSharedNanos(jlong, jlong); public: // actually protected virtual jboolean tryAcquire(jlong); virtual jboolean tryRelease(jlong); virtual jlong tryAcquireShared(jlong); virtual jboolean tryReleaseShared(jlong); virtual jboolean isHeldExclusively(); public: virtual void acquire(jlong); virtual void acquireInterruptibly(jlong); virtual jboolean tryAcquireNanos(jlong, jlong); virtual jboolean release(jlong); virtual void acquireShared(jlong); virtual void acquireSharedInterruptibly(jlong); virtual jboolean tryAcquireSharedNanos(jlong, jlong); virtual jboolean releaseShared(jlong); virtual jboolean hasQueuedThreads(); virtual jboolean hasContended(); virtual ::java::lang::Thread * getFirstQueuedThread(); private: ::java::lang::Thread * fullGetFirstQueuedThread(); public: virtual jboolean isQueued(::java::lang::Thread *); public: // actually package-private virtual jboolean apparentlyFirstQueuedIsExclusive(); virtual jboolean isFirst(::java::lang::Thread *); virtual jboolean fullIsFirst(::java::lang::Thread *); public: virtual jint getQueueLength(); virtual ::java::util::Collection * getQueuedThreads(); virtual ::java::util::Collection * getExclusiveQueuedThreads(); virtual ::java::util::Collection * getSharedQueuedThreads(); virtual ::java::lang::String * toString(); public: // actually package-private virtual jboolean isOnSyncQueue(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); private: jboolean findNodeFromTail(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); public: // actually package-private virtual jboolean transferForSignal(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); virtual jboolean transferAfterCancelledWait(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); virtual jlong fullyRelease(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); public: virtual jboolean owns(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject *); virtual jboolean hasWaiters(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject *); virtual jint getWaitQueueLength(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject *); virtual ::java::util::Collection * getWaitingThreads(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject *); private: jboolean compareAndSetHead(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); jboolean compareAndSetTail(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *); static jboolean compareAndSetWaitStatus(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, jint, jint); public: // actually package-private static void access$0(); private: static const jlong serialVersionUID = 7373984972572414692LL; ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * volatile __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::AbstractOwnableSynchronizer)))) head; ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * volatile tail; jlong volatile state; public: // actually package-private static const jlong spinForTimeoutThreshold = 1000LL; private: static ::sun::misc::Unsafe * unsafe; static jlong stateOffset; static jlong headOffset; static jlong tailOffset; static jlong waitStatusOffset; public: static ::java::lang::Class class$; }; #endif // __java_util_concurrent_locks_AbstractQueuedLongSynchronizer__