Exemplo n.º 1
0
//---------------------------------------------------------------------------------------------------------------------
// Sends an event from the script.  Returns true if the event was sent, false if not.
//---------------------------------------------------------------------------------------------------------------------
bool InternalScriptExports::TriggerEvent(EventType eventType, LuaPlus::LuaObject eventData)
{
	shared_ptr<ScriptEvent> pEvent(BuildEvent(eventType, eventData));
    if (pEvent)
	    return IEventManager::Get()->VTriggerEvent(pEvent);
    return false;
}
//---------------------------------------------------------------------------------------------------------------------
// Sends an event from the script.  Returns true if the event was sent, false if not.
//---------------------------------------------------------------------------------------------------------------------
bool InternalScriptExports::TriggerEvent(EventType eventType, sol::object eventData)
{
	std::shared_ptr<ScriptEvent> pEvent(BuildEvent(eventType, eventData));
	if (pEvent)
		return false; // EngineSubsystems::getInstance().m_pEventManager->VTriggerEvent(pEvent);
	return false;
}
// queue an event from lua script
bool LuaInternalScriptExports::QueueEvent(EventType eventType, LuaPlus::LuaObject eventData)
{
	shared_ptr<LuaScriptEvent> pEvent(BuildEvent(eventType, eventData));
	if (pEvent)
	{
		IEventManager::Get()->QueueEvent(pEvent);
		return true;
	}

	return false;
}
Exemplo n.º 4
0
/* ARGSUSED */
static void
GetClientValue(Widget w, XtPointer data, Atom *selection, Atom *type,
               XtPointer value, unsigned long *length,  int *format)
{
  Event          *event;
  ProtocolStream alloc_stream;
  ProtocolStream *stream;
  unsigned char  ident;
  unsigned char  error_code;
  char           *error_str;
  char           msg[BUFSIZ];


/* type should be checked if XT_CONVERT_FAIL */

  if (*length == 0)
    {
      return;
    }

  stream = &alloc_stream;	/* easier to think of it this way... */

  stream->current = stream->top = (unsigned char*)value;
  stream->size = HEADER_SIZE;		/* size of header. */

  /*
   * Retrieve the Header.
   */

  if (*length < HEADER_SIZE)
    {
      /* "Incorrectly formatted message from client" */
      SetMessage(global_screen_data.info_label,
		 res_labels[9],
		 "Incorrectly formatted message from client");
      return;
    }

  (void)_XEditResGet8(stream, &ident);
  if (global_client.ident != ident)
    {

#ifdef DEBUG
      if (global_resources.debug)
	{
	  printf("Incorrect ident from client.\n");
	}
#endif  /* DEBUG */

      if (!XtOwnSelection(w,
			  *selection,
			  CurrentTime,
			  ConvertCommand, 
			  LoseSelection,
			  SelectionDone))
	{
	  /* "Unable to own the Resource Editor Command Selection" */
	  SetMessage(global_screen_data.info_label,
		     res_labels[10],
		     "Unable to own the Resource Editor Command Selection");
	}

	return;

    }   /* if (global_client.ident != ident) */

    (void)_XEditResGet8(stream, &error_code);
    (void)_XEditResGet32(stream, &(stream->size));
    stream->top = stream->current;   /* reset stream to top of value.*/

    switch ((int)error_code)
      {
      case PartialSuccess:
        /*****
        if (global_client.command == LocalSendWidgetTree &&
	    global_effective_protocol_version < CURRENT_PROTOCOL_VERSION)
          {
	    ++global_effective_protocol_version;
          }
	*****/
	if ((event = BuildEvent(stream)) != NULL)
	  {
	    error_str = DispatchEvent(event);
	    FreeEvent(event);
	  }
	else
	  {
	    sprintf(msg,
		    "Unable to unpack protocol request.");
	    error_str = XtNewString(msg);
	  }
	break;   /* PartialSuccess */

      case Failure:
	error_str = GetFailureMessage(stream);
	break;   /* Failure */

      case ProtocolMismatch:
	error_str = ProtocolFailure(stream);
	--global_effective_protocol_version;
	/* normaly protocol version is reset to current during a SendWidgetTree
         * request, however, after a protocol failure this is skiped once for
         * a retry.
         */
	reset_protocol_level = False;
	SetCommand(w,
		   LocalSendWidgetTree,
		   NULL);
	break;   /* ProtocolMismatch */

	default:
		/* "Unknown Error code %s" */
		if (res_labels[11]) {
			sprintf(msg, res_labels[11], (int)error_code);
		} else {
			sprintf(msg, "Unknown Error code %i", (int)error_code);
		}
		SetMessage(global_screen_data.info_label, msg, "?res_labels[11]");
		break;    /* default */
	}   /* switch (error_code) */

    if (error_str == NULL)
      {
	WNode *top;


	if (global_tree_info == NULL)
	  {
	    return;
	  }
	
	top = global_tree_info->top_node;
	/* "Widget/Style tree for client %s (%s)" */
	if (res_labels[12])
	  {
	    sprintf(msg,
		    res_labels[12],
		    top->name,
		    top->class);
	  }
	else
	  {
Exemplo n.º 5
0
/* Main function */
int main(int argc, char** argv)
{

  if( BeginJob( argc, argv ) == 0 ) {
    cout<<"BeginJob failed"<<endl;
    return 0;
  }

  /* Layer 1. The main loop over every stream entries */
  /* ------------------------------------------------ */
  CurrRun.Run = -1;
  cout<<"StreamChain add "<<StreamChain<<endl;
  unsigned int entries = StreamChain->GetEntries();
  for( unsigned int entry=0; entry<entries; entry++ )  {
    unsigned int localentry = StreamChain->LoadTree(entry);
    int ret = Reader->GetEntry( localentry );
    if( ret==0 ) { 
      cout<<"Error: Read error"<<endl;
      return 1;
    }
    
    /* Process run information and possible long time jump */
    if( Reader->Run != CurrRun.Run )  {
      if( CurrRun.Run != -1 )  {
	/* End Run */
	if( EndRun( Reader ) == 0 ) {
	  cout<<"EndRun failed"<<endl;
	  return 0;
	}
      }
      /* Begin Run */
      if( BeginRun( Reader ) == 0 ) {
	cout<<"BeginRun failed"<<endl;
	return 0;
      }
    }
    
    /*** Test each entry here ***/
    SubEvt* pSubEvt = new SubEvt( Reader );
    TimeStamp NewTime( pSubEvt->TrigSec, pSubEvt->TrigNano );
    if( (NewTime - CurrRun.CurrTime).GetSeconds() > 120 /* Two minutes */ ) {
      CurrRun.Breaks.push_back( CurrRun.CurrTime );
      CurrRun.Breaks.push_back( NewTime );
      CurrRun.SkipTime.Add( (NewTime - CurrRun.CurrTime).GetSeconds() );
    }
    CurrRun.CurrTime = NewTime;

    /* Cache all temporal related event. Give a chance to clean up the queue and do muon Id */
    SubEvtQueue PassedQueue = CachedQueueInsert( NewTime, pSubEvt );

    /* Layer 2. The main loop over every non-muon SubEvt */
    /* ------------------------------------------------- */
    SubEvtQueueIterator it, it_end = PassedQueue.end();
    for( it = PassedQueue.begin(); it != it_end; it++ )  {
      
      /* Build delay coincident event */
      SubEvt* pSubEvt = it->second;
      int ret = BuildEvent( pSubEvt );
      if( ret == 0 )  {
	cout<<"Error in BuildEvent"<<endl;
      }
      
      delete pSubEvt;

    }
    /***  End of SubEvt loop  ***/

  }
  /***  End of stream entry loop  ***/

  if( EndRun( Reader ) == 0 ) {
    cout<<"EndRun failed"<<endl;
    return 0;
  }

  /* End Job */
  /* ------- */
  if( EndJob() == 0 ) {
    cout<<"BeginJob failed"<<endl;
    return 0;
  }

  return 1;
}
Exemplo n.º 6
0
/* ARGSUSED */
static void
GetClientValue(Widget w, XtPointer data, Atom *selection, Atom *type,
	       XtPointer value, unsigned long *length, int *format)
{
    Event * event;
    ProtocolStream alloc_stream, *stream;
    unsigned char ident, error_code;
    char * error_str = NULL, msg[BUFSIZ];

    if (*length == 0)
	return;

    stream = &alloc_stream;	/* easier to think of it this way... */

    stream->current = stream->top = (unsigned char *) value;
    stream->size = HEADER_SIZE;		/* size of header. */

    /*
     * Retrieve the Header.
     */

    if (*length < HEADER_SIZE) {
	SetMessage(global_screen_data.info_label,
		   res_labels[9]);
	return;
    }

    (void) _XEditResGet8(stream, &ident);
    if (global_client.ident != ident) {
#ifdef DEBUG
	if (global_resources.debug)
	    printf("Incorrect ident from client.\n");
#endif 
	if (!XtOwnSelection(w, *selection, CurrentTime, ConvertCommand, 
			    LoseSelection, SelectionDone))
	    SetMessage(global_screen_data.info_label,
		       res_labels[10]);
	return;
    }

    (void) _XEditResGet8(stream, &error_code); 
    (void) _XEditResGet32(stream, &(stream->size));
    stream->top = stream->current; /* reset stream to top of value.*/

    switch ((int) error_code) {
    case PartialSuccess:
/*****
        if (global_client.command == LocalSendWidgetTree &&
	    global_effective_protocol_version < CURRENT_PROTOCOL_VERSION)
	  ++global_effective_protocol_version;
*****/
	if ((event = BuildEvent(stream)) != NULL) {
	    error_str = DispatchEvent(event);
	    FreeEvent(event);
	}
	else {
	    sprintf(msg, "Unable to unpack protocol request.");
	    error_str = XtNewString(msg);
	}
	break;
    case Failure:
	error_str = GetFailureMessage(stream);
	break;
    case ProtocolMismatch:
	error_str = ProtocolFailure(stream);
	--global_effective_protocol_version;
	/* normaly protocol version is reset to current during a SendWidgetTree
         * request, however, after a protocol failure this is skiped once for
         * a retry.
         */
	reset_protocol_level = False;
	SetCommand(w, LocalSendWidgetTree, NULL);
	break;
    default:
	sprintf(msg, res_labels[11], (int) error_code);
	SetMessage(global_screen_data.info_label, msg);
	break;
    }

    if (error_str == NULL) {
	WNode * top;
	
	if (global_tree_info == NULL)
	    return;
	
	top = global_tree_info->top_node;
	sprintf(msg, res_labels[12], top->name, top->class);
	SetMessage(global_screen_data.info_label, msg);
	return;
    }