Example #1
0
  const char* _invoke_1 (T& t, const char* d, size_t s)
  {
    const char* next = 0;

    const char *method = 0;
    const char *id = 0;
    const char *result = 0;

    _search_(d, d + s, &method, &result, &id);

    if ( method==0 && result==0) 
    {
      
      t.get_aspect().template get<_invalid_json_>()(t, d, s ); 
      
      return next; 
    }
    if ( result!=0 && id==0) 
    {
      t.get_aspect().template get<_invalid_json_>()(t, d, s ); 
      return next;
    }

    int rid = -1;
    if (id!=0)
      rid = std::atoi(id);

    typedef typename T::aspect::advice_list advice_list;
    typedef typename ap::select<_gmethod_, advice_list>::type invoke_list;

    if ( method!=0 && id!=0 && result==0)
    {
      ids_set::iterator itr = _in_ids.lower_bound(rid);
      _in_ids.insert(itr, rid);
      next = _invoke(t, invoke_list(), method, d, s, -1);  // request
    }
    else if ( method!=0 && id==0 && result==0)
      next = _invoke(t, invoke_list(), method, d, s, -2);  // notify
    else if (result!=0 && id!=0 && method==0)
      next = _invoke(t, invoke_list(), result, d, s, rid); // response
    else
    {
      t.get_aspect().template get<_invalid_json_>()(t, d, s );
      return next;
    }

    return next;
  }
Example #2
0
void OpenHRP::_objref_PluginManager::load(const char* name)
{
  _0RL_cd_969E6A9BF2804FC9_00000000 _call_desc(_0RL_lcfn_969E6A9BF2804FC9_50000000, "load", 5);
  _call_desc.arg_0 = name;

  _invoke(_call_desc);



}
Example #3
0
void OpenHRP::_objref_Plugin::stop()
{
  _0RL_cd_969E6A9BF2804FC9_20000000 _call_desc(_0RL_lcfn_969E6A9BF2804FC9_40000000, "stop", 5);


  _invoke(_call_desc);



}
Example #4
0
void OpenHRP::_objref_Plugin::start()
{
  _0RL_cd_969E6A9BF2804FC9_20000000 _call_desc(_0RL_lcfn_969E6A9BF2804FC9_30000000, "start", 6);


  _invoke(_call_desc);



}
void OpenHRP::_objref_Plugin::stop()
{
  _0RL_cd_969e6a9bf2804fc9_20000000 _call_desc(_0RL_lcfn_969e6a9bf2804fc9_40000000, "stop", 5);


  _invoke(_call_desc);



}
Example #6
0
char* _objref_Echo::echoString(const char* mesg)
{
  _0RL_cd_01531d3e51c81a80_00000000 _call_desc(_0RL_lcfn_01531d3e51c81a80_10000000, "echoString", 11);
  _call_desc.arg_0 = mesg;

  _invoke(_call_desc);
  return _call_desc.result._retn();


}
Example #7
0
void OpenHRP::_objref_sonyService::start()
{
  _0RL_cd_457ccd98b3f23528_00000000 _call_desc(_0RL_lcfn_457ccd98b3f23528_10000000, "start", 6);


  _invoke(_call_desc);



}
Example #8
0
void OpenHRP::_objref_CommandReceiver::sendMsg(const char* msg)
{
  _0RL_cd_969E6A9BF2804FC9_00000000 _call_desc(_0RL_lcfn_969E6A9BF2804FC9_10000000, "sendMsg", 8);
  _call_desc.arg_0 = msg;

  _invoke(_call_desc);



}
void _objref_systemCommand::function(const char* command, const char* argv, ::CORBA::String_out cout)
{
  _0RL_cd_0c80e0b9850984f9_00000000 _call_desc(_0RL_lcfn_0c80e0b9850984f9_10000000, "function", 9);
  _call_desc.arg_0 = command;
  _call_desc.arg_1 = argv;

  _invoke(_call_desc);
  cout = _call_desc.arg_2._retn();


}
Example #10
0
OpenHRP::Plugin_ptr OpenHRP::_objref_PluginManager::create(const char* pclass, const char* name, const char* args)
{
  _0RL_cd_969E6A9BF2804FC9_60000000 _call_desc(_0RL_lcfn_969E6A9BF2804FC9_70000000, "create", 7);
  _call_desc.arg_0 = pclass;
  _call_desc.arg_1 = name;
  _call_desc.arg_2 = args;

  _invoke(_call_desc);
  return _call_desc.result._retn();


}
Example #11
0
void XmlProxyCallback::doRequest(const std::string & sXmlText)
{
	XmlProxyCallbackPtr cb = this;

	if (!_xmlReq.SetDoc(sXmlText) || !_xmlReq.FindElem("request"))
	{
		LOG->error() << " parse xml fail" << endl;
		_sendXmlMessage("parse xml fail");
		return ;
	}
	_bHasResXml = true;
	_xmlRes.AddElem("response");
	_xmlRes.IntoElem();

	_sResponseEncode = _xmlReq.GetAttrib("charset");

	for (_xmlReq.IntoElem(); _xmlReq.FindElem(); )
	{
		if (_xmlReq.GetTagName() != "req") continue;

		MCD_STR sRequestID = _xmlReq.GetAttrib("id");
		MCD_STR sSvtName;
		MCD_STR sFunName;
		taf::JceOutputStream<taf::BufferWriter> os;
		
		for (_xmlReq.IntoElem(); _xmlReq.FindElem(); )
		{
			MCD_STR sTagName = _xmlReq.GetTagName();
			MCD_STR sTagData = _xmlReq.GetData();
			if (sTagName == "svt")
			{
				sSvtName = sTagData;
			}
			else if (sTagName == "fun")
			{
				sFunName = sTagData;
			}
			else if (sTagName == "para")
			{
				_writeParameters(os);
			}
		}
		_xmlReq.OutOfElem();

		_invoke(sRequestID, sSvtName, sFunName, os.getBuffer(), os.getLength(), cb);
	}
}
Example #12
0
  const char* _invoke(T& t, L, const char* name, const char* d, size_t s, int code)
  {
    const char* next = 0;
    typedef typename T::aspect::advice_list advice_list;
    typedef typename ap::select<_gmethod_, advice_list>::type invoke_list;
    typedef typename L::left_type current_type;
    enum { method_position = ap::type_position<current_type, invoke_list >::result };

    current_type& current = t.get_aspect().template get<typename L::left_type>();
    bool flag = false;
    if ( code > 0 || _raw_equal( current.name(), name ) )
    {
      flag = true;
      if (code==-1)
      {
        t.get_aspect().template get<ad::_clock_start_>()(t);
        next = current.invoke_request(t, d, s);
        t.get_aspect().template get<ad::_span_reg_>().mark( method_position );
        t.get_aspect().template get<ad::_clock_finish_>()(t);
      }
      else if (code==-2)
      {
        t.get_aspect().template get<ad::_clock_start_>()(t);
        next = current.invoke_notify(t, d, s);
        t.get_aspect().template get<ad::_span_reg_>().mark( method_position );
        t.get_aspect().template get<ad::_clock_finish_>()(t);
      }
      else
      {
        if ( current.has_id(code) )
        {
          next = current.invoke_response(t, d, s);
          // t.get_aspect().template get<ad::_span_reg_>().mark( method_position );
        }
        else
          flag = false;
      }
    }

    if (!flag)
      return _invoke(t, typename L::right_type(), name, d, s, code);

    return next;

  }
Example #13
0
static void mg_join(struct mg_connection* conn, const struct mg_request_info* ri) {
	if(strcmp(ri->request_method, "GET") == 0) {
		uint new_id = rand_uint();

		if(!aatree_insert(&clients, new_id, (void*)1))
			goto error;

		mg_printf(conn, "%s", standard_reply);
		mg_printf(conn, "%u\n", new_id);

		// Invoke join_cb
		_invoke("join_cb", new_id, NULL);

		return;
	}
	
error:
	mg_error(conn, ri);
}
Example #14
0
static void mg_keep_alive(struct mg_connection* conn, const struct mg_request_info* ri) {
	const char *cl;
	char *buf;
	int len;

	mg_printf(conn, "%s", standard_reply);
	if (strcmp(ri->request_method, "POST") == 0 &&
		(cl = mg_get_header(conn, "Content-Length")) != NULL) {
		len = atoi(cl);
		if ((buf = MEM_ALLOC(len+1)) != NULL) {
			mg_read(conn, buf, len);
			buf[len] = '\0';

			uint id;
			sscanf(buf, "%u", &id); 
			MEM_FREE(buf);

			// Invoke keep_alive
			_invoke("keep_alive_cb", id, NULL);
		}
	}
}
Example #15
0
static void mg_leave(struct mg_connection* conn, const struct mg_request_info* ri) {
	const char *cl;
	char *buf;
	int len;

	if (strcmp(ri->request_method, "POST") == 0 &&
		(cl = mg_get_header(conn, "Content-Length")) != NULL) {
		len = atoi(cl);
		if ((buf = MEM_ALLOC(len+1)) != NULL) {
			mg_read(conn, buf, len);
			buf[len] = '\0';

			uint id;
			sscanf(buf, "%u", &id); 
			MEM_FREE(buf);

			if(aatree_size(&clients)) {
				aatree_remove(&clients, id);

				// Invoke leave_cb
				_invoke("leave_cb", id, NULL);

				mg_printf(conn, "%s", standard_reply);
				return;
			}
			else {
				goto error;
			}
		}
	}
	else if(strcmp(ri->request_method, "OPTIONS") == 0) {
		mg_printf(conn, "%s", standard_reply);
		return;
	}

error:
	mg_error(conn, ri);
}
Example #16
0
 void invoke()
 {
    if (_isOn())
       _invoke();
 }
Example #17
0
 void invoke() {
     _invoke(Tag());
 }