1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
36
  
37
  
38
  
39
  
#pike __REAL_VERSION__ 
 
 
#include "remote.h" 
 
constant is_remote_obj = 1; 
 
string id; 
object con; 
object ctx; 
 
mapping calls = ([ ]); 
 
mixed get_function(string f) 
{ 
  object call = calls[f]; 
  if (!call) 
    call = calls[f] = Call(id, f, con, ctx, 0); 
  return call; 
} 
 
mixed `[] (string f) 
{ 
  return get_function(f); 
} 
 
mixed `-> (string f) 
{ 
  return get_function(f); 
} 
 
void create(string i, object cn, object ct) 
{ 
  id  = i; 
  con = cn; 
  ctx = ct; 
}