当前位置: 首页>>代码示例>>C++>>正文


C++ Consumer类代码示例

本文整理汇总了C++中Consumer的典型用法代码示例。如果您正苦于以下问题:C++ Consumer类的具体用法?C++ Consumer怎么用?C++ Consumer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Consumer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: QMainWindow

progressDialog::progressDialog(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags){

    ui.setupUi(this);

    Consumer *c = new Consumer();
    Producer *p = new Producer();

    Thread *t1 = new Thread(0);
    Thread *t2 = new Thread(0);

    connect(this,SIGNAL(begin(bool)),c,SLOT(startReceiving(bool)));
    connect(c,SIGNAL(initiate(bool)),p,SLOT(produce(bool)));
    connect(p,SIGNAL(sendPacket(const QByteArray,bool)),c,SLOT(receiveFrame(const QByteArray,bool)));
    connect(ui.pushButton,SIGNAL(clicked(bool)),this,SLOT(_begin(bool)));
    connect(p,SIGNAL(halt(bool)),c,SLOT(startReceiving(bool)));
	connect(c,SIGNAL(blockDone()),p,SLOT(frameData()));
	connect(c,SIGNAL(measure(bool)),p,SLOT(measurement(bool)),Qt::DirectConnection);
	connect(c,SIGNAL(openDialog()),this,SLOT(startDlg()));
	connect(c,SIGNAL(closeDialog()),this,SLOT(closeDlg()));
	connect(p,SIGNAL(setDlgMax(int)),this,SLOT(setMaxVal(int)));
	connect(p,SIGNAL(setDlgVal(int)),this,SLOT(setVal(int)));
	connect(p,SIGNAL(setSeconds(int)),this,SLOT(setSecondsRemaining(int)));

    c->moveToThread(t1);
    p->moveToThread(t2);

    t1->start();
    t2->start();
}
开发者ID:vleo,项目名称:vleo-notebook,代码行数:30,代码来源:progressdialog.cpp

示例2: start_consumer

static void*
start_consumer(void* data)
{
	Consumer* consumer = (Consumer*)data;

	int* x;
	int has_item = 0;

	while ((has_item = consumer->f_get_item(consumer->queue, &x)) != -1)
	{
		if (has_item == 1)
		{
			int i = *x;
			cx_free(x);
			consumer->processed++;

			XFLOG("Consumer[%d] - received %d", consumer->id, i);

			/* simulate processing delay */
#ifdef PROCESSING_DELAY_MAX_MSEC
			usleep((rand() % PROCESSING_DELAY_MAX_MSEC) * 1000);
#endif

			// queue is destroyed on the last request
			if (i == (NITERATATIONS - 1))
			{
				XFDBG("Consumer[%d] I'm processing the last request", consumer->id);
				Queue_destroy(consumer->queue);
			}
		}
	}
	XFDBG("Consumer[%d] Leaving inactive queue", consumer->id);
	pthread_exit(NULL);
}
开发者ID:mikalv,项目名称:libcx,代码行数:34,代码来源:test_queue.c

示例3: main

int 
main (int argc, char** argv)
{
  print_highlight ("PCL OpenNI Recorder for saving buffered PCD (binary compressed to disk). See %s -h for options.\n", argv[0]);

  int buff_size = BUFFER_SIZE;
  
  if (find_switch (argc, argv, "-h") || find_switch (argc, argv, "--help"))
  {
    print_info ("Options are: \n"
              "             -xyz    = save only XYZ data, even if the device is RGB capable\n"
              "             -shift  = use OpenNI shift values rather than 12-bit depth\n"
              "             -buf X  = use a buffer size of X frames (default: "); 
    print_value ("%d", buff_size); print_info (")\n");
    return (0);
  }


  bool just_xyz = find_switch (argc, argv, "-xyz");
  openni_wrapper::OpenNIDevice::DepthMode depth_mode = openni_wrapper::OpenNIDevice::OpenNI_12_bit_depth;
  if (find_switch (argc, argv, "-shift"))
    depth_mode = openni_wrapper::OpenNIDevice::OpenNI_shift_values;

  if (parse_argument (argc, argv, "-buf", buff_size) != -1)
    print_highlight ("Setting buffer size to %d frames.\n", buff_size);
  else
    print_highlight ("Using default buffer size of %d frames.\n", buff_size);

  print_highlight ("Starting the producer and consumer threads... Press Cltr+C to end\n");
 
  OpenNIGrabber grabber ("");
  if (grabber.providesCallback<OpenNIGrabber::sig_cb_openni_point_cloud_rgba> () && 
      !just_xyz)
  {
    print_highlight ("PointXYZRGBA enabled.\n");
    PCDBuffer<PointXYZRGBA> buf;
    buf.setCapacity (buff_size);
    Producer<PointXYZRGBA> producer (buf, depth_mode);
    boost::this_thread::sleep (boost::posix_time::seconds (2));
    Consumer<PointXYZRGBA> consumer (buf);

    signal (SIGINT, ctrlC);
    producer.stop ();
    consumer.stop ();
  }
  else
  {
    print_highlight ("PointXYZ enabled.\n");
    PCDBuffer<PointXYZ> buf;
    buf.setCapacity (buff_size);
    Producer<PointXYZ> producer (buf, depth_mode);
    boost::this_thread::sleep (boost::posix_time::seconds (2));
    Consumer<PointXYZ> consumer (buf);

    signal (SIGINT, ctrlC);
    producer.stop ();
    consumer.stop ();
  }
  return (0);
}
开发者ID:5irius,项目名称:pcl,代码行数:60,代码来源:openni_pcd_recorder.cpp

示例4: lock

int galera::ist::Receiver::recv(TrxHandle** trx)
{
    Consumer cons;
    gu::Lock lock(mutex_);
    if (running_ == false)
    {
        if (error_code_ != 0)
        {
            gu_throw_error(error_code_) << "IST receiver reported error";
        }
        return EINTR;
    }
    consumers_.push(&cons);
    cond_.signal();
    lock.wait(cons.cond());
    if (cons.trx() == 0)
    {
        if (error_code_ != 0)
        {
            gu_throw_error(error_code_) << "IST receiver reported error";
        }
        return EINTR;
    }
    *trx = cons.trx();
    return 0;
}
开发者ID:latinovic,项目名称:galera,代码行数:26,代码来源:ist.cpp

示例5: producer

/// producer function produces user defined messages.
ACE_THR_FUNC_RETURN producer (void *arg)
{
  Consumer* c = static_cast<Consumer*> (arg);
  ACE_ASSERT(c!=0);
  if (c==0)
  {
    ACE_ERROR((LM_ERROR,
               ACE_TEXT("producer Error casting to consumer\n")));
    return (ACE_THR_FUNC_RETURN)-1;
  }
  for (int i=0;i!=NUMBER_OF_MSGS;++i)
  {
    User_Defined_Msg* pMsg=0;
    ACE_NEW_NORETURN(pMsg, User_Defined_Msg(i));
    if (pMsg==0)
    {
      ACE_ERROR((LM_ERROR,
                 ACE_TEXT("producer Error allocating data %p\n"),
                 "err="));
      return (ACE_THR_FUNC_RETURN)-1;
    }
    if(c->putq (pMsg)==-1)
    {
      ACE_ERROR((LM_ERROR,
                 ACE_TEXT("producer Error putq data %p\n"),
                 "err="));
      return (ACE_THR_FUNC_RETURN)-1;
    }
  }
  return 0;
}
开发者ID:binghuo365,项目名称:BaseLab,代码行数:32,代码来源:Task_Ex_Test.cpp

示例6: ACE_TMAIN

int
ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
  Consumer consumer;

  return consumer.run (argc, argv);
}
开发者ID:asdlei00,项目名称:ACE,代码行数:7,代码来源:Consumer.cpp

示例7: send

   static void send(std::string message)
   {
      // on first call to this method, the consumer is launched
      static Consumer client;

      // send the message to the consumer
      client.send(message);
   }
开发者ID:themattrix,项目名称:cnake,代码行数:8,代码来源:producer.cpp

示例8:

void *start_Consuming(void* param) {

	Consumer* con = (Consumer*) param;

	con->Consuming();

	pthread_exit((void *) NULL);
}
开发者ID:pfuhlert,项目名称:ConsumerProducerQueue,代码行数:8,代码来源:Consumer.cpp

示例9: producerConsumer

void tst_QSemaphore::producerConsumer()
{
    Producer producer;
    Consumer consumer;
    producer.start();
    consumer.start();
    producer.wait();
    consumer.wait();
}
开发者ID:Mr-Kumar-Abhishek,项目名称:qt,代码行数:9,代码来源:tst_qsemaphore.cpp

示例10: main

int main(int argc, char * argv[])
{
    Consumer* consumer = new Consumer;
    Producer* producer = new Producer(consumer);
    producer->open(0);
    consumer->open(0);
    //Wait for all the tasks to exit. 
	ACE_Thread_Manager::instance()->wait();

    return 0;
}
开发者ID:air2013,项目名称:huapuyu,代码行数:11,代码来源:main.cpp

示例11: main

//! [5]
int main(int argc, char *argv[])
//! [5] //! [6]
{
    QCoreApplication app(argc, argv);
    Producer producer;
    Consumer consumer;
    producer.start();
    consumer.start();
    producer.wait();
    consumer.wait();
    return 0;
}
开发者ID:CodeDJ,项目名称:qt5-hidpi,代码行数:13,代码来源:waitconditions.cpp

示例12: main

int main()
{
    usedSpace += BufferSize;

    Producer producer;
    Consumer consumer;
    producer.start();
    consumer.start();
    producer.wait();
    consumer.wait();
    return 0;
}
开发者ID:EleVenPerfect,项目名称:OTHERS,代码行数:12,代码来源:semaphores.cpp

示例13: processPayload

 void
 processPayload(Consumer& c, const uint8_t* buffer, size_t bufferSize)
 {
   std::string content1((char*)buffer, bufferSize);
   
   Name prefix;
   c.getContextOption(PREFIX, prefix);
   Name suffix;
   c.getContextOption(SUFFIX, suffix);
   
   std::cout << "CONTENT for " << prefix << suffix << std::endl;
 }
开发者ID:jdlee6461,项目名称:Consumer-Producer-API,代码行数:12,代码来源:async-consumer.cpp

示例14: GetOperator

inline void Type_::GiveElements(
	TheFrontPushOperation & theFrontPushOperation,
	Consumer & theConsumer
) {
	theConsumer.TakeElement(
		GetOperator()
	);
	if (
		!theFrontPushOperation.thisProgram.IsEmpty()
	) {
		theConsumer.TakeQuotedElements(theFrontPushOperation.thisProgram);
	}
}
开发者ID:sparist,项目名称:Om,代码行数:13,代码来源:front_push_operation.cpp

示例15: GetOperator

inline void Type_::GiveElements(
	ThePairOperation & thePairOperation,
	Consumer & theConsumer
) {
	theConsumer.TakeElement(
		GetOperator()
	);
	if (
		!thePairOperation.thisExpression.IsEmpty()
	) {
		theConsumer.TakeQuotedElements(thePairOperation.thisExpression);
	}
}
开发者ID:sparist,项目名称:Om,代码行数:13,代码来源:pair_operation.cpp


注:本文中的Consumer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。