// Copyright 2004-present Facebook. All Rights Reserved. #ifndef FBSAMPLEXPLATMODULE #define FBSAMPLEXPLATMODULE #include #include #include namespace facebook { namespace xplat { namespace samples { // In a less contrived example, Sample would be part of a traditional // C++ library. class Sample { public: std::string hello(); double add(double a, double b); std::string concat(const std::string& a, const std::string& b); std::string repeat(int count, const std::string& str); void save(std::map dict); std::map load(); void call_later(int msec, std::function f); void except(); double twice(double n); private: std::map state_; }; class SampleCxxModule : public module::CxxModule { public: SampleCxxModule(std::unique_ptr sample); std::string getName(); virtual auto getConstants() -> std::map; virtual auto getMethods() -> std::vector; private: void save(folly::dynamic args); void load(folly::dynamic args, Callback cb); std::unique_ptr sample_; }; }}} #endif