CppInstanceClass FactoryCreate

Contents

CppInstanceClass FactoryCreate#

static inline CppInstanceClass YR::CppInstanceClass::FactoryCreate(const std::string &creatorName)#

Create a CppInstanceClass object for invoking C++ functions.

// C++ class definition
class Counter {
public:
    int count;

    Counter()
    {}

    Counter(int init)
    {
        count = init;
    }

    static Counter* FactoryCreate()
    {
        return new Counter(10);
    }

    std::string RemoteVersion()
    {
        return "RemoteActor v0";
    }
};

YR_INVOKE(Counter::FactoryCreate, &Counter::RemoteVersion);

// C++ code to create and invoke the instance
int main(void) {
    YR::Config conf;
    YR::Init(conf);

    auto cppCls = YR::CppInstanceClass::FactoryCreate("Counter::FactoryCreate");
    auto cppIns = YR::Instance(cppCls).Invoke();
    auto obj = cppIns.CppFunction<std::string>("&Counter::RemoteVersion").Invoke();
    auto res = *YR::Get(obj);
    std::cout << "add one result is " << res << std::endl;
}
Parameters:

creatorName – The name of the C++ class’s constructor or factory function.

Returns:

A CppInstanceClass object that carries the necessary information to create a C++ function class instance. This object can be passed to YR::Instance as a parameter.