void joinChannel(char *chName, clientNode *client) { channelNode *channel = searchChannel(chName); if(channel == NULL) channel = addChannel(chName); addRef(client, &(channel->refHead)); }
void broadcastMessage(char *message, char *sender, char *chName) { channelNode *channel = searchChannel(chName); clientRef *reader = NULL; char string[500]; if(channel == NULL) return; sprintf(string, ":%s %s\n", sender, message); reader = channel->refHead.next; while(reader != NULL){ if(strcmp(reader->nick, sender) != 0) write(reader->socket, string, strlen(string)); reader = reader->next; } }
void Box::removeChannel() { string name; cout << "Insert a channel's name: "; cin.clear(); cin.ignore(); getline(cin, name); int aux = searchChannel(name); if (aux != -1) { channels.erase(channels.begin() + aux); cout << endl << endl << "The channel \"" << name << "\", was successfully removed." << endl << endl << endl; } else { cout << endl << endl << "The channel \"" << name << "\" doesn't exist." << endl << endl << endl; } }
void Box::createChannel() { string name; vector<Program> vec; cout << "Insert a channel's name: "; cin.clear(); cin.ignore(); getline(cin, name); if (searchChannel(name) == -1) { Channel temp(name); channels.push_back(temp); cout << endl << endl << "The channel \"" << name << "\", was successfully created." << endl << endl << endl; } else { cout << endl << endl << "The channel \"" << name << "\" already exists." << endl << endl << endl; } }
TInt DIicBusController::ReleaseChannel(TInt aChannelId) { __KTRACE_OPT(KIIC, Kern::Printf("DIicBusController::ReleaseChannel, channelID = 0x%x \n",aChannelId)); TInt r = KErrNone; DIicBusChannel* chanPtr = NULL; // Get the pointer to the Slave Channel DIicBusChannelSlave* slaveChanPtr = NULL; if((r = GetSlaveChanPtr(aChannelId, slaveChanPtr)) != KErrNone) return r; DIicBusChannelSearcher searchChannel(DIicBusChannel::EMasterSlave, DIicBusChannel::ESccb, DIicBusChannel::EFullDuplex); searchChannel.SetChannelNumber(slaveChanPtr->ChannelNumber()); TInt dumIndex = iChannelArray.FindInOrder(&searchChannel, EntryOrder); if(dumIndex < 0) { return KErrNotFound; } chanPtr = iChannelArray[dumIndex]; __ASSERT_DEBUG(chanPtr!=NULL, Kern::Fault(KIicPanic,__LINE__)); //if it is the masterslave channel, then call the masterslave's RelaseChannel // which will call the slave channel's ReleaseChannel internally if(chanPtr->ChannelType() == DIicBusChannel::EMasterSlave) r = ((DIicBusChannelMasterSlave*)chanPtr)->ReleaseChannel(); else // Call the slave only ReleaseChannel r = slaveChanPtr->ReleaseChannel(); // In either case de-install the captured slave channel if(r == KErrNone) { r = DeInstallCapturedChannel(aChannelId, slaveChanPtr); } // No need to unset iController - there is only one IIC Controller return r; }
TInt DIicBusController::GetChanPtr(const TInt aBusId, TInt &aIndex, DIicBusChannel*& aChan) { __KTRACE_OPT(KIIC, Kern::Printf("DIicBusController::GetChanPtr, aBusId=0x%x\n",aBusId)); TInt32 chanId; chanId = GET_CHAN_NUM(aBusId); __KTRACE_OPT(KIIC, Kern::Printf("DIicBusController::GetChanPtr, chanId=0x%x\n", chanId)); DIicBusChannelSearcher searchChannel(DIicBusChannel::EMasterSlave, DIicBusChannel::ESccb, DIicBusChannel::EFullDuplex); searchChannel.SetChannelNumber((TInt8)chanId); TInt r = KErrNotFound; aIndex = iChannelArray.FindInOrder(&searchChannel, EntryOrder); if(aIndex >= 0) { aChan = iChannelArray[aIndex]; r = KErrNone; } __KTRACE_OPT(KIIC, Kern::Printf("DIicBusController::GetChanPtr, chanPtr=0x%x, index=%d\n", aChan, aIndex)); return r; }
bool Box::RecordProgram(string &program_name, string &channel_name){ int channel_loc = searchChannel(channel_name); Channel * channel = &channels[channel_loc]; int program = searchProgram(program_name, *channel); for (int i = 0; i < recordList.size(); i++) { if (channel->getPrograms()[program].getName()==recordList[i].getName()) { return false; } } if (currentDate.getTotalDate() > channel->getPrograms()[program].getDate().getTotalDate()) { bool state = true; channel->getPrograms()[program].setRecord(state); } recordList.push_back(channel->getPrograms()[program]); saveChannels(); saveRecorded(); return true; }
void delRef(int socket, char *chName) { channelNode *channel = searchChannel(chName); clientRef *r = NULL; if(channel != NULL) r = &(channel->refHead); while(r != NULL) { if(r->socket == socket) break; r = r->next; } if(r == NULL) return; if(r->next != NULL) r->next->prev = r->prev; if(r->prev != NULL) r->prev->next = r->next; free(r); }
void MoodBoxServer::searchChannel(Callback callback, qint32 pageNumber, qint32 recordsPerPage, QString value) { searchChannel(callback, QVariant(), pageNumber, recordsPerPage, value); }