Пример #1
0
Settings::Settings()
{
  auto lk = getLocker();

  set(ZMKW_LOGPORT, ZCSTR("59000"), lk);
  set(ZMKW_LOGSERVER, ZCSTR("127.0.0.1"), lk);
  set(ZMKW_LOGPROTO, ZCSTR("ZMG_PUB"), lk);
  ZConstString home_str((const char*)secure_getenv("HOME"));
  set(ZMB::ZMKW_USER_HOME, home_str, lk);

  char* temp = (char*)alloca(ZMB::max<unsigned>(1024u, (unsigned)(4 * home_str.len)));
  ZUnsafeBuf buf(temp, 1024); buf.fill(0);
  buf.read(0, home_str, 0);
  char* origin = buf.begin();

  buf.str += home_str.len;//advance to point after the user home location
  buf.len -= home_str.len;

  auto __set_value = [&](ZConstString str, ZConstString key) mutable
  {
    char* end = 0;
    buf.read(&end, str, 0);
    *end = '\0';
    set(key, ZConstString(origin, end), lk);
  };
  __set_value(ZCSTR("/zmbaq_config.json"), ZMKW_CFG_LOCATION);

  /** TODO: platform-dependent temporary storage. **/
  __set_value(ZCSTR("/tmp/video_temp"), ZMKW_FS_TEMP_LOCATION);
  __set_value(ZCSTR("/tmp/video_perm"), ZMKW_FS_PERM_LOCATION);

  __set_value(ZCSTR("/tmp/test_db"), ZMKW_TESTDB_LOCATION);
  __set_value(ZCSTR("/tmp/test_blob_db"), ZMKW_TESTDBBLOB_LOCATION);
}
Пример #2
0
DEFINE_PROPERTY_GETTER( const ) {

	JL_DEFINE_PROP_ARGS;

	JL_CHK( JL_GetReservedSlot( JL_OBJ, 0, JL_RVAL ) );
	if ( JL_RVAL.isUndefined() )
		return true;
	int errorCode = JL_RVAL.toInt32();
	JL_CHK( jl::setValue( cx, JL_RVAL, ZConstString( errorCode ) ) );
	return true;
	JL_BAD;
}
Пример #3
0
ZConstString Settings::string(ZConstString key, Settings::Locker_t& lk) const
{
  (void)lk;
  auto jp = jvalue(key, lk);
  bool ok = nullptr != jp && jp->isString();
  const char* b = 0, *e = 0;
  assert(ok);
  if (ok)
    {
      jp->getString(&b, &e);
    }
  return ZConstString(b, e);
}
Пример #4
0
	END_FUNCTION_SPEC

END_CLASS


NEVER_INLINE bool FASTCALL
ThrowZError( JSContext *cx, int errorCode, const char *errorMessage ) {

	JS::RootedObject error(cx, jl::newObjectWithGivenProto(cx, JL_CLASS(ZError), JL_CLASS_PROTOTYPE(cx, ZError)));
	jl::setException(cx, error);
	JL_CHK( jl::setSlot(cx, error, 0, errorCode) );
	JL_CHK( jl::setSlot(cx, error, 1, errorMessage != NULL ? errorMessage : ZConstString(errorCode)) );
	JL_SAFE( jl::addScriptLocation(cx, &error) );
	return false;
	JL_BAD;
}