示例#1
0
文件: user.c 项目: erukiti/ma
void	user_mark(char *s,char *p)
{
	op_system();
	sion_sr("select",s);
	sion_read(nowvar);
	sion_close();

	dsd_mark(p,nowvar,TRUE);
}
示例#2
0
文件: user.c 项目: erukiti/ma
void	user_sel(char *s,char *p)
{
	op_system();
	sion_sr("select",s);
	sion_read(nowvar);
	sion_close();

	dsd_select(p,nowvar);
}
示例#3
0
文件: user.c 项目: erukiti/ma
void	ulist_write()
{
	uint	i;

	op_user();
	for(i=1;i<user.member;++i)
		ulist_set(i,nowvar);
	sion_close();
}
示例#4
0
文件: user.c 项目: erukiti/ma
void	prof_read(uint i)
{
	if (i==0||i>user.member)
		return;

	op_user();
	if (sion_sr("user",lpu(i,0))==2)
		sion_pageout(); else
		msgout(IC_nok "プロフィールは登録されていません。");
	sion_close();
}
示例#5
0
文件: user.c 项目: erukiti/ma
void	prof_writeafter(uint f)
{
	if (!f)
		{
		 msgout(IC_stop "書き込みを中止しました。");
		 return;
		}
	op_user();
	sion_sr("user",lpu(user.number,0));
	sion_write(op_temp("r"),user.var);
	msgout(IC_ok "書き込みをしました。");
	sys_log("| prof書き込み");
	sion_close();
}
示例#6
0
文件: user.c 项目: erukiti/ma
SHELL	void	user_set(uint id)
{
	if (id>user.member)
		return ;

	op_user();
	sion_sr("user",lpu(id,0));
	sion_read(user.var);
	sion_sr("mptr",lpu(id,0));
	sion_read(user.mptr);
	sion_close();

	user_rep(id);
}
示例#7
0
文件: user.c 项目: erukiti/ma
void	user_init()
{
	user.defs=varinit(LN_str,MAX_var);
	user.var=varinit(LN_str,MAX_var);
	user.mptr=varinit(LN_longdig,MAX_var);

	user.member=atoi(getvar("member",sys.var));

	op_system();
	sion_sr("def","signup");
	sion_read(user.defs);
	sion_close();

	ulist_init();
}
示例#8
0
文件: user.c 项目: erukiti/ma
void	user_guest(char *s)
{
	char 	buf[LN_buf+1];

	op_user();
	sion_sr("user",lpu(0,0));
	sion_read(user.var);
	sion_sr("mptr",lpu(0,0));
	sion_read(user.mptr);
	sion_close();

	sprt(buf,nps(s,LN_handle-6),"(旅人)",NULL);
	setvar("handle",buf,user.var);

	user_rep(0);
}
示例#9
0
文件: user.c 项目: erukiti/ma
void	ulist_init()
{
	uint	i;

	user.list=lmalloc(sizeof(ulist_t) *(MAX_user+1));
	if (user.list==NULL)
		error(lpu(farcoreleft(),0));

	op_user();
	for (i=0;i<=user.member;++i)
		{
		 if (sion_sr("user",lpu(i,0))==0)
		 	continue;
		 sion_read(nowvar);
		 ulist_rep(i,nowvar);
		}
	sion_close();
}
示例#10
0
文件: host.c 项目: erukiti/ma
SHELL	void	sys_fin()
{
	setvar("member",lpu(user.member,0),sys.var);
	setvar("execute",lpu(sys.execute,0),sys.var);
	setvar("logon",lpu(sys.logon,0),sys.var);
	setvar("post",lpu(sys.post,0),sys.var);
	setvar("poolmax",lpu(pool.max,0),sys.var);

	setvar("tdlogon",lpu(sys.t_logon,0),sys.var);
	setvar("tdpost" ,lpu(sys.t_post,0),sys.var);

	ulist_write();

	op_system();
	sion_sr("config","system");
	sion_write(NULL,sys.var);
	varfin(sys.result);
	varfin(sys.var);
	varfin(nowvar);
	sion_close();
/*	sys_log("●システム終了");*/
}
示例#11
0
文件: user.c 项目: erukiti/ma
SHELL	void	user_write()
{
	if (user.number==0)
		return ;
	op_user();

	setvar("mode",lpu((!ch.frug.esc)?1:0|(ch.frug.onekey)?2:0,0),user.var);

	setvar("post"  ,lpu(ulist_getpost  (user.number),0),user.var);
	setvar("mpost" ,lpu(ulist_getmpost (user.number),0),user.var);
	setvar("login" ,lpu(ulist_getlogin (user.number),0),user.var);
	setvar("mlogin",lpu(ulist_getmlogin(user.number),0),user.var);
	setvar("wp"    ,lpu(ulist_getwp    (user.number),0),user.var);

	sion_sr("user",lpu(user.number,0));
	sion_write(NULL,user.var);
	sion_sr("mptr",lpu(user.number,0));
	sion_write(NULL,user.mptr);
	sion_close();

	user_rep(user.number);
}
示例#12
0
文件: host.c 项目: erukiti/ma
void	sys_init()
{
	char	*p,buf[LN_buf+1];
	char	t;
	time_t	e,s;

	ch.frug.called=0;
	ch.frug.monitor=1;
	ch.frug.esc=0;
	ch.fp=NULL;
	sys.rs=FALSE;
/*	ch.env=NULL;*/

/*	debug_start();*/
	ed_init();
	sion_init();
	nowvar=varinit(LN_str,MAX_var);
	sys.var=varinit(LN_str,MAX_var);
	sys.result=varinit(LN_result,MAX_var);

	strcpy(sys.home,".");
	op_system();
	if (sion_sr("config","system")==0)
		{
		 exit(1);
		}
	sion_read(sys.var);
	sion_sr("config","result");
	sion_read(sys.result);

	sion_close();

	sys.execute=atoi(getvar("execute",sys.var))+1;
	sys.logon  =atoi(getvar("logon",sys.var));
	sys.post   =atoi(getvar("post",sys.var));

	sys.t_logon=atoi(getvar("tdlogon",sys.var));
	sys.t_post =atoi(getvar("tdpost",sys.var));

	strjncpy(sys.netname,getvar("netname",sys.var),LN_title);
	strjncpy(sys.netid,getvar("netid",sys.var),LN_netid);
	strjncpy(sys.home ,getvar("home",sys.var),LN_dirs);
	strjncpy(sys.temp ,getvar("temp",sys.var),LN_dirs);
	pool.max=atoi(getvar("poolmax",sys.var));

	copyright();

	p=getvar("opentime",sys.var);
	tzset();	/* 時空関数がまだ現れていないので呼ぶ必要あり */

	if (p==NULL)
		{
		 sys.opentime=DT_daytime;
		 sys.starttime=0;
		}else
		{
		 p=pull(buf,p);
		 t=atoi(buf);
		 p=pull(buf,p);
		 s=(t*60+atoi(buf))*60;
		 p=pull(buf,p);
		 t=atoi(buf);
		 p=pull(buf,p);
		 e=(t*60+atoi(buf))*60;
/*dbprintf("s:%ld,e:%ld",s,e);*/
		 sys.opentime=e+(e<s?DT_daytime:0)-s;
		 sys.starttime=DT_daytime-s;
/*dbprintf("o:%ld,s:%ld",sys.opentime,sys.starttime);*/
		}

	stack_init();
	where_init();
	user_init();
	art_init();
	pool_init();

	sys.rs=rs_init();
/*	sys_log("●システム起動");*/
}
示例#13
0
int readMultiFile(char* fn, bool printanyway)
{

    int errors=0;
    std::cout << "read sion file" << std::endl;

    //output varibales for sion_open function
    sion_int32 fsblksize;
    sion_int64 *chunksize = NULL;
    int *globalranks = NULL;
    int ntasks;
    int nfiles;
    FILE *fileptr;

    int sid = sion_open(fn, "rb", &ntasks, &nfiles, &chunksize, &fsblksize, &globalranks, &fileptr);

    //values are now know
    //std::cout << "ntasks=" << ntasks << std::endl;
    //std::cout << "fsblksize=" << fsblksize << std::endl;
    //std::cout << "chunksize[0]="<< chunksize[0] << std::endl;

    //iterating the nodes(tasks)
    for (int task=0; task<ntasks; task++) {
        int NodesCount;
        double Tstart;
        double T;
        int numberOfRecords=0;
        int startBody;
        double Tresolution;
        //seek to chunks of task
        sion_seek(sid, task, 0,0);

        //while (sion_feof(sid)<1)
        //  sion_fread(&numberOfRecords, sizeof(int), 1, sid);

        //sion_seek(sid, task, 0,0);

        //read values
        sion_fread(&NodesCount, sizeof(int), 1,sid);
        sion_fread(&T, sizeof(double), 1,sid);
        sion_fread(&Tresolution, sizeof(double), 1,sid);
        int numberOfRecords_wrong;
        sion_fread(&numberOfRecords_wrong, sizeof(int), 1,sid);
        sion_fread(&startBody, sizeof(int), 1,sid);


        if (printanyway) {
            std::cout << "NodesCount=" << NodesCount << std::endl;
            std::cout << "T=" << T << std::endl;
            std::cout << "Tresolution=" << Tresolution << std::endl;
            //std::cout << "numberOfRecords=" << numberOfRecords << std::endl;
            std::cout << "startBody=" << startBody << std::endl;
        }


        if (!inBoundaries(NodesCount, NodesCount_B)) {
            std::cerr << "NodesCount not in Boundaries" << std::endl;
            return errors+1;;
        }

        if (!inBoundaries(T, T_B)) {
            std::cerr << "T not in Boundaries" << std::endl;
            errors++;
        }

        if (!inBoundaries(Tresolution, Tresolution_B)) {
            std::cerr << "Tresolution not in Boundaries" << std::endl;
            errors++;
        }

        /*if (!inBoundaries(numberOfRecords, numberOfRecords_B)) {
          std::cerr << "numberOfRecords not in Boundaries" << std::endl;
          return errors+1;;
        }*/

        //read and store header information
        std::map<int,Multi> idMap;
        for (int i=0; i<NodesCount; i++) {
            int multi_id;
            Multi multi;

            double interval;
            int numberOfValues;
            sion_fread(&multi_id, sizeof(int), 1,sid);
            sion_fread(&multi.neuron_id, sizeof(int), 1,sid);
            sion_fread(&multi.interval, sizeof(double), 1,sid);
            sion_fread(&multi.numberOfValues, sizeof(int), 1,sid);

            /*std::cout << "Node " << i << ":" << std::endl;
            std::cout << "\tmultimeter_id=" << multi_id << std::endl;
            std::cout << "\tneuron_id=" << multi.neuron_id << std::endl;
            std::cout << "\tinterval=" << multi.interval << std::endl;
            std::cout << "\tnumberOfValues=" << multi.numberOfValues << std::endl;*/

            if (!inBoundaries(multi.numberOfValues, numberOfValues_B)) {
                std::cerr << "multi.numberOfValues not in Boundaries" << std::endl;
                std::cerr << "multi.numberOfValues=" << multi.numberOfValues << std::endl;
                return errors+1;;
            }


            for (int v=0; v<multi.numberOfValues; v++) {
                char valueName[20];
                sion_fread(&valueName, 20, 1, sid);
                multi.valuesNames.push_back(valueName);
            }
            idMap.insert(std::pair<int,Multi>(multi_id,multi));

            /*std::cout << "\tvaluesNames=" << multi.valuesNames.at(0) ;
            for (int v=1; v<multi.numberOfValues; v++) {
            std::cout << "," << multi.valuesNames.at(v);
                 }
                 std::cout << std::endl;*/
        }

        double v[10];

        //read body of file

        //std::cout << "\t\tSTATUS\tM_ID\tN_ID\tTIMESTAMP\tVALUES" << std::endl;
        while (sion_feof(sid)<1) {
            int multi_id;
            sion_fread(&multi_id, sizeof(int), 1, sid);

            //if end of file multi_id contains numberOfRecords value
            if (sion_feof(sid)>0) {
                if (numberOfRecords != multi_id) {
                    std::cerr << "ERROR: numberOfRecords read != numberOfRecordss counted" << std::endl;
                    std::cerr << "numberOfRecords read ="<< multi_id <<std::endl;
                    std::cerr << "numberOfRecords counted ="<< numberOfRecords <<std::endl;
                    errors++;
                }
                break;
            }
            numberOfRecords++;
            int neuron_id;
            int numberOfValues;
            int timestamp;
            sion_fread(&neuron_id, sizeof(int), 1, sid);
            sion_fread(&timestamp, sizeof(int), 1, sid);
            sion_fread(&numberOfValues, sizeof(int), 1, sid);

            if (numberOfValues != idMap[multi_id].numberOfValues) {
                std::cerr << "ERROR: numberOfValues != idMap[multi_id].numberOfValues" << std::endl;
                std::cerr << "numberOfValues=" << numberOfValues << std::endl;
                std::cerr << "idMap[" << multi_id <<"].numberOfValues=" << idMap[multi_id].numberOfValues << std::endl;
            }
            sion_fread(&v, sizeof(double),idMap[neuron_id].numberOfValues,sid);

            bool valueNotInBoundaries=false;
            for (int i=1; i<idMap[multi_id].numberOfValues; i++) {
                valueNotInBoundaries = (valueNotInBoundaries || inBoundaries(v[i], values_B));
            }

            if (!inBoundaries(multi_id, multimeter_id_B) ||
                    !inBoundaries(neuron_id, neuron_id_B) ||
                    !inBoundaries(numberOfValues, numberOfValues_B) ||
                    !inBoundaries(timestamp, timestamp_B) ||
                    valueNotInBoundaries || printanyway)
            {
                std::cerr << "OOB\t" << multi_id << "\t" << neuron_id << "\t" << timestamp << "\t";
                std::cerr << idMap[neuron_id].valuesNames.at(0) << "=" << v[0];
                for (int i=1; i<idMap[neuron_id].numberOfValues; i++) {
                    std::cerr << "\t" << idMap[neuron_id].valuesNames.at(i) << "=" << v[i];
                }
                std::cerr << std::endl;
                errors++;
            }
        }
    }


    //close file
    sion_close(sid);
    return errors;
}
示例#14
0
int readSpikeFile(char* fn, bool printanyway)
{
    sion_int32 fsblksize;
    sion_int64 *chunksize = NULL;
    int *globalranks = NULL;
    int ntasks;
    int nfiles;
    int sid = sion_open(fn, "rb", &ntasks, &nfiles, &chunksize, &fsblksize, &globalranks, NULL);

    //std::cout << "ntasks: " << ntasks << std::endl;
    //std::cout << "chunksize[0]: " << chunksize[0] << std::endl;
    //std::cout << "fsblksize: " << fsblksize << std::endl;

    int errors=0;

    for (int task=0; task<ntasks; task++) {

        sion_seek(sid, task, 0,0);

        int nodesCount;
        double T;
        double Tresolution;
        int numberOfRecords=0;
        int startOfBody;

        //while (sion_feof(sid)<1)
        //  sion_fread(&numberOfRecords, sizeof(int), 1, sid);

        sion_seek(sid, task, 0,0);

        sion_fread(&nodesCount, sizeof(int), 1, sid);
        sion_fread(&T, sizeof(double), 1, sid);
        sion_fread(&Tresolution, sizeof(double), 1, sid); // should be Tresolution
        int numberOfRecords_wrong;
        sion_fread(&numberOfRecords_wrong, sizeof(int), 1, sid);
        sion_fread(&startOfBody, sizeof(int), 1, sid);

        /*std::cout << "task " << task << ":" << std::endl;
        std::cout << "\tchunksize: " << chunksize[task] << std::endl;
        std::cout << "\tglobalranks: " << globalranks[task] << std::endl;
        std::cout << std::endl;*/
        if (printanyway) {
            std::cout << "\tnodesCount: " << nodesCount << std::endl;
            std::cout << "\tT: " << T << std::endl;
            std::cout << "\tTresolution: " << Tresolution << std::endl;
            std::cout << "\tstartOfBody: " << startOfBody << std::endl;
            //std::cout << "\tnumberOfRecords: " << numberOfRecords << std::endl;
        }

        //int spikedetector_id;

        /*if (!inBoundaries(numberOfRecords, numberOfRecords_B)) {
          std::cerr << "numberOfRecords is not in Boundaries" << std::endl;
          std::cerr << "numberOfRecords=" << numberOfRecords << std::endl;
          return errors+1;
        }*/

        //std::cout << "\t\tSTATUS\tSD_ID\tN_ID\tTIMESTAMP" << std::endl;
        while (sion_feof(sid)<1) {
            int spikedetector_id;
            sion_fread(&spikedetector_id, sizeof(int), 1, sid);

            //if end of file multi_id contains numberOfRecords value
            if (sion_feof(sid)>0) {
                if (numberOfRecords != spikedetector_id) {
                    std::cerr << "ERROR: numberOfRecords read != numberOfRecordss counted" << std::endl;
                    std::cerr << "numberOfRecords read ="<< spikedetector_id <<std::endl;
                    std::cerr << "numberOfRecords counted ="<< numberOfRecords <<std::endl;
                    errors++;
                }
                break;
            }
            numberOfRecords++;

            int neuron_id;
            int timestamp;
            sion_fread(&neuron_id, sizeof(int), 1, sid);
            sion_fread(&timestamp, sizeof(int), 1, sid);

            if (!inBoundaries(spikedetector_id, spikedetector_id_B) ||
                    !inBoundaries(neuron_id, neuron_id_B) ||
                    !inBoundaries(timestamp, timestamp_B) || printanyway )	{

                std::cerr << "\t\tOOB\t";
                std::cerr << spikedetector_id << "\t";
                std::cerr << neuron_id << "\t";
                std::cerr << timestamp << std::endl;

                errors++;

            }
        }
    }

    sion_close(sid);
    return errors;
}