Пример #1
0
void ui_menu_control_device_image::load_software_part()
{
	astring temp_name(swi->shortname);
	temp_name.cat(":");
	temp_name.cat(swp->name);
	hook_load(temp_name, true);
}
Пример #2
0
bool BingoGame::imprimir_cartones(const char* template_name)
{
	std::string str;
	std::ofstream index_file;
	std::string temp_name(template_name);
	name = temp_name.substr(0, temp_name.length() - 4);
	index_file.open((name + ".idx").c_str());
	if ( ! index_file )
	{
		std::cerr << "toc: could not create index document" << std::endl;
		return false;
	}
	index_file << numero_cartones << std::endl;
	std::vector < std::string > temp(25);
    for (size_t i = 0; i < numero_cartones ; ++i)
	{
		card_shuffle();
		str = "";
		str = name + "-" + std::to_string(i) + ".svg";
		Carton nuevo(words);
		if ( ! nuevo.imprimir_carta(template_name, str.c_str(), i) )
		{
			std::cerr << "toc: could not print document(clase bingo)" << std::endl;
			return false;
		}
		nuevo.copiar_vector(temp);
		index_file << std::to_string(i) << std::endl;
		for (int j = 0; j < 25; ++j)
			index_file << temp[j] << std::endl;
		index_file << std::endl;
	}
	index_file.close();
	//std::cerr << "se imprimio carton" << std::endl;
	return true;
}
Пример #3
0
void *read(void *input){
  struct Params *params = (struct Params*)input;
  int MSGBUFSIZE = 256;
  char msgbuf[MSGBUFSIZE];
  int nbytes;
  int s = params->s;
  struct sockaddr_in addr = params->myaddr;
  socklen_t addrlen=sizeof(params->myaddr);

  while (1) {
    addrlen=sizeof(addr);
    if ((nbytes=recvfrom(s,msgbuf,MSGBUFSIZE,0,(struct sockaddr *) &addr  ,&addrlen)) < 0) {
        perror("recvfrom");
        exit(1);
    }
    msgbuf[nbytes] = 0;
    if(strncmp(msgbuf,"ANNOUNCE ",9) == 0){
      char name[nbytes - 8];
      memcpy( name, &msgbuf[9], nbytes - 9 );
      name[nbytes - 8] = '\0';
      std::string temp_addr(inet_ntoa(addr.sin_addr));
      std::string temp_name(name);
      table[temp_name] = temp_addr;
      std::cout << "announce: " << name << std::endl;

    }
    else {
    std::cout << "message: " << msgbuf << std::endl;
  }
  }
  pthread_exit(NULL);
}
Пример #4
0
int callback(void *map_ptr, int argc, char **argv, char ** azColName)
{
    //This function returns only one row of records each time it is called
    static int Row_num = 1;
    for(int i=0; i<argc; i++) {
        string temp_id(azColName[i]), temp_name(argv[i]);
        (*(map_table *)map_ptr)[Row_num][temp_id] = temp_name;
    }
    Row_num++;
    return 0;
}
Пример #5
0
  virtual UT_Error _loadFile(GsfInput * input)
  {
    UT_Error rval = UT_ERROR;

	UT_String pdf_on_disk, abw_on_disk;

	// create temporary file names
	rval = temp_name (pdf_on_disk);
	if (rval != UT_OK) return rval;

	rval = temp_name (abw_on_disk);
	if (rval != UT_OK) return rval;

	GsfOutput * output = gsf_output_stdio_new (pdf_on_disk.c_str (), NULL);
	if (output)
		{
			// copy input to disk
			gboolean copy_res = gsf_input_copy (input, output);

			gsf_output_close (output);
			g_object_unref (G_OBJECT (output));

			if (copy_res)
				{
					for (size_t i = 0; i < G_N_ELEMENTS(pdf_conversion_programs); i++)
						{
							if ((rval = _runConversion(pdf_on_disk, abw_on_disk, i)) == UT_OK)
								break;
						}
				}			
		}

	// remove temporary files
	remove(pdf_on_disk.c_str ());
	remove(abw_on_disk.c_str ());

    return rval;
  }
Пример #6
0
autovar(register int nelt0, register int t, expptr lengp, char *name)
#endif
{
	ftnint leng;
	register Addrp q;
	register int nelt = nelt0 > 0 ? nelt0 : 1;
	extern char *av_pfix[];

	if(t == TYCHAR)
		if( ISICON(lengp) )
			leng = lengp->constblock.Const.ci;
		else	{
			Fatal("automatic variable of nonconstant length");
		}
	else
		leng = typesize[t];

	q = ALLOC(Addrblock);
	q->tag = TADDR;
	q->vtype = t;
	if(t == TYCHAR)
	{
		q->vleng = ICON(leng);
		q->varleng = leng;
	}
	q->vstg = STGAUTO;
	q->ntempelt = nelt;
	q->isarray = (nelt > 1);
	q->memoffset = ICON(0);

	/* kludge for nls so we can have ret_val rather than ret_val_4 */
	if (*name == ' ')
		unamstring(q, name);
	else {
		q->uname_tag = UNAM_IDENT;
		temp_name(av_pfix[t], ++autonum[t], q->user.ident);
		}
	if (nelt0 > 0)
		declare_new_addr (q);
	return(q);
}
Пример #7
0
void ui_menu_control_device_image::load_software_part()
{
	astring temp_name(sld->list_name(), ":", swi->shortname(), ":", swp->name());
	hook_load(temp_name, true);
}
Пример #8
0
//用户数据的初始化
bool userDatabase::userStart(){
    //read
    int L = username.size();
    char name[256];
    strcpy(name,"user\\");
    int  j = strlen(name);
    for(int i = 0; i < L; i++)
        name[j++] = username[i];
    name[j] = '\0';
    fstream fr(name,ios::in);
    //------------用户数据的读取---------------
    if(fr){
        char data[2048];
        int op = 0;
        while(!fr.eof()){
            fr.getline(data,2048);
            if(data[0] == '#'){
                op ++;
            }
            else{
                if(op == 1 && data[0] != '\0'){
                    string temp_name(data);
                    //cout << "can_read " << temp_name << endl;
                    int id = FindTable(temp_name);
                    //没有被用户读取到
                    if(id == -1){
                        kTable newTable;
                        newTable.name = temp_name;
                        newTable.can_read = true;
                        myTable.push_back(newTable);
                    }
                    else
                        myTable[id].can_read = true;
                }
                if(op == 2 && data[0] != '\0'){
                    string temp_name(data);
                    //cout << "can_write " << temp_name << endl;
                    int id = FindTable(temp_name);
                    if(id == -1){
                        kTable newTable;
                        newTable.name = temp_name;
                        newTable.can_write = true;
                        myTable.push_back(newTable);
                    }
                    else
                        myTable[id].can_write = true;
                }
                if(op == 3 && data[0] != '\0'){
                    string temp_name(data);
                    //
                    kView newView;
                    newView.viewname = temp_name;
                    //cout << newView.viewname << endl;
                    myView.push_back(newView);
                }
                if(op == 4 && data[0] != '\0'){
                    string temp_name(data);
                    kIndex newindex;
                    newindex.name = temp_name;
                    //cout << newindex.name << endl;
                    myIndex.push_back(newindex);
                }
            }
        }
        fr.close();
        //----------用户表数据的读取--------------
        userGetTable();
        userGetView();
        userGetIndex();
        //----------------------------------------
    }
    else{
        ofstream fr(name);
        fr << "#" << endl;
        fr << "#" << endl;
        fr.close();
    }
    //-------------------------------
    return true;
}
Пример #9
0
int main(int argc , char *argv[])
{

  if (argc !=  2){
    std::cout << "bad arguments" << std::endl;
    return 1;
  }
  char* username = argv[1];
  int s;
  if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
	perror("cannot create socket");
	return 0;
}
  struct sockaddr_in myaddr;
  memset((char *)&myaddr, 0, sizeof(myaddr));
  myaddr.sin_family = AF_INET;
  myaddr.sin_addr.s_addr = inet_addr(ADDRESS);
  myaddr.sin_port = htons(PORT);

  struct ip_mreq mreq;
  mreq.imr_multiaddr.s_addr=inet_addr(ADDRESS);
  mreq.imr_interface.s_addr=htonl(INADDR_ANY);
  int reuse = 1;
  if (setsockopt(s, SOL_SOCKET, SO_REUSEPORT, (const char*)&reuse, sizeof(reuse)) < 0) {
        fprintf(stderr, "setsockopt: %d\n", errno);
        return 1;
    }


  if (bind(s, (struct sockaddr *)&myaddr, sizeof(myaddr)) < 0) {
  	perror("bind failed");
  	return 0;
  }
  if(setsockopt(s,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mreq,sizeof(mreq))<0){
    std::cout << "error" << std::endl;
  }


  pthread_t anouncer;
  pthread_t reader;
  pthread_t privatereader;
  int rc;
  struct Params params;
  params.username = username;
  params.s = s;
  params.myaddr = myaddr;
  rc = pthread_create(&anouncer, NULL, anounce, &params);
  if (rc){
   std::cout << "Error:unable to create thread," << rc << std::endl;
   exit(-1);
}
  rc = pthread_create(&reader, NULL, read, &params);
  if (rc){
   std::cout << "Error:unable to create thread," << rc << std::endl;
   exit(-1);
  }
  rc = pthread_create(&privatereader, NULL, privateread, &params);
  if (rc){
   std::cout << "Error:unable to create thread," << rc << std::endl;
   exit(-1);
  }
  const char* prefix = "FROM:";
  const char* suffix = " ";
  while(1){
    char input[256];
    std::cin.getline (input,256);
    char* p = input;
    int newsize = sizeof(input) + 5 + sizeof(username) + 1;
    char newmessage[newsize];
    char * p2 = newmessage;
    strcpy(p2,prefix);
    strcat(p2,username);
    strcat(p2,suffix);
    strcat(p2,p);
    std::cout << p2 << std::endl;
    if(strncmp(p,"/",1) == 0){
      //private message

      //parse username
      char * pch;
      pch = strtok(p," ");
      char name[sizeof(pch) - 1];
      memcpy( name, &pch[1], sizeof(pch) - 1 );
      std::string temp_name(name);
      std::map<std::string, std::string>::iterator it = table.find(temp_name);
      if (it == table.end())
        std::cout << "Not in table" << std::endl;
      else
      {
        //if username in db
        //send p2 to address
        struct sockaddr_in si_other;
        int s;
        socklen_t slen=sizeof(si_other);
        int buflen = 256;
        if ((s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)
          std::cout << "Socket error" << std::endl;
        memset((char *) &si_other, 0, sizeof(si_other));
        si_other.sin_family = AF_INET;
        si_other.sin_port = htons(PORT2);
        if (inet_aton(it->second.c_str(), &si_other.sin_addr)==0) {
          fprintf(stderr, "inet_aton() failed\n");
          exit(1);
        }
        if (sendto(s, p2, buflen, 0, (struct sockaddr *) &si_other, slen)==-1)
          std::cout << "send error" << std::endl;

    }
    }
    else {
      if ((sendto(s, p2, newsize, 0, (struct sockaddr *) &params.myaddr, sizeof(params.myaddr))) < 0){
          perror("Error in number of bytes");
          exit(1);
        }
    }
}

  void* status;
  rc = pthread_join(anouncer, &status);
        if (rc){
           std::cout << "Error:unable to join," << rc << std::endl;
           exit(-1);
        }
  rc = pthread_join(reader, &status);
        if (rc){
           std::cout << "Error:unable to join," << rc << std::endl;
           exit(-1);
        }
  rc = pthread_join(privatereader, &status);
        if (rc){
           std::cout << "Error:unable to join," << rc << std::endl;
           exit(-1);
        }
        std::cout << "main thread ended" << std::endl;

 }