Page Menu
Home
DevCentral
Search
Configure Global Search
Log In
Files
F3805658
D3065.id7819.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Referenced Files
None
Subscribers
None
D3065.id7819.diff
View Options
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,6 @@
# Tests
tests/test
+
+# Documentation
+doc/build/
diff --git a/Doxyfile b/Doxyfile
new file mode 100644
--- /dev/null
+++ b/Doxyfile
@@ -0,0 +1,35 @@
+# -------------------------------------------------------------
+# Doxyfile :: configuration for Doxygen documentation system
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Version: Doxyfile 1.9.6
+# Project: Nasqueron
+# License: Trivial work, not eligible to copyright
+# -------------------------------------------------------------
+
+# -------------------------------------------------------------
+# Project
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+PROJECT_NAME = "RabbitMQ TCL"
+PROJECT_NUMBER = 0.1.1
+PROJECT_BRIEF = "AMQP client TCL extension"
+PROJECT_LOGO = doc/logo-nasqueron.png
+
+OUTPUT_DIRECTORY = doc/build
+STRIP_FROM_PATH = src/
+OPTIMIZE_OUTPUT_FOR_C = YES
+
+NUM_PROC_THREADS = 0
+
+# -------------------------------------------------------------
+# Build
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_PRIV_VIRTUAL = YES
+
+INPUT = src \
+ doc/INDEX.md
+
+USE_MDFILE_AS_MAINPAGE = doc/INDEX.md
diff --git a/Makefile b/Makefile
new file mode 100644
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,71 @@
+# -------------------------------------------------------------
+#
+# ___ __ \_____ ___ /____ /____(_)_ /___ |/ /_ __ \
+# __ /_/ / __ `/_ __ \_ __ \_ /_ __/_ /|_/ /_ / / /
+# _ _, _// /_/ /_ /_/ / /_/ / / / /_ _ / / / / /_/ /
+# /_/ |_| \__,_/ /_.___//_.___//_/ \__/ /_/ /_/ \___\_\
+# _____________________
+# RabbitMQ C AMQP client library TCL wrapper ___ __/_ ____/__ /
+# TCL module to connect to AMQP brokers. __ / _ / __ /
+# _ / / /___ _ /___
+# /_/ \____/ /_____/
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# Description: Build instructions for make
+# License: BSD-2-Clause
+# Note: This Makefile is compatible with BSD make.
+# The src/Makefile currently requires GNU make.
+# -------------------------------------------------------------
+
+BUILD=build/
+
+DOXYGEN=doxygen
+GNU_MAKE=gmake
+MAKE=${GNU_MAKE}
+RMDIR=rm -rf
+
+# -------------------------------------------------------------
+# Main targets
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+all: build doc
+
+build: build-lib build-pkg
+
+clean: clean-build clean-doc
+
+# -------------------------------------------------------------
+# Build targets
+#
+# The src/ Makefile provides two parts of the build:
+# - lib: the TCL extension module
+# - pkg: to allow to use `package require` instead of `load`
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+build-lib: ${BUILD}/rabbitmq.so
+build-pkg: ${BUILD}/pkgIndex.tcl
+
+${BUILD}/rabbitmq.so:
+ (cd src && $(MAKE) lib)
+
+${BUILD}/pkgIndex.tcl:
+ (cd src && $(MAKE) pkg)
+
+# -------------------------------------------------------------
+# Documentation targets
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+doc: doc/build/html/index.html
+
+doc/build/html/index.html:
+ ${DOXYGEN}
+
+# -------------------------------------------------------------
+# Clean targets
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+clean-doc:
+ ${RMDIR} doc/build
+
+clean-build:
+ (cd src && ${MAKE) clean)
diff --git a/doc/INDEX.md b/doc/INDEX.md
new file mode 100644
--- /dev/null
+++ b/doc/INDEX.md
@@ -0,0 +1,73 @@
+# RabbitMQ TCL
+
+This library is a wrapper around [rabbitmq-c](https://github.com/alanxz/rabbitmq-c).
+
+It exposes the C functions allowing to interact with a RabbitMQ server in TCL.
+
+## Documentation
+
+* rabbitmq-tcl.c - the extension code
+* makePkgIndex.c - a tool to prepare pkgIndex.tcl
+
+## Customize the build
+
+### config.h
+
+If you want to be able to use different default values, you can edit the defines
+at `src/config.h`, then rebuild the extension.
+
+### E4C
+
+This extension is a wrapper around librabbitmq, which is not bulletproof against
+null pointer errors.
+
+In a critical context, we suggest to enable e4c. If a command `mq quux` would
+try to use a NULL pointer, instead of segfault, you would get a TCL error,
+and then would be able to resume operations:
+
+```
+% mq quux
+Segmentation violation.
+%
+```
+
+## Licensing
+
+(c) 2015, Nasqueron, some rights reserved.
+Released under BSD-2-Clause license.
+
+This work includes the exceptions4c library.
+(c) 2013 Guillermo Calvo
+Released under LGPL license.
+
+### Note if you relicense a derivative work
+
+If you create any derivative work of this library, you must do one of the
+following actions:
+
+ * drop exceptions4c support (rm vendor/e4c and the #ifdef USE_E4C blocks)
+ * release the whole work under LGPLv3 or GPLv3
+ * publish source code or object form (.o) so it's possible to relink
+ against another version of exceptions4c [this is what we do]
+
+According http://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic, you can
+link staticly against a LGPL library as long as you provide the .o object of
+your application stripped of the LGPL code or provide the source code and build
+tools to achieve it.
+
+## Misc
+
+### Acknowledgment
+
+* Alan Antonuk, rabbitmq-c maintainer
+* Fastbase, which provides [fbsql](http://www.fastbase.co.nz/fbsql/fbsql.c),
+ which is used as the model and starting point for this library.
+
+### Colophon
+
+This work has been created for Nasqueron, to allow their operations and
+infrastructure TCL code to interact to our message broker.
+
+**Editors used:** vim, Cloud9
+**Tools used:** Arcanist, clang-format
+**Compiler:** clang/llvm
diff --git a/doc/logo-nasqueron.png b/doc/logo-nasqueron.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 1, 03:40 (20 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2273995
Default Alt Text
D3065.id7819.diff (6 KB)
Attached To
Mode
D3065: Generate code documentation with Doxygen
Attached
Detach File
Event Timeline
Log In to Comment