00001 // Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") 00002 // 00003 // Permission to use, copy, modify, and/or distribute this software for any 00004 // purpose with or without fee is hereby granted, provided that the above 00005 // copyright notice and this permission notice appear in all copies. 00006 // 00007 // THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 00008 // REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 00009 // AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 00010 // INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 00011 // LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 00012 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00013 // PERFORMANCE OF THIS SOFTWARE. 00014 00015 // $Id$ 00016 00017 #ifndef __MESSAGERENDERER_H 00018 #define __MESSAGERENDERER_H 1 00019 00020 namespace isc { 00021 namespace dns { 00022 // forward declarations 00023 class OutputBuffer; 00024 class Name; 00025 class MessageRendererImpl; 00026 00070 class MessageRenderer { 00071 public: 00074 00075 00076 00077 00078 00079 MessageRenderer(OutputBuffer& buffer); 00087 ~MessageRenderer(); 00089 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 void writeName(const Name& name, bool compress = true); 00109 private: 00110 MessageRendererImpl* impl_; 00111 }; 00112 } 00113 } 00114 #endif // __MESSAGERENDERER_H 00115 00116 // Local Variables: 00117 // mode: c++ 00118 // End: