otcl.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. /* -*- Mode: c++ -*-
  2.  *
  3.  *  $Id: otcl.h,v 1.5 2003/10/12 21:35:00 xuanc Exp $
  4.  *  
  5.  *  Copyright 1993 Massachusetts Institute of Technology
  6.  * 
  7.  *  Permission to use, copy, modify, distribute, and sell this software and its
  8.  *  documentation for any purpose is hereby granted without fee, provided that
  9.  *  the above copyright notice appear in all copies and that both that
  10.  *  copyright notice and this permission notice appear in supporting
  11.  *  documentation, and that the name of M.I.T. not be used in advertising or
  12.  *  publicity pertaining to distribution of the software without specific,
  13.  *  written prior permission.  M.I.T. makes no representations about the
  14.  *  suitability of this software for any purpose.  It is provided "as is"
  15.  *  without express or implied warranty.
  16.  * 
  17.  */
  18. #ifndef _otcl_h_
  19. #define _otcl_h_
  20. #include <tcl.h>
  21. /* compatible char definition for versions < 8.4 */
  22. /* NOTE: tcl8.3.2 defines CONST, but used it in other places...? */
  23. #if TCL_MAJOR_VERSION < 8 || TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION < 4
  24.   #define CONST84
  25.   #define CONST84_RETURN
  26. #endif
  27. struct OTclObject;
  28. struct OTclClass;
  29. extern struct OTclObject*
  30. OTclAsObject(Tcl_Interp* in, ClientData cd);
  31. extern struct OTclClass*
  32. OTclAsClass(Tcl_Interp* in, ClientData cd);
  33. extern struct OTclObject*
  34. OTclGetObject(Tcl_Interp* in, CONST84 char* name);
  35. extern struct OTclClass*
  36. OTclGetClass(Tcl_Interp* in, CONST84 char* name);
  37. extern struct OTclObject*
  38. OTclCreateObject(Tcl_Interp* in, CONST84 char* name, struct OTclClass* cl);
  39. extern struct OTclClass*
  40. OTclCreateClass(Tcl_Interp* in, CONST84 char* name, struct OTclClass* cl);
  41. extern int
  42. OTclDeleteObject(Tcl_Interp* in, struct OTclObject* obj);
  43. extern int
  44. OTclDeleteClass(Tcl_Interp* in, struct OTclClass* cl);
  45. extern void
  46. OTclAddPMethod(struct OTclObject* obj, char* nm, Tcl_CmdProc* proc,
  47.        ClientData cd, Tcl_CmdDeleteProc* dp);
  48. extern void
  49. OTclAddIMethod(struct OTclClass* cl, char* nm, Tcl_CmdProc* proc,
  50.        ClientData cd, Tcl_CmdDeleteProc* dp);
  51. extern int
  52. OTclRemovePMethod(struct OTclObject* obj, char* nm);
  53. extern int
  54. OTclRemoveIMethod(struct OTclClass* cl, char* nm);
  55. extern int
  56. OTclNextMethod(struct OTclObject* obj, Tcl_Interp* in,
  57.        int argc, CONST84 char*argv[]);
  58. extern CONST84_RETURN char*
  59. OTclSetInstVar(struct OTclObject* obj, Tcl_Interp* in,
  60.        CONST84 char* name, CONST84 char* value, int flgs);
  61. extern CONST84_RETURN char*
  62. OTclGetInstVar(struct OTclObject* obj, Tcl_Interp* in,
  63.        CONST84 char* name, int flgs);
  64. extern int
  65. OTclUnsetInstVar(struct OTclObject* obj, Tcl_Interp* in,
  66.  CONST84 char* name, int flgs);
  67. extern int
  68. OTclOInstVarOne(struct OTclObject* obj, Tcl_Interp *in, char *frameName, 
  69. CONST84 char *varName, CONST84 char *localName, int flags);
  70.  
  71. extern void
  72. OTclSetObjectData(struct OTclObject* obj, struct OTclClass* cl,
  73.   ClientData data);
  74. extern int
  75. OTclGetObjectData(struct OTclObject* obj, struct OTclClass* cl,
  76.   ClientData* data);
  77. extern int
  78. OTclUnsetObjectData(struct OTclObject* obj, struct OTclClass* cl);
  79. extern int
  80. Otcl_Init(Tcl_Interp* in);
  81. #endif /* _otcl_h_ */