hamcast  Version 0.7
libhamcast
Author
Dominik Charousset <dominik.charousset@haw-hamburg.de>

Introduction

This library is part of the HAMcast project. It provides an easy to use C++ API that uses the HAMcast middleware (see Architecture).

All classes and functions needed to write a HAMcast based application are in the namespace hamcast. Usually, all you need to know about are the classes hamcast::uri, hamcast::multicast_socket and hamcast::multicast_packet.

hamcast::util contains utility classes and helper functions that might be useful if you're implementing a technology module. IPC related classes and function reside in the namespace hamcast::ipc, but are usually uninteresting for application developers. The implementation details and the IPC protocol documentation is fundamental if you want to port libhamcast to another language and/or unsupported plattform.

Note that undocumented parts of the library aren't safe to use because they might be changed and/or removed even in minor updates or the library.

Getting started with libhamcast

See the simple_receiver.cpp and simple_sender.cpp examples to become a first overview.

Architecture

HAMcast uses a middleware to abstract from native network communication. Thus, HAMcast based application are independent from multicast technologies and the middleware chooses the best available transport protocol at runtime (no compile-time dependencies & Late Binding).

ipc_arch.png

Compilation and installation

HAMcast uses cmake on Unix platforms (Linux, Mac OS X, etc.), we recommend an out-of-source build. The usual way to build libhamcast is:

mkdir build
cd build
cmake ../
make

Note for Linux users

If you're getting the error "No CAS for this plattform", then you need to set your hardware architecture by hand editing the cmake configure file: