00001 /* 00002 * Stream.cxx 00003 * ers 00004 * 00005 * Created by Matthias Wiesmann on 01.12.04. 00006 * Copyright 2004 CERN. All rights reserved. 00007 * 00008 */ 00009 00010 #include <iostream> 00011 #include <sstream> 00012 00013 #include "ers/Issue.h" 00014 #include "ers/StreamFactory.h" 00015 00016 const char* const ers::Stream::NULL_STREAM_KEY = "null" ; 00017 00018 namespace { 00019 ers::Stream *create_stream(const std::string &protocol, const std::string &uri) { 00020 (void) uri ; 00021 if (protocol==ers::Stream::NULL_STREAM_KEY) return new ers::Stream() ; 00022 return 0 ; 00023 } 00024 bool registered = ers::StreamFactory::instance()->register_factory(ers::Stream::NULL_STREAM_KEY,create_stream) ; 00025 } // anonymous namespace 00026 00027 // -------------- 00028 // Member methods 00029 // -------------- 00030 00031 ers::Stream::Stream() {} 00032 ers::Stream::Stream(const Stream &) {} 00033 ers::Stream::~Stream() {} 00034 00035 ers::Stream::operator std::string() const { 00036 std::ostringstream stream ; 00037 print_to(stream); 00038 return stream.str(); 00039 } // to string 00040 00046 void ers::Stream::send(const Issue *i) { 00047 (void) i ; 00048 } // send 00049 00055 ers::Issue *ers::Stream::receive() { 00056 return 0 ; 00057 } // receive 00058 00059 void ers::Stream::print_to(std::ostream& stream) const { 00060 stream << NULL_STREAM_KEY << ':' ; 00061 } // print_to 00062 00063 std::ostream& ers::operator<<(std::ostream& target, const ers::Stream & s) { 00064 s.print_to(target); 00065 return target ; 00066 } // operator<< 00067 00068 00069