topical media & game development

talk show tell print

#mobile-application-10-DerbyApp-build-iphone-Classes-KrollContext.h / h



  
Appcelerator Titanium Mobile Copyright (c) 2009-2011 by Appcelerator, Inc. All Rights Reserved. Licensed under the terms of the Apache Public License Please see the LICENSE included with this distribution for details. WARNING: This is generated code. Modify at your own risk and without support.

  
  #import <Foundation/Foundation.h>
  #import <TiCore.h>
  #import <TiBase.h>
  #import <TiContextRefPrivate.h>
  
  
  
  
  @protocol KrollDelegate <NSObject>
  
  @required
  -(id)require:(KrollContext*)kroll path:(NSString*)path;
  -(BOOL)shouldDebugContext;
  @optional
  
  -(void)willStartNewContext:(KrollContext*)kroll;
  -(void)didStartNewContext:(KrollContext*)kroll;
  -(void)willStopNewContext:(KrollContext*)kroll;
  -(void)didStopNewContext:(KrollContext*)kroll;
          
  @end
  
  @interface KrollContext : NSObject 
  {
  @private
          id<KrollDelegate> delegate;
          NSString *contextId;
          NSRecursiveLock *lock;
          NSCondition *condition;
          NSMutableArray *queue;
          BOOL stopped;
  
  //Garbage collection variables.
          BOOL gcrequest;
          unsigned int loopCount;
  
          BOOL destroyed;
          BOOL suspended;
          TiGlobalContextRef context;
          NSMutableDictionary *timers;
          NSRecursiveLock *timerLock;
          void *debugger;
          id cachedThreadId;
  }
  
  @property(nonatomic,readwrite,assign) id<KrollDelegate> delegate;
  
  -(NSString*)contextId;
  -(void)start;
  -(void)stop;
  -(BOOL)running;
  -(void)gc;
  -(TiGlobalContextRef)context;
  -(void*)debugger;
  -(BOOL)isKJSThread;
  
  ifdef DEBUG
  // used during debugging only
  -(int)queueCount;
  endif
  
  -(void)invokeOnThread:(id)callback_ method:(SEL)method_ withObject:(id)obj condition:(NSCondition*)condition_;
  -(void)invokeOnThread:(id)callback_ method:(SEL)method_ withObject:(id)obj callback:(id)callback selector:(SEL)selector_;
  -(void)evalJS:(NSString*)code;
  -(id)evalJSAndWait:(NSString*)code;
  
  -(void)enqueue:(id)obj;
  
  -(void)registerTimer:(id)timer timerId:(double)timerId;
  -(void)unregisterTimer:(double)timerId;
  
  -(int)forceGarbageCollectNow;
  
  @end
  
  //====================================================================================================================
  
  @interface KrollUnprotectOperation : NSOperation
  {
          TiContextRef jsContext;
          TiObjectRef firstObject;
          TiObjectRef secondObject;
  }
  
  -(id)initWithContext: (TiContextRef)newContext withJsobject: (TiObjectRef) newFirst;
  -(id)initWithContext: (TiContextRef)newContext withJsobject: (TiObjectRef) newFirst andJsobject: (TiObjectRef) newSecond;
  
  @end
  
  @interface KrollInvocation : NSObject {
  @private
          id target;
          SEL method;
          id obj;
          NSCondition *condition;
          id notify;
          SEL notifySelector;
  }
  -(id)initWithTarget:(id)target_ method:(SEL)method_ withObject:(id)obj_ condition:(NSCondition*)condition_;
  -(id)initWithTarget:(id)target_ method:(SEL)method_ withObject:(id)obj_ callback:(id)callback_ selector:(SEL)selector_;
  -(void)invoke:(KrollContext*)context;
  @end
  
  @interface KrollEval : NSObject {
  @private
          NSString *code;
  }
  -(id)initWithCode:(NSString*)code;
  -(void)invoke:(KrollContext*)context;
  -(id)invokeWithResult:(KrollContext*)context;
  @end
  
  
  @interface KrollEvent : NSObject {
  @private
          KrollCallback * callback;
  
          NSString * type;
          KrollObject * callbackObject;
  
          NSDictionary *eventObject;
          id thisObject;
  }
  -(id)initWithType:(NSString *)newType ForKrollObject:(KrollObject*)newCallbackObject eventObject:(NSDictionary*)newEventObject thisObject:(id)newThisObject;
  -(id)initWithCallback:(KrollCallback*)newCallback eventObject:(NSDictionary*)newEventObject thisObject:(id)newThisObject;
  -(void)invoke:(KrollContext*)context;
  @end
  
  @protocol KrollTargetable
  @required
  -(void)setExecutionContext:(id<KrollDelegate>)delegate;
  @end
  
  TI_INLINE KrollContext* GetKrollContext(TiContextRef context)
  {
          static const char *krollNS = "Kroll";
          TiGlobalContextRef globalContext = TiContextGetGlobalContext(context);
          TiObjectRef global = TiContextGetGlobalObject(globalContext); 
          TiStringRef string = TiStringCreateWithUTF8CString(krollNS);
          TiValueRef value = TiObjectGetProperty(globalContext, global, string, NULL);
          KrollContext *ctx = (KrollContext*)TiObjectGetPrivate(TiValueToObject(globalContext, value, NULL));
          TiStringRelease(string);
          return ctx;
  }
  
  //TODO: After 1.7, move to individual file and convert KrollInvocation and Callbacks to ExpandedInvocationOperation.
  @interface ExpandedInvocationOperation : NSOperation {
  @private
          id invocationTarget;
          SEL invocationSelector;
          id invocationArg1;
          id invocationArg2;
          id invocationArg3;
          id invocationArg4;
  }
  (id)initWithTarget:(id)target selector:(SEL)sel object:(id)arg1 object:(id)arg2;
  (id)initWithTarget:(id)target selector:(SEL)sel object:(id)arg1 object:(id)arg2 object:(id)arg3;
  (id)initWithTarget:(id)target selector:(SEL)sel object:(id)arg1 object:(id)arg2 object:(id)arg3 object:(id)arg4;
  
  @property(nonatomic,readwrite,retain)        id invocationTarget;
  @property(nonatomic,readwrite,assign)        SEL invocationSelector;
  @property(nonatomic,readwrite,retain)        id invocationArg1;
  @property(nonatomic,readwrite,retain)        id invocationArg2;
  @property(nonatomic,readwrite,retain)        id invocationArg3;
  @property(nonatomic,readwrite,retain)        id invocationArg4;
  
  @end
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.