예제 #1
0
파일: output.c 프로젝트: WeiY/appweb-4
/*
    Action to run in response to the "test/output" URI
 */
static void output_action() 
{ 
    Output  *output;

    /*
        Don't automatically finalize (complete) the request when this routine returns. This keeps the connection open.
     */
    dontAutoFinalize();

    /*
        Define the event notifier. We're interested in WRITABLE events
     */
    setNotifier(output_callback);

    /*
        Open a file for output. Could use open/write, but we use the MPR equivalents for cross-platform I/O.
     */
    output = mprAllocObj(Output, manageOutput);
    if ((output->file = mprOpenFile(OUTPUT_FILE, O_RDONLY, 0)) == 0) {
        httpError(getConn(), HTTP_CODE_INTERNAL_SERVER_ERROR, "Cannot open huge.txt");
        return;
    }
    mprGetPathInfo(OUTPUT_FILE, &output->info);
    /*
        Save a reference to our output state
     */ 
    setData(output);
}
예제 #2
0
System::System(Mat*a,Mat*b,Mat*c,Mat*d,double tsample,Notifier *nt):System(){
	A = a; B = b; C = c; D = d;
	if ( D == 0 )
		D = new Mat(C->rows,B->cols,CV_64FC1,0.0);
	
	Ts = tsample;
	
	setNotifier(nt);
	
	rebuild();
}
예제 #3
0
/* ****************************************************************************
*
* utInit - unit test init
*
*/
void utInit(void)
{
#ifdef UT_DEBUG
  ++noOfInits;
  printf("**************** IN utInit (%d inits, %d exits)\n", noOfInits, noOfExits);
#endif

  notifierMock = new NotifierMock();
  if (notifierMock == NULL)
  {
    fprintf(stderr, "error allocating NotifierMock: %s\n", strerror(errno));
    exit(1);
  }
  setNotifier(notifierMock);
  
  timerMock = new TimerMock();
  if (timerMock == NULL)
  {
    fprintf(stderr, "error allocating TimerMock: %s\n", strerror(errno));
    exit(1);
  }
  ON_CALL(*timerMock, getCurrentTime()).WillByDefault(Return(1360232700));
  setTimer(timerMock);

  startTime       = getCurrentTime();
  statisticsTime  = getCurrentTime();

  setupDatabase();

#ifdef UT_DEBUG
  printf("**************** FROM utInit (%d inits, %d exits)\n", noOfInits, noOfExits);
#endif

  //
  // URI parameters used for unit testing
  //   Default mime type for notifications: application/xml
  //
  uriParams[URI_PARAM_NOTIFY_FORMAT]       = "XML";
  uriParams[URI_PARAM_PAGINATION_OFFSET]   = DEFAULT_PAGINATION_OFFSET;
  uriParams[URI_PARAM_PAGINATION_LIMIT]    = DEFAULT_PAGINATION_LIMIT;
  uriParams[URI_PARAM_PAGINATION_DETAILS]  = DEFAULT_PAGINATION_DETAILS;
  uriParams[URI_PARAM_NOT_EXIST]           = ""; // FIXME P7: we need this to implement "restriction-based" filters

  //
  // Resetting servicePathVector
  //
  servicePathVector.clear();

  // Init subs cache (this initialization is overriden in test that use csubs)
  mongoSubCacheInit();
}
ContestResultsApi::ContestResultsApi(ContestResults::Client resultsApi, PromiseConverter& converter)
    : resultsApi(resultsApi),
      converter(converter) {
    KJ_DBG("Created results API", this);

    auto resultsRequest = resultsApi.resultsRequest().send();

    converter.adopt(resultsRequest.then([this](capnp::Response<ContestResults::ResultsResults> results) {
        auto talliedOpinions = results.getResults();
        updateResults(talliedOpinions);
    }));

    auto subscribeRequest = resultsApi.subscribeRequest();
    subscribeRequest.setNotifier(kj::heap<ResultsNotifier>(*this));
    converter.adopt(subscribeRequest.send());
}
예제 #5
0
/* ****************************************************************************
*
* utExit - unit test exit
*
*/
void utExit(void)
{
#ifdef UT_DEBUG
  ++noOfExits;
  printf("**************** IN utExit (%d inits, %d exits)\n", noOfInits, noOfExits);
#endif

  if (timerMock)
    delete timerMock;

  if (notifierMock)
    delete notifierMock;

  timerMock    = NULL;
  notifierMock = NULL;

  setTimer(NULL);
  setNotifier(NULL);

#ifdef UT_DEBUG
  printf("**************** FROM utExit (%d inits, %d exits)\n", noOfInits, noOfExits);
#endif
}
예제 #6
0
void MixerDetails::setTrack(MixerTrackItemPtr track)
      {
      _mti = track;
      setNotifier(_mti ? _mti->focusedChan() : nullptr);
      updateFromTrack();
      }
예제 #7
0
 void detachNotifier(Notifier<Data>* n) { if (_notifier == n) setNotifier(nullptr); }