OSDN Git Service

roast_xml/sax_generator.hpp: text2int, text2str の中身を実装っぽい事をしてみた
authorMyun2 <myun2@nwhite.info>
Wed, 29 Sep 2010 18:16:51 +0000 (03:16 +0900)
committerMyun2 <myun2@nwhite.info>
Wed, 29 Sep 2010 18:17:08 +0000 (03:17 +0900)
roast/include/roast/xml/roast_xml/sax_generator.hpp

index 9c0b159..043c74f 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "roast/xml/roast_xml/sax.hpp"
 #include "roast/xml/roast_xml/rxpath.hpp"
+#include <memory.h>
 
 namespace roast
 {
@@ -85,7 +86,24 @@ namespace roast
 
                        void operator()(){
                        }
+
+                       ///////////////////////////////////////////////////////////////
+
+                       void start_element( const sized_ccharbuf &s ){}
+                       void start_xml_declaration(){}
+                       void end_xml_declaration(){}
+                       void attribute( const sized_ccharbuf &attr_name, const sized_ccharbuf &attr_value ){}
+                       void comment( const sized_ccharbuf &s ){}
+                       void text( const sized_ccharbuf &s ){
+                               char work[32];
+                               memset(work,0,sizeof(work));
+                               memcpy(work, s.ptr, s.size);
+                               value = atoi(work);
+                       }
+                       void end_element(){}
                };
+
+               ///////
                
                class text2str : public rax_functor
                {
@@ -96,6 +114,16 @@ namespace roast
 
                        void operator()(){
                        }
+
+                       ///////////////////////////////////////////////////////////////
+
+                       void start_element( const sized_ccharbuf &s ){}
+                       void start_xml_declaration(){}
+                       void end_xml_declaration(){}
+                       void attribute( const sized_ccharbuf &attr_name, const sized_ccharbuf &attr_value ){}
+                       void comment( const sized_ccharbuf &s ){}
+                       void text( const sized_ccharbuf &s ){ value = ::std::string(s.ptr, s.size); }
+                       void end_element(){}
                };
 
                //////////////////////////////////////////////////////////////////////////