![]() |
![]()
| ![]() |
![]()
NAMEcritcl::bitmap - CriTcl - Wrap Support - Bitset en- and decoding SYNOPSISpackage require Tcl 8.6 package require critcl ?3.2? package require critcl::bitmap ?1.1? ::critcl::bitmap::def name definition ?exclusions? DESCRIPTIONBe welcome to the C Runtime In Tcl (short: CriTcl), a system for embedding and using C code from within Tcl [http://core.tcl-lang.org/tcl] scripts. This document is the reference manpage for the critcl::bitmap package. This package provides convenience commands for advanced functionality built on top of both critcl core and package critcl::iassoc. C level libraries often use bit-sets to encode many flags into a single value. Tcl bindings to such libraries now have the task of converting a Tcl representation of such flags (like a list of strings) into such bit-sets, and back. Note here that the C-level information has to be something which already exists. The package does not create these values. This is in contrast to the package critcl::enum which creates an enumeration based on the specified symbolic names. This package was written to make the declaration and management of such bit-sets and their associated conversions functions easy, hiding all attendant complexity from the user. Its intended audience are mainly developers wishing to write Tcl packages with embedded C code. This package resides in the Core Package Layer of CriTcl. +----------------+ |Applications | | critcl | | critcl::app | +----------------+ *================* |Core Packages | | critcl | | critcl::util | *================* +----------------+ |Support Packages| | stubs::* | | md5, platform | | ... | +----------------+ API
int name_encode (Tcl_Interp* interp, Tcl_Obj* flags, int* result); The return value of the function is a Tcl error code, i.e. TCL_OK, TCL_ERROR, etc.
Tcl_Obj* name_decode (Tcl_Interp* interp, int flags);
EXAMPLEThe example shown below is the specification of the event flags pulled from the draft work on a Tcl binding to Linux's inotify APIs. package require Tcl 8.6 package require critcl 3.2 critcl::buildrequirement { AUTHORSAndreas Kupries BUGS, IDEAS, FEEDBACKThis document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such at https://github.com/andreas-kupries/critcl. Please also report any ideas for enhancements you may have for either package and/or documentation. KEYWORDSC code, Embedded C Code, Tcl Interp Association, bitmask, bitset, code generator, compile & run, compiler, dynamic code generation, dynamic compilation, flags, generate package, linker, on demand compilation, on-the-fly compilation, singleton CATEGORYGlueing/Embedded C code COPYRIGHTCopyright (c) 2011-2024 Andreas Kupries
|