Atlas-C++
Classes
Atlas Funky Encoder

A compile-time-semantics-checking-<<-style encoder. More...

Classes

class  Atlas::Funky::BeginMessage
 Token class representing the beginning of a message. More...
class  Atlas::Funky::EndMessage
 Token class representing the end of a message. More...
class  Atlas::Funky::BeginMap
 Token class representing the beginning of a map. More...
class  Atlas::Funky::EndMap
 Token class representing the end of a map. More...
class  Atlas::Funky::BeginList
 Token class representing the beginning of a list. More...
class  Atlas::Funky::EndList
 Token class representing the end of a list. More...
class  Atlas::Funky::EncMapValue< B, T >
 Encoder in map value state. More...
class  Atlas::Funky::EncMap< B, T >
 Encoder in Map state. More...
class  Atlas::Funky::EncList< B, T >
 Encoder in List state. More...
class  Atlas::Funky::FunkyEncoder< B >
 The root encoder in "stream" state. More...
class  Atlas::Funky::Tokens
 Tokens representing beginnings and ends of maps/lists. More...

Detailed Description

A compile-time-semantics-checking-<<-style encoder.

This encoder is composed of several classes which each have different operator<<. You can use it to send a message through a bridge in a format similar to the following:

 using namespace Funky;
 Funky::Encoder enc(&myBridge);
 enc << Token::begin_message
     << Token::begin_map
        << "an int" << 1234
        << "a float" << 3.142
        << "a string" << "Hello World!"
        << "a list" << Token::begin_list
           << 5678
           << 2.181
           << "another string!"
        << Token::end_list
     << Token::end_map
     << Token::end_message;
 

The special thing is that it will perform semantic checking automatically at compile time via a template stack.

Author:
Stefanus Du Toit sdt@g.nosp@m.mx.n.nosp@m.et, with help of Mike Day miked.nosp@m.ay@c.nosp@m.orpli.nosp@m.nk.c.nosp@m.om.au
See also:
Atlas::Bridge

Copyright 2000-2004 the respective authors.

This document can be licensed under the terms of the GNU Free Documentation License or the GNU General Public License and may be freely distributed under the terms given by one of these licenses.