// Autogenerated.
// DO NOT EDIT. All changes will be undone.
#pragma once

#include "co/rpc.h"

namespace xx {

class HelloAgain : public rpc::Service {
  public:
    typedef std::function<void(co::Json&, co::Json&)> Fun;

    HelloAgain() {
        using std::placeholders::_1;
        using std::placeholders::_2;
        _methods["HelloAgain.hello"] = std::bind(&HelloAgain::hello, this, _1, _2);
        _methods["HelloAgain.again"] = std::bind(&HelloAgain::again, this, _1, _2);
    }

    virtual ~HelloAgain() {}

    virtual const char* name() const {
        return "HelloAgain";
    }

    virtual const co::map<const char*, Fun>& methods() const {
        return _methods;
    }

    virtual void hello(co::Json& req, co::Json& res) = 0;

    virtual void again(co::Json& req, co::Json& res) = 0;

  private:
    co::map<const char*, Fun> _methods;
};

} // xx
