void nsGopherContentStream::OnCallbackPending() { nsresult rv; // We have a callback, so failure means we should close the stream. if (!mSocket) { rv = OpenSocket(CallbackTarget()); } else if (mSocketInput) { rv = mSocketInput->AsyncWait(this, 0, 0, CallbackTarget()); } if (NS_FAILED(rv)) CloseWithStatus(rv); }
nsresult nsGopherContentStream::OnSocketWritable() { // Write to output stream (we can do this in one big chunk) nsresult rv = SendRequest(); if (NS_FAILED(rv)) return rv; // Open input stream nsCOMPtr<nsIInputStream> input; rv = mSocket->OpenInputStream(0, 0, 0, getter_AddRefs(input)); if (NS_FAILED(rv)) return rv; mSocketInput = do_QueryInterface(input, &rv); NS_ASSERTION(CallbackTarget(), "where is my pending callback?"); rv = mSocketInput->AsyncWait(this, 0, 0, CallbackTarget()); return rv; }
void CATextToolBarView::addButton(const std::string& strBtnText, CAObject* target, SEL_CallFunc selector) { m_CallbackTargets.push_back(CallbackTarget(target, selector, strBtnText)); }