front_idill/extern/fajran-npTuioClient/TuioClient/oscpack/osc/OscPrintReceivedElements.cpp
author bastiena
Thu, 12 Apr 2012 15:33:25 +0200
changeset 28 9ccef81f02ab
parent 21 e4e5f02787a1
permissions -rw-r--r--
Charset set to UTF-8 without bom tab replaced by 4 spaces \r\n replaced by \n in non cs files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     1
/*
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
     2
    oscpack -- Open Sound Control packet manipulation library
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
     3
    http://www.audiomulch.com/~rossb/oscpack
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     4
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
     5
    Copyright (c) 2004-2005 Ross Bencina <rossb@audiomulch.com>
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     6
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
     7
    Permission is hereby granted, free of charge, to any person obtaining
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
     8
    a copy of this software and associated documentation files
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
     9
    (the "Software"), to deal in the Software without restriction,
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    10
    including without limitation the rights to use, copy, modify, merge,
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    11
    publish, distribute, sublicense, and/or sell copies of the Software,
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    12
    and to permit persons to whom the Software is furnished to do so,
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    13
    subject to the following conditions:
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    14
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    15
    The above copyright notice and this permission notice shall be
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    16
    included in all copies or substantial portions of the Software.
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    17
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    18
    Any person wishing to distribute modifications to the Software is
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    19
    requested to send the modifications to the original developer so that
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    20
    they can be incorporated into the canonical version.
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    21
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    22
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    23
    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    24
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    25
    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    26
    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    27
    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
    28
    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    29
*/
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    30
#include "OscPrintReceivedElements.h"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    31
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    32
#include <iostream>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    33
#include <iomanip>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    34
#include <ctime>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    35
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    36
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    37
namespace osc{
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    38
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    39
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    40
std::ostream& operator<<( std::ostream & os,
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    41
        const ReceivedMessageArgument& arg )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    42
{
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    43
    switch( arg.TypeTag() ){
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    44
        case TRUE_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    45
            os << "bool:true";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    46
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    47
                
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    48
        case FALSE_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    49
            os << "bool:false";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    50
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    51
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    52
        case NIL_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    53
            os << "(Nil)";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    54
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    55
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    56
        case INFINITUM_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    57
            os << "(Infinitum)";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    58
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    59
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    60
        case INT32_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    61
            os << "int32:" << arg.AsInt32Unchecked();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    62
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    63
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    64
        case FLOAT_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    65
            os << "float32:" << arg.AsFloatUnchecked();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    66
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    67
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    68
        case CHAR_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    69
            {
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    70
                char s[2] = {0};
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    71
                s[0] = arg.AsCharUnchecked();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    72
                os << "char:'" << s << "'";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    73
            }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    74
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    75
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    76
        case RGBA_COLOR_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    77
            {
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    78
                uint32 color = arg.AsRgbaColorUnchecked();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    79
                
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    80
                os << "RGBA:0x"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    81
                        << std::hex << std::setfill('0')
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    82
                        << std::setw(2) << (int)((color>>24) & 0xFF)
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    83
                        << std::setw(2) << (int)((color>>16) & 0xFF)
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    84
                        << std::setw(2) << (int)((color>>8) & 0xFF)
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    85
                        << std::setw(2) << (int)(color & 0xFF)
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    86
                        << std::setfill(' ');
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    87
                os.unsetf(std::ios::basefield);
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    88
            }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    89
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    90
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    91
        case MIDI_MESSAGE_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    92
            {
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    93
                uint32 m = arg.AsMidiMessageUnchecked();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    94
                os << "midi (port, status, data1, data2):<<"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    95
                        << std::hex << std::setfill('0')
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    96
                        << "0x" << std::setw(2) << (int)((m>>24) & 0xFF)
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    97
                        << " 0x" << std::setw(2) << (int)((m>>16) & 0xFF)
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    98
                        << " 0x" << std::setw(2) << (int)((m>>8) & 0xFF)
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    99
                        << " 0x" << std::setw(2) << (int)(m & 0xFF)
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   100
                        << std::setfill(' ') << ">>";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   101
                os.unsetf(std::ios::basefield);
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   102
            }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   103
            break;
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 21
diff changeset
   104
                
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   105
        case INT64_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   106
            os << "int64:" << arg.AsInt64Unchecked();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   107
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   108
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   109
        case TIME_TAG_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   110
            {
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   111
                os << "OSC-timetag:" << arg.AsTimeTagUnchecked();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   112
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   113
                std::time_t t =
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   114
                        (unsigned long)( arg.AsTimeTagUnchecked() >> 32 );
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   115
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   116
                // strip trailing newline from string returned by ctime
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   117
                const char *timeString = std::ctime( &t );
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   118
                size_t len = strlen( timeString );
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   119
                char *s = new char[ len + 1 ];
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   120
                strcpy( s, timeString );
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   121
                if( len )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   122
                    s[ len - 1 ] = '\0';
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   123
                    
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   124
                os << " " << s;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   125
            }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   126
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   127
                
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   128
        case DOUBLE_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   129
            os << "double:" << arg.AsDoubleUnchecked();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   130
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   131
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   132
        case STRING_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   133
            os << "OSC-string:`" << arg.AsStringUnchecked() << "'";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   134
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   135
                
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   136
        case SYMBOL_TYPE_TAG: 
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   137
            os << "OSC-string (symbol):`" << arg.AsSymbolUnchecked() << "'";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   138
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   139
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   140
        case BLOB_TYPE_TAG:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   141
            {
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   142
                unsigned long size;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   143
                const void *data;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   144
                arg.AsBlobUnchecked( data, size );
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   145
                os << "OSC-blob:<<" << std::hex << std::setfill('0');
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   146
                unsigned char *p = (unsigned char*)data;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   147
                for( unsigned long i = 0; i < size; ++i ){
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   148
                    os << "0x" << std::setw(2) << int(p[i]);
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   149
                    if( i != size-1 )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   150
                        os << ' ';
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   151
                }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   152
                os.unsetf(std::ios::basefield);
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   153
                os << ">>" << std::setfill(' ');
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   154
            }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   155
            break;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   156
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   157
        default:
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   158
            os << "unknown";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   159
    }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   160
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   161
    return os;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   162
}
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   163
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   164
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   165
std::ostream& operator<<( std::ostream & os, const ReceivedMessage& m )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   166
{
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   167
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   168
    os << "[" << m.AddressPattern();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   169
    bool first = true;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   170
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   171
    for( ReceivedMessage::const_iterator i = m.ArgumentsBegin();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   172
            i != m.ArgumentsEnd(); ++i ){
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   173
        if( first ){
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   174
            os << " ";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   175
            first = false;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   176
        }else{
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   177
            os << ", ";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   178
        }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   179
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   180
        os << *i;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   181
    }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   182
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   183
    os << "]";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   184
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   185
    return os;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   186
}
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   187
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   188
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   189
std::ostream& operator<<( std::ostream & os, const ReceivedBundle& b )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   190
{
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   191
    static int indent = 0;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   192
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   193
    for( int j=0; j < indent; ++j )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   194
        os << "  ";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   195
    os << "{ ( ";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   196
    if( b.TimeTag() == 1 )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   197
        os << "immediate";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   198
    else
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   199
        os << b.TimeTag();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   200
    os << " )\n";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   201
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   202
    ++indent;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   203
    
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   204
    for( ReceivedBundle::const_iterator i = b.ElementsBegin();
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   205
            i != b.ElementsEnd(); ++i ){
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   206
        if( i->IsBundle() ){
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   207
            ReceivedBundle b(*i);
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   208
            os << b << "\n";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   209
        }else{
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   210
            ReceivedMessage m(*i);
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   211
            for( int j=0; j < indent; ++j )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   212
                os << "  ";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   213
            os << m << "\n";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   214
        }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   215
    }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   216
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   217
    --indent;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   218
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   219
    for( int j=0; j < indent; ++j )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   220
        os << "  ";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   221
    os << "}";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   222
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   223
    return os;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   224
}
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   225
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   226
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   227
std::ostream& operator<<( std::ostream & os, const ReceivedPacket& p )
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   228
{
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   229
    if( p.IsBundle() ){
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   230
        ReceivedBundle b(p);
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   231
        os << b << "\n";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   232
    }else{
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   233
        ReceivedMessage m(p);
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   234
        os << m << "\n";
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   235
    }
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   236
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   237
    return os;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   238
}
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   239
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   240
} // namespace osc