public abstract class CachingCallSite extends CallSite
Modifier and Type | Field and Description |
---|---|
protected CacheEntry |
cache |
static int |
totalCallSites |
callType, methodName
Constructor and Description |
---|
CachingCallSite(String methodName,
CallType callType) |
Modifier and Type | Method and Description |
---|---|
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)
Call the site's method against the target object passing no args.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
Block block)
Call the site's method against the target object passing no arguments and
a non-literal (block pass, &) block.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
double flote)
Call the site's method against the target object, passing a literal double
value.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject... args)
Call the site's method against the target object passing arguments.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1)
Call the site's method against the target object passing one argument.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block)
Call the site's method against the target object passing one argument and
a non-literal (block pass, &) block.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1,
Block block)
Call the site's method against the target object passing one argument and
a non-literal (block pass, &) block.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1,
IRubyObject arg2)
Call the site's method against the target object passing two arguments.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1,
IRubyObject arg2,
Block block)
Call the site's method against the target object passing two arguments and
a non-literal (block pass, &) block.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1,
IRubyObject arg2,
IRubyObject arg3)
Call the site's method against the target object passing two arguments.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1,
IRubyObject arg2,
IRubyObject arg3,
Block block)
Call the site's method against the target object passing three arguments and
a non-literal (block pass, &) block.
|
IRubyObject |
call(ThreadContext context,
IRubyObject caller,
IRubyObject self,
long fixnum)
Call the site's method against the target object, passing a literal long
value.
|
IRubyObject |
callIter(ThreadContext context,
IRubyObject caller,
IRubyObject self,
Block block)
Call the site's method against the target object passing no arguments and
a literal block.
|
IRubyObject |
callIter(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block)
Call the site's method against the target object passing arguments and
a literal block.
|
IRubyObject |
callIter(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1,
Block block)
Call the site's method against the target object passing one argument and
a literal block.
|
IRubyObject |
callIter(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1,
IRubyObject arg2,
Block block)
Call the site's method against the target object passing two arguments and
a literal block.
|
IRubyObject |
callIter(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg1,
IRubyObject arg2,
IRubyObject arg3,
Block block)
Call the site's method against the target object passing three arguments and
a literal block.
|
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
Block block) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
IRubyObject arg) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
IRubyObject[] args) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
IRubyObject[] args,
Block block) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
IRubyObject arg0,
Block block) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
IRubyObject arg0,
IRubyObject arg1) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
IRubyObject arg0,
IRubyObject arg1,
Block block) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2) |
protected IRubyObject |
callMethodMissing(ThreadContext context,
IRubyObject self,
DynamicMethod method,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2,
Block block) |
IRubyObject |
callVarargs(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject... args)
Call the site's method against the target object passing arguments.
|
IRubyObject |
callVarargs(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block)
Call the site's method against the target object passing one argument and
a non-literal (block pass, &) block.
|
IRubyObject |
callVarargsIter(ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block)
Call the site's method against the target object passing arguments and
a literal block.
|
CacheEntry |
getCache() |
int |
getCachedClassIndex() |
long |
getCachedMethodSerial() |
String |
getMethodName() |
boolean |
isOptimizable() |
protected abstract boolean |
methodMissing(DynamicMethod method,
IRubyObject caller) |
CacheEntry |
retrieveCache(RubyClass selfType,
String methodName) |
protected void |
updateCache(CacheEntry newEntry) |
protected CacheEntry cache
public static volatile int totalCallSites
public CacheEntry getCache()
public boolean isOptimizable()
public int getCachedClassIndex()
public String getMethodName()
public long getCachedMethodSerial()
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, long fixnum)
CallSite
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, double flote)
CallSite
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject... args)
CallSite
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block)
CallSite
public IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block)
CallSite
public IRubyObject callVarargs(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject... args)
CallSite
callVarargs
in class CallSite
context
- the ThreadContext for the current threadcaller
- the caller, for visibility checksself
- the target object to call againstargs
- the arguments to passpublic IRubyObject callVarargs(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block)
CallSite
callVarargs
in class CallSite
context
- the ThreadContext for the current threadcaller
- the caller, for visibility checksself
- the target object to call againstargs
- the arguments to passblock
- the block argument to passpublic IRubyObject callVarargsIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block)
CallSite
callVarargsIter
in class CallSite
context
- the ThreadContext for the current threadcaller
- the caller, for visibility checksself
- the target object to call againstargs
- the arguments to passblock
- the literal block to passpublic IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self)
CallSite
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, Block block)
CallSite
public IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, Block block)
CallSite
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1)
CallSite
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block)
CallSite
public IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block)
CallSite
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2)
CallSite
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block)
CallSite
call
in class CallSite
context
- the ThreadContext for the current threadcaller
- the caller, for visibility checksself
- the target object to call againstarg1
- the first argument to passarg2
- the second argument to passblock
- the block argument to passpublic IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block)
CallSite
callIter
in class CallSite
context
- the ThreadContext for the current threadcaller
- the caller, for visibility checksself
- the target object to call againstarg1
- the first argument to passarg2
- the second argument to passblock
- the literal block to passpublic IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)
CallSite
call
in class CallSite
context
- the ThreadContext for the current threadcaller
- the caller, for visibility checksself
- the target object to call againstarg1
- the first argument to passarg2
- the second argument to passarg3
- the third argument to passpublic IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block)
CallSite
call
in class CallSite
context
- the ThreadContext for the current threadcaller
- the caller, for visibility checksself
- the target object to call againstarg1
- the first argument to passarg2
- the second argument to passblock
- the block argument to passpublic IRubyObject callIter(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block)
CallSite
callIter
in class CallSite
context
- the ThreadContext for the current threadcaller
- the caller, for visibility checksself
- the target object to call againstarg1
- the first argument to passarg2
- the second argument to passarg3
- the third argument to passblock
- the literal block to passpublic CacheEntry retrieveCache(RubyClass selfType, String methodName)
protected IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, IRubyObject[] args, ThreadContext context, IRubyObject self)
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, Block block, ThreadContext context, IRubyObject self)
protected IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg)
protected IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, 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, Block block, 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)
protected IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)
protected void updateCache(CacheEntry newEntry)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, IRubyObject[] args)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, Block block)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, IRubyObject arg)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, IRubyObject[] args, Block block)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, IRubyObject arg0, Block block)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, IRubyObject arg0, IRubyObject arg1)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, IRubyObject arg0, IRubyObject arg1, Block block)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2)
protected IRubyObject callMethodMissing(ThreadContext context, IRubyObject self, DynamicMethod method, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, Block block)
protected abstract boolean methodMissing(DynamicMethod method, IRubyObject caller)
Copyright © 2001-2015 JRuby. All Rights Reserved.