dumper.test.cc File Reference

#include <lestes/common.hh>
#include <lestes/std/reflect.hh>
#include <lestes/std/dumper_visitor.hh>
#include <lestes/std/objectize.hh>
#include <lestes/std/objectize_macros.hh>
#include <lestes/std/map.hh>
#include <lestes/std/set.hh>
#include <lestes/std/list.hh>
#include <lestes/std/pair.hh>
#include <lestes/std/vector.hh>
#include <fstream>
#include <iostream>
#include <lestes/std/dumper.hh>

Go to the source code of this file.

Namespaces

namespace  lestes
namespace  lestes::std

Classes

class  lestes::std::middle_object
class  lestes::std::dumped_object

Defines

#define LENGTHOFARRAY(ar)   (sizeof(ar)/sizeof(ar[0]))

Typedefs

typedef map< srp< object >,
ulint > 
map_type

Enumerations

enum  lestes::std::test_enum { lestes::std::EN_1 = -10, lestes::std::EN_2 = 30, lestes::std::EN_3, lestes::std::EN_4 = EN_1 + 15 }

Functions

 lestes::std::specialize_objectize_for_enum (test_enum)
 lestes::std::specialize_objectize_nodump (::map_type::iterator)
 lestes::std::specialize_objectize_nodump_reference (lint &)
int main ()


Define Documentation

#define LENGTHOFARRAY ( ar   )     (sizeof(ar)/sizeof(ar[0]))

Definition at line 42 of file dumper.test.cc.


Typedef Documentation

typedef map< srp<object>, ulint > map_type

Definition at line 153 of file dumper.test.cc.


Function Documentation

int main ( void   ) 

Definition at line 165 of file dumper.test.cc.

References lestes::lang::cplus::sem::dump(), lestes::std::EN_1, lestes::std::EN_3, and lestes::std::EN_4.

00166 {
00167         typedef list< srp<object> > olist;
00168         ptr<olist> li = olist::create();
00169         li->push_back( objectize<lint>::create(5) );
00170         li->push_back( objectize<ulint>::create(6) );
00171         ptr<dumped_object> o1 = dumped_object::create( 1, dumped_object::create(0,NULL,NULL), li );
00172         li->push_back( o1 );
00173         li->push_back( NULL );
00174 
00175         typedef list<bool> blist;
00176         ptr<blist> bl = blist::create();
00177         bl->push_back(true);
00178         bl->push_back(true);
00179         bl->push_back(false);
00180         li->push_back(bl);
00181 
00182         typedef set<lint> liset;
00183         ptr<liset> s = liset::create();
00184         s->insert(5);
00185         s->insert(3);
00186         s->insert(-1);
00187 
00188         typedef map< test_enum, srp<object> > mt;
00189         ptr<mt> m = mt::create();
00190         (*m)[EN_3] = m;
00191         (*m)[EN_1] = NULL;
00192         (*m)[EN_4] = s;
00193 
00194         typedef vector< srp<object> > vt;
00195         ptr<vt> v = vt::create();
00196         v->push_back(m);
00197         v->push_back(NULL);
00198         v->push_back(v);
00199         // the following line tests that reference types as arguments to
00200         // objectize template are working
00201         lint i = 5;
00202         v->push_back( objectize<int &>::create(i) );
00203 
00204         li->push_back(v);
00205 
00206         // test the nondumpable iterator ;)
00207         typedef map_type::iterator nd_type;
00208         ptr< list<nd_type> > lnd = list<nd_type>::create();
00209         lnd->push_back( map_type::create()->begin() );
00210         li->push_back(lnd);
00211 
00212         // test barrier
00213         ptr<object> o2 = dumped_object::create( 77, dumped_object::create(88,NULL,NULL), NULL );
00214         o2->dump_barrier_set( true );
00215         li->push_back( o2 );
00216 
00217         ofstream f("dumper.test.xml");
00218 
00219         readable_dumper::dump( f, o1 ) << "<!-- end of readable dump -->" << endl;
00220         dumper::dump( f, o1 ) << "<!-- end of first flat dump -->" << endl;
00221 
00222         li->push_front( vt::create() );
00223         dumper::dump( f, o1, false );
00224 
00225         f.close();
00226 
00227         return 0;
00228 }


Generated on Mon Feb 12 18:23:45 2007 for lestes by doxygen 1.5.1-20070107