diff options
Diffstat (limited to 'doc/libsolv-bindings.txt')
-rw-r--r-- | doc/libsolv-bindings.txt | 82 |
1 files changed, 78 insertions, 4 deletions
diff --git a/doc/libsolv-bindings.txt b/doc/libsolv-bindings.txt index 2b51635..175d922 100644 --- a/doc/libsolv-bindings.txt +++ b/doc/libsolv-bindings.txt @@ -141,6 +141,52 @@ other ruby modules: puts "empty" if repo.isempty? +Tcl Specifics +------------- +Libsolv's tcl bindings can be loaded with the following statement: + + TCL package require solv + +Objects are either created by calling class name prefixed with ``new_'', +or they are returned by calling methods on other objects. + + TCL set pool [solv::new_Pool] + TCL set repo [$pool add_repo "my_first_repo"] + +Swig provides a ``cget'' method to read object attributes, and a +``configure'' method to write them: + + TCL $pool configure -appdata 42 + TCL puts "appdata is [$pool cget -appdata]" + +The tcl bindings provide a little helper to work with iterators in +a foreach style: + + TCL set iter [$pool solvables_iter] + TCL solv::iter s $iter { ... } + +libsolv's arrays are mapped to tcl's lists: + + TCL set jobs [list $job1 $job2] + TCL set problems [$solver solve $jobs] + TCL puts "We have [llength $problems] problems..." + +Stringification is done by calling the object's ``str'' method. + + TCL puts [$dep str] + +There is one exception: you have to use ``stringify'' for Datamatch +objects, as swig reports a clash with the ``str'' attribute. +Some objects also support a ``=='' method for equality tests, and a +``!='' method. + +Swig implements all constants as numeric variables, constants belonging +to a libsolv class are prefixed with the class name: + + TCL $pool set_flag $solv::Pool_POOL_FLAG_OBSOLETEUSESCOLORS 1 + TCL puts [$solvable lookup_str $solv::SOLVABLE_SUMMARY] + + The Solv Class -------------- This is the main namespace of the library, you cannot create objects of this @@ -532,6 +578,16 @@ needs to be accessed, the callback function is called with a repodata argument. You can then load the data (maybe fetching it first from an remote server). The callback should return true if the data has been made available. + /* bindings only */ + $pool->appdata_disown() + pool.appdata_disown() + pool.appdata_disown() + +Decrement the reference count of the appdata object. This can be used to break +circular references (e.g. if the pool's appdata value points to some meta data +structure that contains a pool handle). If used incorrectly, this method can +lead to application crashes, so beware. (This method is a no-op for ruby and tcl.) + === DATA RETRIEVAL METHODS === In the following functions, the _keyname_ argument describes what to retrieve. @@ -3029,7 +3085,14 @@ These keys are constants in the *solv* class. chksum = solv.Chksum(type, hex) chksum = Solv::Chksum.new(type, hex) -Create an already finalized checksum object. +Create an already finalized checksum object from a hex string. + + Chksum Chksum_from_bin(Id type, char *bin) + my $chksum = solv::Chksum->from_bin($type, $bin); + chksum = solv.Chksum.from_bin(type, bin) + chksum = Solv::Chksum.from_bin(type, bin) + +Create an already finalized checksum object from a binary checksum. === ATTRIBUTES === @@ -3047,7 +3110,7 @@ Return the type of the checksum object. chksum.add(str) chksum.add(str) -Add a string to the checksum. +Add a (binary) string to the checksum. void add_fp(FILE *fp) $chksum->add_fp($file); @@ -3132,7 +3195,8 @@ stdio library. Create a file handle from the specified file descriptor. The path argument is only used to select the correct (de-)compression algorithm, use an empty path -if you want to make sure to read/write raw data. +if you want to make sure to read/write raw data. The file descriptor is dup()ed +before the file handle is created. === METHODS === @@ -3144,6 +3208,16 @@ if you want to make sure to read/write raw data. Return file file descriptor of the file. If the file is not open, `-1` is returned. + void cloexec(bool state) + $file->cloexec($state) + file.cloexec(state) + file.cloexec(state) + +Set the close-on-exec flag of the file descriptor. The xfopen function +returns files with close-on-exec turned on, so if you want to pass +a file to some other process you need to call cloexec(0) before calling +exec. + int dup() my $fileno = $file->dup(); fileno = file.dup() @@ -3165,7 +3239,7 @@ always returns true. file.close() file.close() -Close the file. This is needed for languages like Ruby, that do not destruct +Close the file. This is needed for languages like Ruby that do not destruct objects right after they are no longer referenced. In that case, it is good style to close open files so that the file descriptors are freed right away. Returns false if there was an error. |