rpm  5.4.4
rpmio/rpmruby.h
Go to the documentation of this file.
00001 #ifndef RPMRUBY_H
00002 #define RPMRUBY_H
00003 
00025 #include <rpmiotypes.h>
00026 #include <rpmio.h>
00027 
00029 /*@unchecked@*/
00030 extern int _rpmruby_debug;
00031 
00032 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmruby_s* rpmruby;
00033 
00042 /*@unchecked@*/ /*@relnull@*/
00043 extern rpmruby _rpmrubyI;
00044 
00045 #if defined(_RPMRUBY_INTERNAL)
00046 
00050 struct rpmruby_s {
00051 
00056     struct rpmioItem_s _item;
00057 
00059     void *I;
00060 
00064     unsigned long state;
00065 
00066 #if defined(__LCLINT__)
00067 
00068 /*@refs@*/
00069     int nrefs;
00070 #endif
00071 };
00072 #endif /* _RPMRUBY_INTERNAL */
00073 
00074 #ifdef __cplusplus
00075 extern "C" {
00076 #endif
00077 
00085 /*@unused@*/ /*@null@*/
00086 rpmruby rpmrubyUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmruby ruby)
00087         /*@modifies ruby @*/;
00088 #define rpmrubyUnlink(_ruby) \
00089     ((rpmruby)rpmioUnlinkPoolItem((rpmioItem)(_ruby), __FUNCTION__, \
00090         __FILE__, __LINE__))
00091 
00099 /*@unused@*/ /*@newref@*/ /*@null@*/
00100 rpmruby rpmrubyLink (/*@null@*/ rpmruby ruby)
00101         /*@modifies ruby @*/;
00102 #define rpmrubyLink(_ruby) \
00103     ((rpmruby)rpmioLinkPoolItem((rpmioItem)(_ruby), __FUNCTION__, \
00104         __FILE__, __LINE__))
00105 
00113 /*@null@*/
00114 rpmruby rpmrubyFree(/*@killref@*/ /*@null@*/ rpmruby ruby)
00115         /*@globals fileSystem @*/
00116         /*@modifies ruby, fileSystem @*/;
00117 #define rpmrubyFree(_ruby)      \
00118     ((rpmruby)rpmioFreePoolItem((rpmioItem)(_ruby), __FUNCTION__, \
00119         __FILE__, __LINE__))
00120 
00128 /*@newref@*/ /*@null@*/
00129 rpmruby rpmrubyNew(/*@null@*/ char **av, uint32_t flags)
00130         /*@globals fileSystem, internalState @*/
00131         /*@modifies fileSystem, internalState @*/;
00132 
00142 rpmRC rpmrubyRun(rpmruby ruby, /*@null@*/ const char *str,
00143                 /*@null@*/ const char **resultp)
00144         /*@globals fileSystem, internalState @*/
00145         /*@modifies ruby, *resultp, fileSystem, internalState @*/;
00146 
00147 #ifdef __cplusplus
00148 }
00149 #endif
00150 
00151 #endif /* RPMRUBY_H */