Main Page | Modules | Class Hierarchy | Class List | File List | Class 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.