rpm 5.3.12
rpmio/rpmtcl.h
Go to the documentation of this file.
00001 #ifndef RPMTCL_H
00002 #define RPMTCL_H
00003 
00008 #include <rpmiotypes.h>
00009 #include <rpmio.h>
00010 
00011 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmtcl_s * rpmtcl;
00012 
00013 /*@unchecked@*/
00014 extern int _rpmtcl_debug;
00015 
00016 /*@unchecked@*/ /*@relnull@*/
00017 extern rpmtcl _rpmtclI;
00018 
00019 #if defined(_RPMTCL_INTERNAL)
00020 struct rpmtcl_s {
00021     struct rpmioItem_s _item;   
00022     void * I;                   /* Tcl_Interp */
00023     void * tclout;              /* Tcl_Channel */
00024     rpmiob iob;
00025 #if defined(__LCLINT__)
00026 /*@refs@*/
00027     int nrefs;                  
00028 #endif
00029 };
00030 #endif /* _RPMTCL_INTERNAL */
00031 
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035 
00041 /*@unused@*/ /*@null@*/
00042 rpmtcl rpmtclUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmtcl tcl)
00043         /*@modifies tcl @*/;
00044 #define rpmtclUnlink(_tcl)      \
00045     ((rpmtcl)rpmioUnlinkPoolItem((rpmioItem)(_tcl), __FUNCTION__, __FILE__, __LINE__))
00046 
00052 /*@unused@*/ /*@newref@*/ /*@null@*/
00053 rpmtcl rpmtclLink (/*@null@*/ rpmtcl tcl)
00054         /*@modifies tcl @*/;
00055 #define rpmtclLink(_tcl)        \
00056     ((rpmtcl)rpmioLinkPoolItem((rpmioItem)(_tcl), __FUNCTION__, __FILE__, __LINE__))
00057 
00063 /*@null@*/
00064 rpmtcl rpmtclFree(/*@killref@*/ /*@null@*/rpmtcl tcl)
00065         /*@globals fileSystem @*/
00066         /*@modifies tcl, fileSystem @*/;
00067 #define rpmtclFree(_tcl)        \
00068     ((rpmtcl)rpmioFreePoolItem((rpmioItem)(_tcl), __FUNCTION__, __FILE__, __LINE__))
00069 
00076 /*@newref@*/ /*@null@*/
00077 rpmtcl rpmtclNew(/*@null@*/ char ** av, uint32_t flags)
00078         /*@globals fileSystem, internalState @*/
00079         /*@modifies fileSystem, internalState @*/;
00080 
00088 rpmRC rpmtclRunFile(rpmtcl tcl, /*@null@*/ const char * fn,
00089                 /*@null@*/ const char ** resultp)
00090         /*@globals fileSystem, internalState @*/
00091         /*@modifies tcl, fileSystem, internalState @*/;
00092 
00100 rpmRC rpmtclRun(rpmtcl tcl, /*@null@*/ const char * str,
00101                 /*@null@*/ const char ** resultp)
00102         /*@globals fileSystem, internalState @*/
00103         /*@modifies tcl, *resultp, fileSystem, internalState @*/;
00104 
00105 #ifdef __cplusplus
00106 }
00107 #endif
00108 
00109 #endif /* RPMTCL_H */