org.jruby.runtime.callsite
Class CachingCallSite

java.lang.Object
  extended by org.jruby.runtime.CallSite
      extended by org.jruby.runtime.callsite.CachingCallSite
Direct Known Subclasses:
FunctionalCachingCallSite, NormalCachingCallSite, VariableCachingCallSite

public abstract class CachingCallSite
extends CallSite


Field Summary
protected  CacheEntry cache
           
static int failedCallSites
           
static int totalCallSites
           
 
Fields inherited from class org.jruby.runtime.CallSite
callType, methodName
 
Constructor Summary
CachingCallSite(java.lang.String methodName, CallType callType)
           
 
Method Summary
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, IRubyObject[] args, ThreadContext context, IRubyObject self)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, IRubyObject[] args, ThreadContext context, IRubyObject self)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2)
           
protected  IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, Block block)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject... args)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block)
           
 IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, long fixnum)
           
 IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, Block block)
           
 IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block)
           
 IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block)
           
 IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block)
           
 IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block)
           
 CacheEntry getCache()
           
 int getCachedClassIndex()
           
 long getCachedMethodSerial()
           
 java.lang.String getMethodName()
           
 boolean isOptimizable()
           
protected abstract  boolean methodMissing(DynamicMethod method, IRubyObject caller)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cache

protected volatile CacheEntry cache

totalCallSites

public static volatile int totalCallSites

failedCallSites

public static volatile int failedCallSites
Constructor Detail

CachingCallSite

public CachingCallSite(java.lang.String methodName,
                       CallType callType)
Method Detail

getCache

public CacheEntry getCache()

isOptimizable

public boolean isOptimizable()

getCachedClassIndex

public int getCachedClassIndex()

getMethodName

public java.lang.String getMethodName()

getCachedMethodSerial

public long getCachedMethodSerial()

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        long fixnum)
Specified by:
call in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        IRubyObject... args)
Specified by:
call in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        IRubyObject[] args,
                        Block block)
Specified by:
call in class CallSite

callIter

public IRubyObject callIter(ThreadContext context,
                            IRubyObject caller,
                            IRubyObject self,
                            IRubyObject[] args,
                            Block block)
Specified by:
callIter in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self)
Specified by:
call in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        Block block)
Specified by:
call in class CallSite

callIter

public IRubyObject callIter(ThreadContext context,
                            IRubyObject caller,
                            IRubyObject self,
                            Block block)
Specified by:
callIter in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        IRubyObject arg1)
Specified by:
call in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        IRubyObject arg1,
                        Block block)
Specified by:
call in class CallSite

callIter

public IRubyObject callIter(ThreadContext context,
                            IRubyObject caller,
                            IRubyObject self,
                            IRubyObject arg1,
                            Block block)
Specified by:
callIter in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        IRubyObject arg1,
                        IRubyObject arg2)
Specified by:
call in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        IRubyObject arg1,
                        IRubyObject arg2,
                        Block block)
Specified by:
call in class CallSite

callIter

public IRubyObject callIter(ThreadContext context,
                            IRubyObject caller,
                            IRubyObject self,
                            IRubyObject arg1,
                            IRubyObject arg2,
                            Block block)
Specified by:
callIter in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        IRubyObject arg1,
                        IRubyObject arg2,
                        IRubyObject arg3)
Specified by:
call in class CallSite

call

public IRubyObject call(ThreadContext context,
                        IRubyObject caller,
                        IRubyObject self,
                        IRubyObject arg1,
                        IRubyObject arg2,
                        IRubyObject arg3,
                        Block block)
Specified by:
call in class CallSite

callIter

public IRubyObject callIter(ThreadContext context,
                            IRubyObject caller,
                            IRubyObject self,
                            IRubyObject arg1,
                            IRubyObject arg2,
                            IRubyObject arg3,
                            Block block)
Specified by:
callIter in class CallSite

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   Block block,
                                   IRubyObject[] args,
                                   ThreadContext context,
                                   IRubyObject self)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   IRubyObject[] args,
                                   ThreadContext context,
                                   IRubyObject self)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   ThreadContext context,
                                   IRubyObject self)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   Block block,
                                   ThreadContext context,
                                   IRubyObject self)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   ThreadContext context,
                                   IRubyObject self,
                                   IRubyObject arg)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   Block block,
                                   ThreadContext context,
                                   IRubyObject self,
                                   IRubyObject arg)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   ThreadContext context,
                                   IRubyObject self,
                                   IRubyObject arg1,
                                   IRubyObject arg2)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   Block block,
                                   ThreadContext context,
                                   IRubyObject self,
                                   IRubyObject arg1,
                                   IRubyObject arg2)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   ThreadContext context,
                                   IRubyObject self,
                                   IRubyObject arg1,
                                   IRubyObject arg2,
                                   IRubyObject arg3)

cacheAndCall

protected IRubyObject cacheAndCall(IRubyObject caller,
                                   RubyClass selfType,
                                   Block block,
                                   ThreadContext context,
                                   IRubyObject self,
                                   IRubyObject arg1,
                                   IRubyObject arg2,
                                   IRubyObject arg3)

methodMissing

protected abstract boolean methodMissing(DynamicMethod method,
                                         IRubyObject caller)


Copyright © 2002-2009 JRuby Team. All Rights Reserved.