Package com.caucho.quercus.env

Examples of com.caucho.quercus.env.Env


  }

  @Override
  public void message(String to, String from, Serializable value)
  {
    Env env = createEnv(_page, BamEventType.MESSAGE, to, from, value);

    try {
      _page.executeTop(env);
    }
    finally {
      env.close();
    }
  }
View Full Code Here


  @Override
  public void messageError(String to, String from, Serializable value,
                           ActorError error)
  {
    Env env = createEnv(_page, BamEventType.MESSAGE_ERROR, to, from, value);

    try {
      setError(env, error);

      _page.executeTop(env);
    }
    finally {
      env.close();
    }
  }
View Full Code Here

    // XXX move to override of introspected method
    if (value instanceof DiscoInfoQuery)
      eventType = BamEventType.GET_DISCO_FEATURES;

    Env env = createEnv(_page, eventType, to, from, value);
    boolean understood = false;

    try {
      setId(env, id);

      _page.executeTop(env);

      if (eventType == BamEventType.GET_DISCO_FEATURES) {
        _featureNames.clear();

        Value returnValue = env.getGlobalValue("_quercus_bam_function_return");

        if (returnValue.isArray()) {
          _featureNames =
            (ArrayList) returnValue.toJavaList(env, ArrayList.class);
        }

  /*
        understood = handleDiscoInfoQuery(id, to, from, (DiscoInfoQuery) value);
  */
      }
      else {
        understood =
          env.getGlobalValue("_quercus_bam_function_return").toBoolean();
      }
    }
    finally {
      env.close();
    }
  }
View Full Code Here

  */

  @Override
  public void querySet(long id, String to, String from, Serializable value)
  {
    Env env = createEnv(_page, BamEventType.QUERY_SET, to, from, value);
    boolean understood = false;

    try {
      setId(env, id);

      _page.executeTop(env);

      understood =
        env.getGlobalValue("_quercus_bam_function_return").toBoolean();
    }
    finally {
      env.close();
    }
  }
View Full Code Here

  }

  @Override
  public void queryResult(long id, String to, String from, Serializable value)
  {
    Env env = createEnv(_page, BamEventType.QUERY_RESULT, to, from, value);

    try {
      setId(env, id);

      _page.executeTop(env);
    }
    finally {
      env.close();
    }
  }
View Full Code Here

  @Override
  public void queryError(long id, String to, String from,
                         Serializable value, ActorError error)
  {
    Env env = createEnv(_page, BamEventType.QUERY_ERROR, to, from, value);

    try {
      setId(env, id);
      setError(env, error);

      _page.executeTop(env);
    }
    finally {
      env.close();
    }
  }
View Full Code Here

  private Env createEnv(QuercusPage page, BamEventType type,
                        String to, String from, Serializable value)
  {
    WriteStream out = new NullWriteStream();

    Env env = new Env(_quercus, page, out, null, null);

    JavaClassDef actorClassDef = env.getJavaClassDefinition(BamPhpActor.class);
    env.setGlobalValue("_quercus_bam_actor", actorClassDef.wrap(env, this));

    env.start();

    JavaClassDef eventClassDef = env.getJavaClassDefinition(BamEventType.class);
    Value typeValue = eventClassDef.wrap(env, type);

    env.setGlobalValue("_quercus_bam_event_type", typeValue);

    env.setGlobalValue("_quercus_bam_to", StringValue.create(to));
    env.setGlobalValue("_quercus_bam_from", StringValue.create(from));

    Value javaValue = NullValue.NULL;

    if (value != null) {
      JavaClassDef classDef = env.getJavaClassDefinition(value.getClass());
      javaValue = classDef.wrap(env, value);
    }

    env.setGlobalValue("_quercus_bam_value", javaValue);

    return env;
  }
View Full Code Here

  private static final StringValue COUNT_METHOD
    = new ConstStringValue("count");
 
  public int count(ObjectValue qThis)
  {
    Env env = Env.getInstance();
   
    Value count = qThis.callMethod(env, COUNT_METHOD);

    return count.toInt();
  }
View Full Code Here

   * evaluates based on a reader.
   */
  public Object eval(Reader script, ScriptContext cxt)
    throws ScriptException
  {
    Env env = null;

    try {
      ReadStream reader = ReaderStream.open(script);
     
      QuercusProgram program = QuercusParser.parse(_quercus, null, reader);

      Writer writer = cxt.getWriter();
     
      WriteStream out;

      if (writer != null) {
        WriterStreamImpl s = new WriterStreamImpl();
        s.setWriter(writer);
        WriteStream os = new WriteStream(s);
       
        os.setNewlineString("\n");

        try {
          os.setEncoding("iso-8859-1");
        } catch (Exception e) {
        }

        out = os;
      }
      else
        out = new NullWriteStream();

      QuercusPage page = new InterpretedPage(program);

      env = new Env(_quercus, page, out, null, null);

      env.setScriptContext(cxt);

      // php/214c
      env.start();
     
      Object result = null;
     
      try {
        Value value = program.execute(env);
       
        if (value != null)
          result = value.toJavaObject();
      }
      catch (QuercusExitException e) {
        //php/2148
      }
       
      out.flushBuffer();
      out.free();

      // flush buffer just in case
      //
      // jrunscript in interactive mode does not automatically flush its
      // buffers after every input, so output to stdout will not be seen
      // until the output buffer is full
      //
      // http://bugs.caucho.com/view.php?id=1914
      writer.flush();
     
      return result;
     
      /*
    } catch (ScriptException e) {
      throw e;
      */
    } catch (RuntimeException e) {
      throw e;
    } catch (Exception e) {
      throw new ScriptException(e);
    } catch (Throwable e) {
      throw new RuntimeException(e);
    } finally {
      if (env != null)
        env.close();
    }
  }
View Full Code Here

   * evaluates based on a reader.
   */
  public Object eval(ScriptContext cxt)
    throws ScriptException
  {
    Env env = null;

    try {
      Writer writer = cxt.getWriter();

      WriteStream out;

      if (writer != null) {
        ReaderWriterStream s = new ReaderWriterStream(null, writer);
        WriteStream os = new WriteStream(s);
       
        os.setNewlineString("\n");
   
        try {
          os.setEncoding("utf-8");
        } catch (Exception e) {
        }

        out = os;
      }
      else
        out = new NullWriteStream();

      QuercusPage page = new InterpretedPage(_program);

      env = new Env(_engine.getQuercus(), page, out, null, null);

      env.setScriptContext(cxt);

      // php/214g
      env.start();

      Value resultV = _program.execute(env);
     
      Object result = null;
      if (resultV != null)
        result = resultV.toJavaObject();

      out.flushBuffer();
      out.free();

      return result;
      /*
    } catch (ScriptException e) {
      throw e;
      */
    } catch (RuntimeException e) {
      throw e;
    } catch (Exception e) {
      throw new ScriptException(e);
    } catch (Throwable e) {
      throw new RuntimeException(e);
    } finally {
      if (env != null)
        env.close();
    }
  }
View Full Code Here

TOP

Related Classes of com.caucho.quercus.env.Env

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.