示例#1
0
 public static bool CallFunctionWithTimeout(byte[]message,FunctionReturnCallback callback, Sirikata.Runtime.Time t)
 {
     if (message==null||callback==null||message.Length==0)
     return false;
     return iCallFunctionWithTimeout(message,callback,t.toClass());
 }
示例#2
0
 public static void SetupTickFunction(TimeoutCallback tc, Sirikata.Runtime.Time t)
 {
     long us=t.microseconds();
     TimeoutCallback wrapped_tc=null;
     long estLocalTime=GetLocalTime().microseconds()+us*2;
     wrapped_tc=new TimeoutCallback(delegate(){
         try {
             tc();
         }finally {
             long delta=estLocalTime-GetLocalTime().microseconds();
             estLocalTime+=us;
             if (delta>0) {
                 iAsyncWait(wrapped_tc,new TimeClass((ulong)delta));
             }else {
                 iAsyncWait(wrapped_tc,new TimeClass());
             }
         }
     });
     iAsyncWait(wrapped_tc,t.toClass());
 }
示例#3
0
 internal static long TimeTicks(Sirikata.Runtime.Time t)
 {
     return t.microseconds();
 }
示例#4
0
 public static bool AsyncWait(TimeoutCallback callback, Sirikata.Runtime.Time t)
 {
     if (callback==null) return false;
     iAsyncWait(callback,t.toClass());
     return true;
 }
示例#5
0
 internal static extern void iGetTimeString(string spaceid,  Sirikata.Runtime.TimeClass retval);
示例#6
0
 internal static extern void iTickPeriod(Sirikata.Runtime.TimeClass t);
示例#7
0
 internal static extern void iGetTimeByteArray(byte[] spaceid,  Sirikata.Runtime.TimeClass retval);
示例#8
0
 internal static extern void iGetTime(Guid spaceid,  Sirikata.Runtime.TimeClass retval);
示例#9
0
 internal static extern void iGetLocalTime( Sirikata.Runtime.TimeClass retval);
示例#10
0
 internal static extern bool iCallFunctionWithTimeout(byte[]message,FunctionReturnCallback callback, Sirikata.Runtime.TimeClass t);
示例#11
0
 internal static extern void iAsyncWait(TimeoutCallback callback, Sirikata.Runtime.TimeClass t);