/* -*- c++ -*- */
#ifndef AKAXISO_SIMPLECONTENT_HANDLER_H__
#define AKAXISO_SIMPLECONTENT_HANDLER_H__

#include <akaxiso/parser/handler.h>

namespace aka2 {
  
  class simplecontent_handler : public handler {
  public:
    simplecontent_handler(const qname &tagname, void *sim, int depth, 
			  const simplecontent_op &sop, parser_context &context);
    virtual ~simplecontent_handler(){}

    virtual parse_result query_element(const qname &tagname, const attribute_values &attrs);
    virtual parse_result end_element(const qname &tagname);
    virtual parse_result query_next(const qname &tagname, const attribute_values &attrs);
    virtual bool parse_entity(const std::string &entity);

    virtual node get_node();
    virtual void receive_child(const node &child);

    virtual bool can_skip();
    virtual void abort(){}

  private:
    void *sim_;
    const simplecontent_op &sop_;
  };

}

#endif

