Max 5 API Reference
00001 /* 00002 jit.tree.h 00003 00004 Copyright 2001-2005 - Cycling '74 00005 Joshua Kit Clayton jkc@cycling74.com 00006 00007 */ 00008 00009 #ifndef _JIT_TREE_H_ 00010 #define _JIT_TREE_H_ 00011 00012 #include "ext_systhread.h" 00013 00014 #ifdef __cplusplus 00015 extern "C" { 00016 #endif 00017 00018 #if C74_PRAGMA_STRUCT_PACKPUSH 00019 #pragma pack(push, 2) 00020 #elif C74_PRAGMA_STRUCT_PACK 00021 #pragma pack(2) 00022 #endif 00023 00024 typedef struct _jit_tree_node 00025 { 00026 t_object ob; 00027 struct _jit_tree_node *parent; 00028 t_jit_object *thing; 00029 t_jit_linklist *children; 00030 } t_jit_tree_node; 00031 00032 00033 typedef struct _jit_tree 00034 { 00035 t_jit_tree_node node; // parent, and thing NULL for root 00036 t_systhread_mutex lock; // eventually add/use lock, currently ignored 00037 } t_jit_tree; 00038 00039 t_jit_tree *jit_tree_new(void); 00040 void jit_tree_free(t_jit_tree *x); 00041 t_jit_tree_node *jit_tree_node_new(t_jit_object *thing); 00042 void jit_tree_node_free(t_jit_tree_node *x); 00043 void jit_tree_node_thing(t_jit_tree_node *x, t_jit_object *thing); 00044 t_jit_object *jit_tree_node_getthing(t_jit_tree_node *x); 00045 void jit_tree_node_clear(t_jit_tree_node *x); 00046 void jit_tree_node_chuck(t_jit_tree_node *x); 00047 void jit_tree_node_methodall(t_jit_tree_node *x, t_symbol *s, ...); 00048 void jit_tree_node_methodchild(t_jit_tree_node *x, long i, t_symbol *s, ...); 00049 t_jit_tree_node *jit_tree_node_getparent(t_jit_tree_node *x); 00050 t_jit_tree_node *jit_tree_node_getchild(t_jit_tree_node *x, long index); 00051 long jit_tree_node_getchildcount(t_jit_tree_node *x); 00052 t_jit_linklist *jit_tree_node_getchildren(t_jit_tree_node *x); 00053 void jit_tree_node_insertchild(t_jit_tree_node *x, t_jit_tree_node *o, long index); 00054 void jit_tree_node_appendchild(t_jit_tree_node *x, t_jit_tree_node *o); 00055 void jit_tree_node_replacechild(t_jit_tree_node *x, t_jit_tree_node *o, long index); 00056 void jit_tree_node_replacechuckchild(t_jit_tree_node *x, t_jit_tree_node *o, long index); 00057 void jit_tree_node_replaceremovechild(t_jit_tree_node *x, t_jit_tree_node *o, long index); 00058 void jit_tree_node_deletechild(t_jit_tree_node *x, long index); // frees t_jit_tree_node and t_jit_tree_node->thing 00059 void jit_tree_node_chuckchild(t_jit_tree_node *x, long index); // frees t_jit_tree_node, but not t_jit_tree_node->thing 00060 void jit_tree_node_removechild(t_jit_tree_node *x, long index); // frees neither t_jit_tree_node nor t_jit_tree_node->thing 00061 00062 #if C74_PRAGMA_STRUCT_PACKPUSH 00063 #pragma pack(pop) 00064 #elif C74_PRAGMA_STRUCT_PACK 00065 #pragma pack() 00066 #endif 00067 00068 #ifdef __cplusplus 00069 } 00070 #endif 00071 00072 #endif _JIT_TREE_H_ 00073
Copyright © 2008, Cycling '74