00001 /* 00002 * Stream.h 00003 * ers 00004 * 00005 * Created by Matthias Wiesmann on 02.12.04. 00006 * Copyright 2004 CERN. All rights reserved. 00007 * 00008 */ 00009 00010 00011 #ifndef __ERS_ISSUE_STREAM__ 00012 #define __ERS_ISSUE_STREAM__ 00013 00014 #include <string> 00015 #include <iostream> 00016 00017 #include "ers/Core.h" 00018 #include "ers/Context.h" 00019 00020 namespace ers { 00021 00022 class Issue ; 00023 00035 class Stream { 00036 friend class Issue ; 00037 protected: 00038 public: 00039 static const char* const NULL_STREAM_KEY ; 00040 Stream(); 00041 Stream(const Stream &other); 00042 operator std::string() const ; 00043 virtual ~Stream(); 00044 virtual void send(const Issue *i) ; 00045 virtual Issue *receive() ; 00046 virtual void print_to(std::ostream& stream) const ; 00047 } ; 00048 std::ostream& operator<<(std::ostream& target, const ers::Stream & s); 00049 00050 } // ers 00051 00052 00053 00054 00055 #endif 00056