TEUCHOS_UNIT_TEST_TEMPLATE_1_DECL( DefaultSpmdVectorSpace_Parallel, emptyProcSimpleMultiVecAdjointApply,
  Scalar )
{
  // typedef typename Teuchos::ScalarTraits<Scalar>::magnitudeType ScalarMag; // unused
  // typedef Teuchos::ScalarTraits<ScalarMag> SMT; // unused
  const Ordinal localDim = g_localDim;
  PRINT_VAR(localDim);
  const Ordinal numCols1 = g_numCols1;
  const Ordinal numCols2= g_numCols2;
  PRINT_VAR(numCols1);
  PRINT_VAR(numCols2);
  const RCP<const DefaultSpmdVectorSpace<Scalar> > vs =
    createZeroEleProcVS<Scalar>(localDim);
  const RCP<MultiVectorBase<Scalar> > mv = createMembers<Scalar>(vs, numCols1);
  const Scalar val1 = 2.0;
  PRINT_VAR(val1);
  ECHO(assign<Scalar>(mv.ptr(), val1));
  out << "mv = " << *mv;
  ECHO(const RCP<MultiVectorBase<Scalar> > Y = createMembers<Scalar>(mv->domain(), numCols2));
  ECHO(const RCP<MultiVectorBase<Scalar> > X = createMembers<Scalar>(mv->range(), numCols2));
  const Scalar val2 = 3.0;
  PRINT_VAR(val2);
  ECHO(assign<Scalar>(X.ptr(), val2));
  out << "X = " << *X;
  ECHO(apply<Scalar>(*mv, Thyra::CONJTRANS, *X, Y.ptr()));
  out << "Y = " << *Y;
  RTOpPack::ConstSubMultiVectorView<Scalar> Y_smvv =
    Thyra::getLocalSubMultiVectorView<Scalar>(Y);
  for (int i = 0; i < numCols1; ++i) {
    for (int j = 0; j < numCols2; ++j) {
      out << "i = " << i << ", j = " << j << ": ";
      TEST_EQUALITY(Y_smvv(i,j), as<Scalar>(vs->dim())*val1*val2);
    }
  }
}
Пример #2
0
Файл: main.c Проект: goma/goma
void
echo_command_line( int argc, char *argv[], char *echo_file)
{
	int istr=0;
	char echo_string[MAX_CHAR_IN_INPUT]="\0";
	time_t start_time;
	char *time_string;
	
	start_time = time (NULL);
	time_string = asctime( localtime(&start_time) );
	
	SPF(echo_string,"Command line :");
	
	while( istr < argc )
	{
		SPF(endofstring(echo_string)," %s", argv[istr]);
		istr++;
	}
	
	ECHO(echo_string, echo_file);
	
	SPF(echo_string,"Run Time : %s",  time_string);
		
	SPF(endofstring(echo_string),"Version : %s", GOMA_VERSION);
	
	ECHO(echo_string,echo_file);
	
}
Пример #3
0
int xio_getc_pgm(struct __file *stream)
{
	if ((PGM.flags & XIO_FLAG_EOF_bm) != 0) {
		PGM.signal = XIO_SIG_EOF;
		return (_FDEV_EOF);
	}
	if ((PGM.c = pgm_read_byte(&PGMf.filebase_P[PGMf.rd_offset])) == NUL) {
		PGM.flags |= XIO_FLAG_EOF_bm;
	}
	++PGMf.rd_offset;
	if (LINEMODE(PGM.flags) == 0) {	// processing is simple if not LINEMODE
		if (ECHO(PGM.flags) != 0) {
			putchar(PGM.c);
		}
		return (PGM.c);
	}
	// now do the LINEMODE stuff
	if (PGM.c == NUL) {				// perform newline substitutions
		PGM.c = '\n';
	} else if (PGM.c == '\r') {
		PGM.c = '\n';
//	} else if ((SEMICOLONS(PGM.flags) != 0) && (PGM.c == ';')) {
//		PGM.c = '\n';
	}
	if (ECHO(PGM.flags) != 0) {
		putchar(PGM.c);
	}
	return (PGM.c);
}
Пример #4
0
static void aux(void)
/*@globals
	fileSystem,
	internalState,

	AssertionException,
	NotEnoughMemoryException
@*/
/*@modifies
	fileSystem,
	internalState
@*/
{

	ECHO(("before_TRY_block\n"));

	E4C_TRY{
		ECHO(("inside_TRY_block\n"));
	}E4C_FINALLY{
		ECHO(("inside_FINALLY_block\n"));
		goto out_of_try_block;
	}

	out_of_try_block:

	ECHO(("after_TRY_block\n"));
}
Пример #5
0
static int socks_proxy(void)
{
    static const struct {
        enum ne_sock_sversion version;
        int addr;
        const char *fqdn;
        unsigned int port;
        const char *username, *password;
    } ts[] = {
        { NE_SOCK_SOCKSV4, 4, NULL, 55555, NULL, NULL },
        { NE_SOCK_SOCKSV4, 4, NULL, 55555, "foobar", NULL },
        { NE_SOCK_SOCKSV4A, 0, "www.example.com", 55555, NULL, NULL },
        { NE_SOCK_SOCKSV5, 0, "www.example.com", 55555, NULL, NULL },
        { NE_SOCK_SOCKSV5, 4, NULL, 55555, NULL, NULL },
#ifdef TEST_IPV6
        { NE_SOCK_SOCKSV5, 6, NULL, 55555, NULL, NULL },
#endif
        { NE_SOCK_SOCKSV5, 0, "www.example.com", 55555, "norman", "foobar" }
    };
    unsigned n;

    for (n = 0; n < sizeof(ts)/sizeof(ts[n]); n++) {
        ne_socket *sock;
        struct socks_server arg = {0};
        int ret;

        arg.version = ts[n].version;
        arg.expect_port = ts[n].port;
        if (ts[n].addr == 4)
            arg.expect_addr = ne_iaddr_make(ne_iaddr_ipv4, raw_127);
#ifdef TEST_IPV6
        else if (ts[n].addr == 6)
            arg.expect_addr = ne_iaddr_make(ne_iaddr_ipv4, raw6_cafe);
#endif
        else
            arg.expect_fqdn = ts[n].fqdn;
        arg.username = ts[n].username;
        arg.password = ts[n].password;
        
        CALL(begin_socks(&sock, &arg, echo_server, NULL));

        ret = ne_sock_proxy(sock, ts[n].version, arg.expect_addr, 
                            ts[n].fqdn, ts[n].port,
                            ts[n].username, ts[n].password);
        ONV(ret, ("proxy connect #%u gave %d", n, ret));
        FULLREAD("ok!\n");
        ECHO("hello,\n");
        ECHO("\n");
        ECHO("world\n");
        
        if (ts[n].addr)
            ne_iaddr_free(arg.expect_addr);

        CALL(finish(sock, 0));
    }

    return OK;
}
Пример #6
0
static int echo_lines(void)
{
    ne_socket *sock;
    CALL(begin(&sock, echo_server, NULL));
    ECHO("hello,\n");
    ECHO("\n");
    ECHO("world\n");
    return finish(sock, 0);
}
TEUCHOS_UNIT_TEST_TEMPLATE_1_DECL( SpmdLocalDataAccess,
  zeroVS, Scalar )
{
  out << "Create a locally replicated vector space ...\n";
  typedef typename ScalarTraits<Scalar>::magnitudeType ScalarMag;
  const RCP<const DefaultSpmdVectorSpace<Scalar> > vs =
    createZeroVS<Scalar>();
  TEST_ASSERT(!vs->isLocallyReplicated());
  TEST_EQUALITY_CONST(vs->dim(), 0);
  const RCP<const Teuchos::Comm<Ordinal> > comm = vs->getComm();
  const Scalar val = as<Scalar>(1.5);
  PRINT_VAR(val);

  out << "Test locally replicated Vector ...\n";
  const RCP<VectorBase<Scalar> > v = createMember<Scalar>(vs);
  {
    ECHO(RTOpPack::SubVectorView<Scalar> lsv = 
      getNonconstLocalSubVectorView<Scalar>(v));
    TEST_EQUALITY_CONST(lsv.globalOffset(), 0);
    TEST_EQUALITY(lsv.subDim(), 0);
    TEST_EQUALITY_CONST(lsv.stride(), 1);
  }
  {
    ECHO(RTOpPack::ConstSubVectorView<Scalar> lsv = 
      getLocalSubVectorView<Scalar>(v));
    TEST_EQUALITY_CONST(lsv.globalOffset(), 0);
    TEST_EQUALITY(lsv.subDim(), 0);
    TEST_EQUALITY_CONST(lsv.stride(), 1);
  }
  assign<Scalar>(v.ptr(), val);
  TEST_EQUALITY(sum<Scalar>(*v), as<Scalar>(0.0));
  
  out << "Test locally replicated MultiVector ...\n";
  const RCP<MultiVectorBase<Scalar> > mv = createMembers<Scalar>(vs, g_numCols);
  {
    ECHO(RTOpPack::SubMultiVectorView<Scalar> lsmv = 
      getNonconstLocalSubMultiVectorView<Scalar>(mv));
    TEST_EQUALITY(lsmv.globalOffset(), 0);
    TEST_EQUALITY(lsmv.subDim(), 0);
    TEST_EQUALITY(lsmv.leadingDim(), lsmv.subDim());
    TEST_EQUALITY_CONST(lsmv.colOffset(), 0);
    TEST_EQUALITY(lsmv.numSubCols(), g_numCols);
  }
  {
    ECHO(RTOpPack::ConstSubMultiVectorView<Scalar> lsmv = 
      getLocalSubMultiVectorView<Scalar>(mv));
  }
  assign<Scalar>(mv.ptr(), val);
  for (int j = 0; j < g_numCols; ++j) {
    TEST_EQUALITY(sum<Scalar>(*mv->col(0)), as<Scalar>(0.0));
  }
  
}
Пример #8
0
pascal OSStatus CWindow::CarbonWindowHandler(
	EventHandlerCallRef inHandlerCallRef,
	EventRef			inEvent,
	void				*inUserData)
{
	CWindow				*win=(CWindow*)inUserData;
	
	Try_
	{	
		switch (::GetEventKind(inEvent))
		{
			case kEventWindowActivated:
				{
					win->GetWindowLayer()->ActivateWindow(win);
					
					/*
					CCarbonWindowLayer		*carb=dynamic_cast<CCarbonWindowLayer*>(win->GetWindowLayer());
					
					AssertThrow_(carb);
					
					if (carb->CanWindowBeActivated(win))
					{
						win->active=true;
						win->WindowActivated();
					}*/
				}
				break;
				
			case kEventWindowDeactivated:
				win->GetWindowLayer()->DeactivateWindow(win);
				ECHO("Deactivate event received for window");
				
				/*
				if (win->IsWindowActive())
				{
					win->active=false;
					win->WindowDeactivated();				
				}*/
				break;
				
			default:
				ECHO("ERROR: Window handler received an event it doesn't know what to do with!");
				break;
		}
	}
	Catch_(err)
	{
		return ErrCode_(err);
	}
	
	return noErr;
}
static void 
client_loop (client_state* state, void *frontend, void *backend)
{
    zmq_pollitem_t items [] = { { frontend, 0, ZMQ_POLLIN, 0 },
                                { backend, 0, ZMQ_POLLIN, 0 } };
    
    client_state_set_heartbeat_time(state);
    while (1) {
        if(state->heartbeat_liveness <= 0)
        {
            //we dead
            ECHO("Connection offline.");
            return;
        }
        
        //s_dump(frontend);
        
        zmq_poll (items, 2, -1);
        if (items [0].revents & ZMQ_POLLIN)
        {
            client_loop_frontend(state,frontend);      
        }
        if (items [1].revents & ZMQ_POLLIN)
        {
            client_loop_backend(state, backend);           
        }
        
        if(client_state_is_time_to_heartbeat(state) == true)
        {
            add_ping_message(state);
        }
        
        send_outgoing_messages(state, frontend);
    }
}
Пример #10
0
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
//		¥ EndExecution												/*e*/
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
// Cleans up the program
void CProgram::EndExecution()
{
	AssertThrow_(mProgramState==kRunning || mProgramState==kPaused);
	
	// Clear all the remaining stack frames - thus releasing this programs memory pool
	ULinkedListHelpers::DeleteAllData(&mStackFrames);

	// flush the events to clear all the input which has accumulated whilst in play	
	::FlushEvents(kUserInputEventMask,0);
	
	// Stop all sounds
	UKaboom::Reset();
//	mMADDriver.Reset();
	UFuse::ShutDown();
	UTNTMapManager::ShutDown();
	UButtonManager::ResetButtons();
	UCursorManager::ShowCursor();
	CInputManager::SuspendInput();
	UGammaManager::Shutdown();
//	UMusicManager::CleanUp();
	UFileManager::Shutdown();
	UTNTMusicManager::ResetEngine();
	
	delete mGraphicsContext;
	mGraphicsContext=0L;

	// Reset the PC and DC
	mPC=mCode;
	mDC=mRootScope.DataStatements();
	
	mProgramState=kReady;
	
	ECHO("Ended execution of program '" << GetProgramName() << "'");
}
Пример #11
0
static int _getc_char(void)
{
    if (ECHO(ds[gdev].flags) != 0) {
        ds[gdev].x_putc(ds[gdev].c, stdout);
    }
    return(ds[gdev].c);
}
TEUCHOS_UNIT_TEST( GlobalMPISession, basic ) {
#ifdef HAVE_MPI
  TEST_ASSERT(GlobalMPISession::mpiIsInitialized());
  int numProcs = -1;
  ECHO(::MPI_Comm_size(MPI_COMM_WORLD, &numProcs));
  TEST_EQUALITY(GlobalMPISession::getNProc(), numProcs);
  int procRank = -1;
  ECHO(::MPI_Comm_rank(MPI_COMM_WORLD, &procRank));
  TEST_EQUALITY(GlobalMPISession::getRank(), procRank);
#else // HAVE_MPI
  TEST_ASSERT(!GlobalMPISession::mpiIsInitialized());
  TEST_EQUALITY_CONST(GlobalMPISession::getNProc(), 1);
  TEST_EQUALITY_CONST(GlobalMPISession::getRank(), 0);
#endif // HAVE_MPI
  TEST_ASSERT(!GlobalMPISession::mpiIsFinalized());
  globalReduceSuccess(success, out);
}
Пример #13
0
void other_fn(void * arg)
{
  int input = *(int *)arg;
  lumiera_thread_sync (); // the main thread can discard the argument storage
  CHECK (input == 42, "input is not 42, but %d", input);
  input -= 42;
  ECHO ("result is %d", input);
}
TEUCHOS_UNIT_TEST_TEMPLATE_1_DECL( DefaultSpmdVectorSpace_Parallel, emptyProcPrintVec,
  Scalar )
{
  const RCP<const DefaultSpmdVectorSpace<Scalar> > vs =
    createZeroEleProcVS<Scalar>(g_localDim);
  const RCP<VectorBase<Scalar> > v = createMember<Scalar>(vs);
  ECHO(assign(v.ptr(), as<Scalar>(1.5)));
  out << "v = " << *v;
}
Пример #15
0
 inline void printState(const LR0State& state, const CFG& cfg) {
     ECHO("Kernel:");
     for (auto& item : state.kernel) {
         ECHO(cfg.toReadableForm(cfg[item.productionNumber]));
         // TRACE(item.position);
         // TRACE(item.targetState);
     }
     ECHO("Items:");
     for (auto& item : state.items) {
         ECHO(cfg.toReadableForm(cfg[item.productionNumber]));
         TRACE(item.position);
         TRACE(item.targetState);
         TRACE(static_cast<int>(item.action));
     }
     // TRACE(state.kernel.size());
     // TRACE(state.items.size());
     ECHO("");
 }
Пример #16
0
/*
 * Implemented GObject::finalize
 */
static void
echo_object_finalize (GObject *object)
{
	Echo *echo = ECHO (object);

	g_free (echo->instance_data);
	
	echo_parent_class->finalize (object);
}
TEUCHOS_UNIT_TEST_TEMPLATE_1_DECL( DefaultSpmdVectorSpace_Parallel, emptyProcAssignSumVec,
  Scalar )
{
  const RCP<const DefaultSpmdVectorSpace<Scalar> > vs =
    createZeroEleProcVS<Scalar>(g_localDim);
  const RCP<VectorBase<Scalar> > v = createMember<Scalar>(vs);
  ECHO(assign(v.ptr(), as<Scalar>(1.5)));
  TEST_EQUALITY_CONST(sum(*v), as<Scalar>(1.5*g_localDim*(vs->getComm()->getSize()-1)));
}
Пример #18
0
// --------------------------------------------------------------------------------------------------------------------------
//		* DebugHeader
// --------------------------------------------------------------------------------------------------------------------------
// Echos a time stamp into the file
void UBkgConsole::DebugHeader()
{
	try
	{
		UInt32		time;
		Str255		timeStr,dateStr;
		
		::GetDateTime(&time);
		::DateString(time,abbrevDate,dateStr,0);
		::TimeString(time,true,timeStr,0);
		
		ECHO("---------------------------------------------------------------------------");
		ECHO( APP_NAME << " " << verShortText << " debug log started on " << dateStr << " " << timeStr);
		ECHO("---------------------------------------------------------------------------");
	}
	catch(...)
	{
	}	
}
Пример #19
0
static int _gets_NEWLINE(void)				// handles any newline char
{
    ds[gdev].signal = XIO_SIG_EOL;
    ds[gdev].buf[ds[gdev].len] = NUL;
    ds[gdev].flags &= ~XIO_FLAG_IN_LINE_bm;	// clear in-line state (reset)
    if (ECHO(ds[gdev].flags) != 0) {
        ds[gdev].x_putc('\n',stdout);		// echo a newline
    }
    return (XIO_EOL);						// return for end-of-line
}
Пример #20
0
static void handler_z10(int signal_number)
/*@globals
	fileSystem,
	internalState
@*/
/*@modifies
	fileSystem,
	internalState
@*/
{

	ECHO(("handler_%d\n", signal_number));

	ECHO(("\nhandler_executed\n"));

	/*@-exitarg@*/
	exit(123);
	/*@=exitarg@*/
}
Пример #21
0
static int _getc_NEWLINE(void)	// convert CRs and LFs to newlines if line mode
{
    if (LINEMODE(ds[gdev].flags) != 0) {
        ds[gdev].c = '\n';
    }
    if (ECHO(ds[gdev].flags) != 0) {
        ds[gdev].x_putc(ds[gdev].c, stdout);
    }
    return(ds[gdev].c);
}
Пример #22
0
static int _gets_DELETE(void)
{
    if (--ds[gdev].len >= 0) {
        if (ECHO(ds[gdev].flags) != 0) {
            ds[gdev].x_putc(ds[gdev].c, stdout);
        }
    } else {
        ds[gdev].len = 0;
    }
    return (XIO_EAGAIN);					// line is still in process
}
TEUCHOS_UNIT_TEST( GlobalMPISession, allGather )
{
  const int numProcs = GlobalMPISession::getNProc();
  const int procRank = GlobalMPISession::getRank();
  {
    Array<int> allInts;
    ECHO(allInts.resize(numProcs-1));
    TEST_THROW(GlobalMPISession::allGather(procRank+1, allInts()), std::out_of_range);
    ECHO(allInts.resize(numProcs+1));
    TEST_THROW(GlobalMPISession::allGather(procRank+1, allInts()), std::out_of_range);
  }
  {
    Array<int> allInts_expected(numProcs);
    for (int k = 0; k < numProcs; ++k) {
      allInts_expected[k] = k+1;
    }
    Array<int> allInts(numProcs);
    ECHO(GlobalMPISession::allGather(procRank+1, allInts()));
    TEST_EQUALITY(allInts, allInts_expected);
  }
}
Пример #24
0
void SCA_Joystick::DestroyJoystickDevice(void)
{
#ifdef WITH_SDL
	if (m_isinit) {
		if (SDL_JoystickOpened(m_joyindex)) {
			ECHO("Closing-joystick " << m_joyindex);
			SDL_JoystickClose(m_private->m_joystick);
		}
		m_isinit = false;
	}
#endif /* WITH_SDL */
}
TEUCHOS_UNIT_TEST_TEMPLATE_1_DECL( DefaultSpmdVectorSpace_Parallel, emptyProcPrintMultiVec,
  Scalar )
{
  const Ordinal localDim = g_localDim;
  PRINT_VAR(localDim);
  const Ordinal numCols = 3;
  PRINT_VAR(numCols);
  const RCP<const DefaultSpmdVectorSpace<Scalar> > vs = createZeroEleProcVS<Scalar>(localDim);
  const RCP<MultiVectorBase<Scalar> > mv = createMembers<Scalar>(vs, numCols);
  ECHO(assign(mv.ptr(), as<Scalar>(1.5)));
  out << "mv = " << *mv;
}
TEUCHOS_UNIT_TEST_TEMPLATE_1_DECL( DefaultSpmdVectorSpace_Parallel, emptyProcGetFullSubVector,
  Scalar )
{
  const Ordinal localSubDim = g_localDim;
  const RCP<const DefaultSpmdVectorSpace<Scalar> > vs =
    createZeroEleProcVS<Scalar>(localSubDim);
  const RCP<VectorBase<Scalar> > v = createMember<Scalar>(vs);
  ECHO(assign(v.ptr(), as<Scalar>(1.5)));
  RTOpPack::ConstSubVectorView<Scalar> subVec;
  v->acquireDetachedView(Teuchos::Range1D(), &subVec);
  TEST_EQUALITY(subVec.subDim(),
    as<Ordinal>(localSubDim*(vs->getComm()->getSize()-1)));
}
Пример #27
0
static int _gets_char(void)
{
    if (ds[gdev].len > ds[gdev].size) {		// trap buffer overflow
        ds[gdev].signal = XIO_SIG_EOL;
        ds[gdev].buf[ds[gdev].size] = NUL;	// size is zero based
        return (XIO_BUFFER_FULL_NON_FATAL);
    }
    ds[gdev].buf[ds[gdev].len++] = ds[gdev].c;
    if (ECHO(ds[gdev].flags) != 0) {
        ds[gdev].x_putc(ds[gdev].c, stdout);// conditional echo
    }
    return (XIO_EAGAIN);					// line is still in process
}
Пример #28
0
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
//		¥ CWaitMouseDownStatement::ExecuteSelf
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
void CWaitMouseDownStatement::ExecuteSelf(CProgram &inState)
{
	if (USE_RNE_FOR_SYNC_INPUT)
	{
		// if the mouse button is held when we enter, then we're done instantly
		if (Button())
			return;

		// otherwise, block our task until we get an event, if it's a mouse click, unblock, if not, handle it and reblock
		// this drops our cpu usage from 100 to pretty much zero on mac os x
		
		EventRef		e;

		// clear all pending mouse downs so we don't return immediately
		{
			EventTypeSpec	eventsList[]={ { kEventClassMouse, kEventMouseDown } };
			::FlushEventsMatchingListFromQueue(GetCurrentEventQueue(),1,eventsList);
		}
		
		// wait for a standard event with an infinite time out, this includes esc and cmd-. etc
		inState.TBReceiveNextEvent(EventListWithCount(CApplication::kStdEventsListPlusAllMouse),kEventDurationForever,false,&e);
		
		// if it's a mouse click, flush it and exit, if it's not a mouse click, don't flush it, let it be handled then repeat
		if ((::GetEventClass(e)==kEventClassMouse) && (::GetEventKind(e)==kEventMouseDown) && inState.MouseEventIsOverGameWindow(e))
		{
			// remove the event from the queue
			::RemoveEventFromQueue(GetCurrentEventQueue(),e);		// we now own e
			::ReleaseEvent(e);
		}
		else
		{
			ECHO("Non mouse up event, passing out and looping...");
			inState.SetPC(this);		// let the event out to our main handler and loop back into this command when it's done
		}
	}		
	else
	{
		if (!Button())
			inState.SetPC(this);
		else
		{
			#if TB_FlushEventsAllTheFeckinTime
			::FlushEvents(kUserInputEventMask,0L);
			#endif
		}
	}
}
Пример #29
0
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
//		¥ CWaitMouseUpStatement::ExecuteSelf
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
void CWaitMouseUpStatement::ExecuteSelf(CProgram &inState)
{
	if (USE_RNE_FOR_SYNC_INPUT)
	{
		if (!Button())		// mouse button ain't held, return instantly
			return;
			
		// otherwise, block until mouse up is received
		EventRef		e;

		// clear all pending mouse ups so we don't return immediately
		{
			EventTypeSpec	eventsList[]={ { kEventClassMouse, kEventMouseUp } };
			::FlushEventsMatchingListFromQueue(GetCurrentEventQueue(),1,eventsList);
		}

		// wait for a standard event with an infinite time out, this includes esc and cmd-. etc
		inState.TBReceiveNextEvent(EventListWithCount(CApplication::kStdEventsListPlusAllMouse),kEventDurationForever,false,&e);
		
		// if it's a mouse click, flush it and exit, if it's not a mouse click, don't flush it, let it be handled then repeat
		if ((::GetEventClass(e)==kEventClassMouse) && (::GetEventKind(e)==kEventMouseUp))
		{
			// remove the event from the queue
			::RemoveEventFromQueue(GetCurrentEventQueue(),e);		// we now own e
			::ReleaseEvent(e);
		}
		else
		{
			ECHO("Non mouse event, passing out and looping...");
			inState.SetForceEventProcess();		// get it processed and out of the q immediately
			inState.SetPC(this);		// let the event out to our main handler and loop back into this command when it's done
		}
	}
	else
	{
		if (Button())
			inState.SetPC(this);
		else
		{
			#if TB_FlushEventsAllTheFeckinTime
			::FlushEvents(kUserInputEventMask,0L);
			#endif
		}
	}
}
Пример #30
0
int main(void)
{
	char str[100];
	int flag = 1;

	do
	{
	} while (0);

	flag = (1, 2, 3);
	printf("flag = %d\n", flag);
	if (flag == 1)
		ECHO(str);
	else
		printf("NULL doing\n");

	return 0;
}