void PipeSubscriber<Message>::PushMessage(const Message& msg) { /** * Remember, only one thread is allowed to publish... */ if ( forwardMessage ) { if (batching) { // Already locked... onNewMessage(msg); } else { Lock notifyLock(onNotifyMutex); // No need to re-check post-lock since it is not possible to // unset the onNewMessage callback onNewMessage(msg); } } else { if (batching) { if ( !messages.push(msg) ) { throw PushToFullQueueException {msg}; } } else { if (notifyOnMessage) { Lock notifyLock(onNotifyMutex); if ( !messages.push(msg) ) { throw PushToFullQueueException {msg}; } if (notifyOnMessage) { NotifyNextMessage(); } } else { if ( !messages.push(msg) ) { throw PushToFullQueueException {msg}; } if (notifyOnMessage) { Lock notifyLock(onNotifyMutex); if (notifyOnMessage) { NotifyNextMessage(); } } } } } }
//-------------------------------------------------------------- void testApp::keyPressed(int key){ if(key == 'a' || key == 'A'){ ofxOscMessage m; m.setAddress("/test"); m.addIntArg(1); m.addFloatArg(3.5f); m.addStringArg("hello"); m.addFloatArg(ofGetElapsedTimef()); sender.sendMessage(m); } if(key == 'g' || key == 'G'){ string message = "g|1"; onNewMessage(message); } if(key == 'h' || key == 'H'){ string message = "h|0"; onNewMessage(message); } if(key == 'i' || key == 'I'){ string message = "i|1"; onNewMessage(message); } if(key == 'j' || key == 'J'){ string message = "j|1"; onNewMessage(message); } if(key == 'w' || key == 'W'){ string message = "c|1"; onNewMessage(message); } if(key == 's' || key == 'S'){ string message = "c|0"; onNewMessage(message); } if(key == 'e' || key == 'E'){ string message = "d|1"; onNewMessage(message); } if(key == 'd' || key == 'D'){ string message = "d|0"; onNewMessage(message); } if(key == 'r' || key == 'R'){ string message = "l|1"; onNewMessage(message); } if(key == 'f' || key == 'F'){ string message = "l|0"; onNewMessage(message); } }
void JMessageSessionHandler::handleMessageSession(Jreen::MessageSession *session) { Q_ASSERT(session); session->registerMessageFilter(new JMessageReceiptFilter(m_account,session)); QObject::connect(session, SIGNAL(messageReceived(Jreen::Message)), m_account->roster(), SLOT(onNewMessage(Jreen::Message))); }
void ShapeBase::setMessage(const MarkerConstPtr& message) { MarkerConstPtr old = message_; message_ = message; expiration_ = ros::Time(0);// + message->lifetime; onNewMessage(old, message); }