Esempio n. 1
0
void joinChannel(char *chName, clientNode *client) {
   channelNode *channel = searchChannel(chName);

   if(channel == NULL)
       channel = addChannel(chName);

   addRef(client, &(channel->refHead));
}
Esempio n. 2
0
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;
    }
}
Esempio n. 3
0
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;
	}
}
Esempio n. 4
0
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;
	}
}
Esempio n. 5
0
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;
	}
Esempio n. 6
0
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;
	}
Esempio n. 7
0
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;
}
Esempio n. 8
0
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);
}