Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

Bridge.h

00001 // This file may be redistributed and modified only under the terms of
00002 // the GNU Lesser General Public License (See COPYING for details).
00003 // Copyright (C) 2000 Michael Day
00004 
00005 #ifndef ATLAS_BRIDGE_H
00006 #define ATLAS_BRIDGE_H
00007 
00008 #include <string>
00009 
00010 namespace Atlas {
00011 
00025 class Bridge
00026 {
00027     public:
00028     
00029     class Map { };
00030     class List { };
00031 
00032     static Map MapBegin;
00033     static List ListBegin;
00034 
00035     // Interface for stream context
00036 
00037     virtual void StreamBegin() = 0;
00038     virtual void StreamMessage(const Map&) = 0;
00039     virtual void StreamEnd() = 0;
00040     
00041     // Interface for map context
00042 
00043     virtual void MapItem(const std::string& name, const Map&) = 0;
00044     virtual void MapItem(const std::string& name, const List&) = 0;
00045     virtual void MapItem(const std::string& name, long) = 0;
00046     virtual void MapItem(const std::string& name, double) = 0;
00047     virtual void MapItem(const std::string& name, const std::string&) = 0;
00048     virtual void MapEnd() = 0;
00049     
00050     // Interface for list context
00051     
00052     virtual void ListItem(const Map&) = 0;
00053     virtual void ListItem(const List&) = 0;
00054     virtual void ListItem(long) = 0;
00055     virtual void ListItem(double) = 0;
00056     virtual void ListItem(const std::string&) = 0;
00057     virtual void ListEnd() = 0;
00058 };
00059 
00060 } // Atlas namespace
00061 
00062 #endif

Copyright 2000 the respective authors.

This document is licensed under the terms of the GNU Free Documentation License and may be freely distributed under the conditions given by this license.