JObject* InitTcp() { Module* module = GetBuiltinModule(MODULE_TCP); JObject* tcp = module->module; if (tcp == NULL) { tcp = new JObject(TCP); JObject prototype; tcp->SetProperty("prototype", prototype); prototype.SetMethod("open", Open); prototype.SetMethod("close", Close); prototype.SetMethod("connect", Connect); prototype.SetMethod("bind", Bind); prototype.SetMethod("listen", Listen); prototype.SetMethod("write", Write); prototype.SetMethod("readStart", ReadStart); prototype.SetMethod("shutdown", Shutdown); prototype.SetMethod("setKeepAlive", SetKeepAlive); module->module = tcp; } return tcp; }
JObject* InitFs() { Module* module = GetBuiltinModule(MODULE_FS); JObject* fs = module->module; if (fs == NULL) { fs = new JObject(); fs->SetMethod("close", Close); fs->SetMethod("open", Open); fs->SetMethod("read", Read); fs->SetMethod("write", Write); fs->SetMethod("stat", Stat); module->module = fs; } return fs; }
JObject* InitBuffer() { Module* module = GetBuiltinModule(MODULE_BUFFER); JObject* buffer = module->module; if (buffer == NULL) { buffer = new JObject(Buffer); JObject prototype; buffer->SetProperty("prototype", prototype); prototype.SetMethod("compare", Compare); prototype.SetMethod("copy", Copy); prototype.SetMethod("write", Write); prototype.SetMethod("slice", Slice); prototype.SetMethod("toString", ToString); module->module = buffer; } return buffer; }
JObject* InitGpio() { Module* module = GetBuiltinModule(MODULE_GPIO); JObject* jgpio = module->module; if (jgpio == NULL) { jgpio = new JObject(); jgpio->SetMethod("initialize", Initialize); jgpio->SetMethod("release", Release); jgpio->SetMethod("setPin", SetPin); jgpio->SetMethod("writePin", WritePin); jgpio->SetMethod("readPin", ReadPin); jgpio->SetMethod("setPort", SetPort); jgpio->SetMethod("writePort", WritePort); jgpio->SetMethod("readPort", ReadPort); jgpio->SetMethod("query", Query); #define SET_CONSTANT(object, name, constant) \ do { \ JObject value(constant); \ object->SetProperty(name, value); \ } while (0) SET_CONSTANT(jgpio, "kGpioDirectionNone", kGpioDirectionNone); SET_CONSTANT(jgpio, "kGpioDirectionIn", kGpioDirectionIn); SET_CONSTANT(jgpio, "kGpioDirectionOut", kGpioDirectionOut); SET_CONSTANT(jgpio, "kGpioModeNone", kGpioModeNone); SET_CONSTANT(jgpio, "kGpioModePullup", kGpioModePullup); SET_CONSTANT(jgpio, "kGpioModePulldown", kGpioModePulldown); SET_CONSTANT(jgpio, "kGpioModeFloat", kGpioModeFloat); SET_CONSTANT(jgpio, "kGpioModePushpull", kGpioModePushpull); SET_CONSTANT(jgpio, "kGpioModeOpendrain", kGpioModeOpendrain); SET_CONSTANT(jgpio, "kGpioErrOk", kGpioErrOk); SET_CONSTANT(jgpio, "kGpioErrInitialize", kGpioErrInitialize); SET_CONSTANT(jgpio, "kGpioErrNotInitialized", kGpioErrNotInitialized); SET_CONSTANT(jgpio, "kGpioErrWrongUse", kGpioErrWrongUse); SET_CONSTANT(jgpio, "kGpioErrSysErr", kGpioErrSys); #undef SET_CONSTANT Gpio* gpio = Gpio::Create(*jgpio); IOTJS_ASSERT(gpio == reinterpret_cast<Gpio*>(jgpio->GetNative())); module->module = jgpio; } return jgpio; }