inlib
1.2.0
|
00001 // Copyright (C) 2010, Guy Barrand. All rights reserved. 00002 // See the file inlib.license for terms. 00003 00004 #ifndef inlib_sg_write_action 00005 #define inlib_sg_write_action 00006 00007 #include "action" 00008 00009 namespace inlib { 00010 namespace sg { 00011 class node; 00012 }} 00013 namespace inlib { 00014 namespace io { 00015 class iwbuf; 00016 }} 00017 00018 namespace inlib { 00019 namespace sg { 00020 00021 class write_action : public action { 00022 public: 00023 virtual io::iwbuf& buffer() = 0; 00024 virtual bool beg_node(const node&) = 0; 00025 virtual bool end_node(const node&) = 0; 00026 public: 00027 write_action(std::ostream& a_out): action(a_out){} 00028 virtual ~write_action(){} 00029 protected: 00030 write_action(const write_action& a_from): action(a_from){} 00031 write_action& operator=(const write_action& a_from){ 00032 action::operator=(a_from); 00033 return *this; 00034 } 00035 }; 00036 00037 }} 00038 00039 #endif