void SchemaPrinter::Visit(const UIDFieldDescriptor *descriptor) {
  m_str << string(m_indent, ' ') << descriptor->Name() << ": UID" << endl;
}
Example #2
0
ConfigFile::ConfigFile()
	: myDelimiter( string(1,'=') ), myComment( string(1,'#') )
{
	// Construct a ConfigFile without a file; empty
}
Example #3
0
string ToStr(const glm::vec3& vec)
{
    return string("(" + ToStr(vec.x) + "," + ToStr(vec.y) + "," + ToStr(vec.z) + ")");
}
Example #4
0
bool Writer::run()
{
    for (;;) {
        /*
         * Dequeue request, control request first
         */
        shared_ptr<IORequest> request = m_link->waitIORequest();

        /*
         * Request locked area
         */
        Mutex::Autolock l(request->locker());

        shared_ptr<Package> pkg = request->getPackage();
        PackageHeader *hdr = &pkg->header;

        if (mustStop(hdr)) {
            /*
             * Quit now if stop requested
             */
            break;
        }

        /*
         * Prepare IO transfer
         */
        char *buffer = (char *)hdr;
        int hdrSize = sizeof(struct PackageHeader);
        int dataLength = hdr->dataLength;

        int transferSize = hdrSize;

        if (dataLength &&
                hdr->type != PkgType::ACK_DATA) {
            /*
             * Combined transfer if with pay-load
             */
            buffer = const_cast<char *>(pkg->data) - hdrSize;

            memmove(buffer, hdr, hdrSize);

            transferSize += dataLength;
        }

        /*
         * Do IO transfer
         */
        bool writeOK = false;
        bool syncOK = true;

        writeOK = write(buffer, transferSize);
        if (writeOK && request->isNeedSync()) {
            /*
             * Synchronization needed, so do flush
             */
            syncOK = m_link->flush();
        }

        if (!writeOK) {
            /*
             * Dump header when error occur
             */
            Log::e(LOG_TAG, "Failed to write package: ");
            hdr->dump();
        }

        if (request->isWaitSend()) {
            /*
             * Wake up sender
             */
            request->complete(writeOK && syncOK ?
                                UniconnectErrorCode::ENOERROR :
                                UniconnectErrorCode::ELINKDISCONNECTED);
        }

        /*
         * Debug stuff
         */
        if (Log::isDebugEnabled()) {
            Log::d(string(LOG_TAG).c_str(),
                    "Data Path: Package: %s,"
                    " Data length: %d --------------> Port: %u,"
                    " Send Result: %s",
                    PackageHeader::typeToString(hdr->type),
                    hdr->dataLength,
                    hdr->port,
                    writeOK && syncOK ? "Success." : "Failed.");
        }
    }

    return false;
}
void XapianIndex::removeCommonTerms(Xapian::Document &doc)
{
	DocumentInfo docInfo;
	set<string> commonTerms;
	string record(doc.get_data());

	// First, remove the magic term
	commonTerms.insert(MAGIC_TERM);

	if (record.empty() == true)
        {
		// Nothing else we can do
		return;
	}

	string language(StringManip::extractField(record, "language=", "\n"));
	string timestamp(StringManip::extractField(record, "timestamp=", "\n"));

	docInfo = DocumentInfo(StringManip::extractField(record, "caption=", "\n"),
		StringManip::extractField(record, "url=", "\n"),
		StringManip::extractField(record, "type=", "\n"),
		Languages::toLocale(language));
	// We used to use timestamp prior to 0.60
	if (timestamp.empty() == true)
	{
		string modTime(StringManip::extractField(record, "modtime=", "\n"));
		if (modTime.empty() == false)
		{
			time_t timeT = (time_t )atol(modTime.c_str());
			timestamp = TimeConverter::toTimestamp(timeT);
		}
	}
	docInfo.setTimestamp(timestamp);
	string bytesSize(StringManip::extractField(record, "size=", ""));
	if (bytesSize.empty() == false)
	{
		docInfo.setSize((off_t )atol(bytesSize.c_str()));
	}
	Url urlObj(docInfo.getLocation());

	// FIXME: remove terms extracted from the title if they don't have more than one posting
	string title(docInfo.getTitle());
	if (title.empty() == false)
	{
		Document titleDoc;
		titleDoc.setData(title.c_str(), title.length());
		Tokenizer titleTokens(&titleDoc);
		removeFirstPostingsFromDocument(titleTokens, doc, "S", language, STORE_UNSTEM);
		titleTokens.rewind();
		removeFirstPostingsFromDocument(titleTokens, doc, "", language, m_stemMode);
	}

	// Location 
	commonTerms.insert(string("U") + XapianDatabase::limitTermLength(Url::escapeUrl(docInfo.getLocation()), true));
	// Host name
	string hostName(StringManip::toLowerCase(urlObj.getHost()));
	if (hostName.empty() == false)
	{
		commonTerms.insert(string("H") + XapianDatabase::limitTermLength(hostName, true));
		string::size_type dotPos = hostName.find('.');
		while (dotPos != string::npos)
		{
			commonTerms.insert(string("H") + XapianDatabase::limitTermLength(hostName.substr(dotPos + 1), true));

			// Next
			dotPos = hostName.find('.', dotPos + 1);
		}
	}
	// ...location
	string tree(urlObj.getLocation());
	if (tree.empty() == false)
	{
		commonTerms.insert(string("XDIR:") + XapianDatabase::limitTermLength(Url::escapeUrl(tree), true));
		if (tree[0] == '/')
		{
			commonTerms.insert("XDIR:/");
		}
		string::size_type slashPos = tree.find('/', 1);
		while (slashPos != string::npos)
		{
			commonTerms.insert(string("XDIR:") + XapianDatabase::limitTermLength(Url::escapeUrl(tree.substr(0, slashPos)), true));

			// Next
			slashPos = tree.find('/', slashPos + 1);
		}
	}
	// ...and file name
	string fileName(urlObj.getFile());
	if (fileName.empty() == false)
	{
		string extension;

		commonTerms.insert(string("P") + XapianDatabase::limitTermLength(Url::escapeUrl(fileName), true));

		// Does it have an extension ?
		string::size_type extPos = fileName.rfind('.');
		if ((extPos != string::npos) &&
			(extPos + 1 < fileName.length()))
		{
			extension = StringManip::toLowerCase(fileName.substr(extPos + 1));
		}
		commonTerms.insert(string("XEXT:") + XapianDatabase::limitTermLength(extension));
	}
	// Date terms
	time_t timeT = TimeConverter::fromTimestamp(docInfo.getTimestamp());
	struct tm *tm = localtime(&timeT);
	string yyyymmdd = TimeConverter::toYYYYMMDDString(tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday);
	if (yyyymmdd.length() == 8)
	{
		commonTerms.insert(string("D") + yyyymmdd);
		commonTerms.insert(string("M") + yyyymmdd.substr(0, 6));
		commonTerms.insert(string("Y") + yyyymmdd.substr(0, 4));
	}
	// Language code
	commonTerms.insert(string("L") + Languages::toCode(language));
	// MIME type
	commonTerms.insert(string("T") + docInfo.getType());

	for (set<string>::const_iterator termIter = commonTerms.begin(); termIter != commonTerms.end(); ++termIter)
	{
		try
		{
			doc.remove_term(*termIter);
		}
		catch (const Xapian::Error &error)
		{
#ifdef DEBUG
			cout << "XapianIndex::removeCommonTerms: " << error.get_msg() << endl;
#endif
		}
	}
}
Example #6
0
int 
main( int argc, char* argv[] )
{
    Initialize( argc, argv );
    mpi::Comm comm = mpi::COMM_WORLD;
    const int commRank = mpi::Rank( comm );

    try
    {
        const int nc = Input("--nc","number of coils",16);
        const int nt = Input("--nt","number of timesteps",10);
        const int N0 = Input("--N0","bandwidth in x direction",6);
        const int N1 = Input("--N1","bandwidth in y direction",6);
        const int nnu  = Input("--nnu","number of non-uniform nodes",36);
        const int n0 = Input("--n0","FFT size in x direction",16);
        const int n1 = Input("--n1","FFT size in y direction",16);
        const int m = Input("--m","cutoff parameter",2);
        const bool tv = Input("--tv","TV clipping for sparsity",true);
        const double lambdaL = Input("--lambdaL","low-rank scale",0.025);
        const double lambdaSRel = Input("--lambdaSRel","sparse rel scale",0.5);
        const double relTol = Input("--relTol","relative L+S tolerance",0.0025);
        const int maxIts = Input("--maxIts","max L+S iterations",100);
        const bool tryTSQR = Input("--tryTSQR","try Tall-Skinny QR?",false);
        const bool progress = Input("--progress","print L+S progress",true);
        const string sensName = 
            Input("--sens","sens. filename",string("sensitivity.bin"));
        const string densName = 
            Input("--dens","density filename",string("density.bin"));
        const string pathsName = 
            Input("--path","paths filename",string("paths.bin"));
        const string dataName = 
            Input("--data","data filename",string("data.bin"));
        const bool display = Input("--display","display matrices?",false);
        const bool write = Input("--write","write matrices?",true);
#ifdef HAVE_QT5
        const int formatInt = Input("--format","format to store matrices",5);
#else
        const int formatInt = Input("--format","format to store matrices",1);
#endif
        ProcessInput();
        PrintInputReport();

        if( formatInt < 1 || formatInt >= FileFormat_MAX )
            LogicError("Format integer must be in [1,",FileFormat_MAX,")");
        const auto format = static_cast<El::FileFormat>(formatInt);

        mpi::Barrier( comm );
        const double loadStart = mpi::Time();
        if( commRank == 0 )
        {
            std::cout << "Loading files...";
            std::cout.flush();
        }

        DistMatrix<double,STAR,STAR> densityComp;
        LoadDensity( nnu, nt, densName, densityComp );

        DistMatrix<Complex<double>,STAR,STAR> sensitivity;
        LoadSensitivity( N0, N1, nc, sensName, sensitivity );

        DistMatrix<double,STAR,STAR> paths;
        LoadPaths( nnu, nt, pathsName, paths );

        DistMatrix<Complex<double>,STAR,VR> data;
        LoadData( nnu, nc, nt, dataName, data );

        mpi::Barrier( comm );
        if( commRank == 0 )
            std::cout << "DONE. " << mpi::Time()-loadStart << " seconds" 
                      << std::endl;

        if( display )
        {
            Display( densityComp, "density compensation" );
            Display( sensitivity, "coil sensitivities" );
            Display( paths, "paths" );
            Display( data, "data" );
        }
        if( write )
        {
            Write( densityComp, "density", format );
            Write( sensitivity, "sensitivity", format );
            Write( paths, "paths", format );
            Write( data, "data", format );
        }

        // Initialize acquisition operator and its adjoint
        mpi::Barrier( comm );
        const double startInit = mpi::Time();
        if( commRank == 0 )
        {
            std::cout << "Initializing acquisition operator...";
            std::cout.flush();
        }
        InitializeAcquisition
        ( densityComp, sensitivity, paths, nc, N0, N1, n0, n1, m );
        mpi::Barrier( comm );
        if( commRank == 0 )
            std::cout << "DONE. " << mpi::Time()-startInit << " seconds"
                      << std::endl;

        mpi::Barrier( comm );
        const double startLPS = mpi::Time();
        if( commRank == 0 )
        {
            std::cout << "Starting L+S decomposition...";
            std::cout.flush();
        }
        DistMatrix<Complex<double>,VC,STAR> L, S;
        LPS
        ( data, L, S, tv, lambdaL, lambdaSRel, relTol, maxIts, 
          tryTSQR, progress );
        mpi::Barrier( comm );
        if( commRank == 0 )
            std::cout << "DONE. " << mpi::Time()-startLPS << " seconds"
                      << std::endl;

        if( write )
            WriteLPS( L, S, N0, N1, 0, tv, format );
    }
    catch( std::exception& e ) { ReportException(e); }

    Finalize();
    return 0;
}
Example #7
0
void Cam::enumerate()
{
  string v4l_path = "/sys/class/video4linux";
  DIR *d = opendir(v4l_path.c_str());
  if (!d)
    throw std::runtime_error("couldn't open " + v4l_path);
  struct dirent *ent, *ent2, *ent3;
  int fd, ret;
  struct v4l2_capability v4l2_cap;
  while ((ent = readdir(d)) != NULL)
  {
    if (strncmp(ent->d_name, "video", 5))
      continue; // ignore anything not starting with "video"
    string dev_name = string("/dev/") + string(ent->d_name);
    printf("enumerating %s ...\n", dev_name.c_str());
    if ((fd = open(dev_name.c_str(), O_RDWR)) == -1)
      throw std::runtime_error("couldn't open " + dev_name + "  perhaps the " +
                               "permissions are not set correctly?");
    if ((ret = ioctl(fd, VIDIOC_QUERYCAP, &v4l2_cap)) < 0)
      throw std::runtime_error("couldn't query " + dev_name);
    printf("name = [%s]\n", v4l2_cap.card);
    printf("driver = [%s]\n", v4l2_cap.driver);
    printf("location = [%s]\n", v4l2_cap.bus_info);
    close(fd);
    string v4l_dev_path = v4l_path + string("/") + string(ent->d_name) +
                          string("/device");
    // my kernel is using /sys/class/video4linux/videoN/device/inputX/id
    DIR *d2 = opendir(v4l_dev_path.c_str());
    if (!d2)
      throw std::runtime_error("couldn't open " + v4l_dev_path);
    string input_dir;
    while ((ent2 = readdir(d2)) != NULL)
    {
      if (strncmp(ent2->d_name, "input", 5))
        continue; // ignore anything not beginning with "input"

      DIR *input = opendir((v4l_dev_path + string("/") + string(ent2->d_name)).c_str());
      bool output_set = false;
      while ((ent3 = readdir(input)) != NULL)
      {
        if (!strncmp(ent3->d_name, "input", 5))
        {
          input_dir = (string("input/") + string(ent3->d_name )).c_str();
          output_set = true;
          break;
        }
      }
      if (!output_set)
        input_dir = ent2->d_name;
      break;
    }
    closedir(d2);
    if (!input_dir.length())
      throw std::runtime_error("couldn't find input dir in " + v4l_dev_path);
    string vid_fname = v4l_dev_path + string("/") + input_dir +
                       string("/id/vendor");
    string pid_fname = v4l_dev_path + string("/") + input_dir +
                       string("/id/product");
    string ver_fname = v4l_dev_path + string("/") + input_dir +
                       string("/id/version");
    char vid[5], pid[5], ver[5];
    FILE *vid_fp = fopen(vid_fname.c_str(), "r");
    if (!vid_fp)
      throw std::runtime_error("couldn't open " + vid_fname);
    if (!fgets(vid, sizeof(vid), vid_fp))
      throw std::runtime_error("couldn't read VID from " + vid_fname);
    fclose(vid_fp);
    vid[4] = 0;
    printf("vid = [%s]\n", vid);
    FILE *pid_fp = fopen(pid_fname.c_str(), "r");
    if (!pid_fp)
      throw std::runtime_error("couldn't open " + pid_fname);
    if (!fgets(pid, sizeof(pid), pid_fp))
      throw std::runtime_error("couldn't read PID from " + pid_fname);
    fclose(pid_fp);
    printf("pid = [%s]\n", pid);
    FILE *ver_fp = fopen(ver_fname.c_str(), "r");
    if (!ver_fp)
      throw std::runtime_error("couldn't open " + ver_fname);
    if (!fgets(ver, sizeof(ver), ver_fp))
      throw std::runtime_error("couldn't read version from " + ver_fname);
    fclose(ver_fp);
    printf("ver = [%s]\n", ver);
  }
  closedir(d);
}
int main()
{
        try
        {
                io_service ios;
                ip::tcp::resolver resolver(ios);
                ip::tcp::resolver::query query("ftp.alepho.com", "21");
                ip::tcp::resolver::iterator it = resolver.resolve(query);
                ip::tcp::endpoint endpoint = *it;
                
                ip::tcp::socket client(ios);
                client.connect(endpoint);
                const int BUFLEN = 1024;
                vector<char> buf(BUFLEN);
                
                error_code error;
                int len = client.receive(buffer(buf, BUFLEN), 0, error);
                cout.write(buf.data(), len);
                cout << endl;
        
                string request = "USER ***\r\n";
                cout << request;
                client.send(buffer(request, request.size()));
                len = client.receive(buffer(buf, BUFLEN), 0, error);
                cout.write(buf.data(), len);
                cout << endl;
                
                request = "PASS ***\r\n";
                cout << request;
                client.send(buffer(request, request.size()));
                len = client.receive(buffer(buf, BUFLEN), 0, error);
                cout.write(buf.data(), len);
                cout << endl;
                
                request = "CWD alepho.com/public_html\r\n";
                cout << request;
                client.send(buffer(request, request.size()));
                len = client.receive(buffer(buf, BUFLEN), 0, error);
                cout.write(buf.data(), len);
                cout << endl;
                
                request = "PASV\r\n";
                cout << request;
                client.send(buffer(request, request.size()));
                len = client.receive(buffer(buf, BUFLEN), 0, error);
                cout.write(buf.data(), len);
                cout << endl;
                pair<string, string> portHost = parseHostPort(string(buf.data(), len));
                
                callable call(portHost.first, portHost.second);
                thread th(call);
                
                request = "STOR hello.txt\r\n";
                cout << request;
                client.send(buffer(request, request.size()));
                len = client.receive(buffer(buf, BUFLEN), 0, error);
                cout.write(buf.data(), len);
                cout << endl;
                
                th.join();
        }
        catch (system_error& exc)
        {
                cout << "main(): exc.what()=" << exc.what() << endl;
        }


        return EXIT_SUCCESS;
}
Example #9
0
TEST_F(ProgramOptionsTest, CipherSome) {
    ProgramOptions testobj("", "", none, true, none, none, string("aes-256-gcm"), none, {"./myExecutable"});
    EXPECT_EQ("aes-256-gcm", testobj.cipher().get());
}
Example #10
0
int main(int argc, char** argv) 
{
#ifndef GFLAGS_GFLAGS_H_
    namespace gflags = google;
#endif
    gflags::SetUsageMessage("This script converts the images dataset to\n"
        "the leveldb format used by Caffe to load data.\n");
    gflags::ParseCommandLineFlags(&argc, &argv, true);

    /*  check */
    if (argc != 3) 
    {
        gflags::ShowUsageWithFlagsRestrict(argv[0],"./convert_dataset filelist.txt leveldb_path");
        return -2;
    }
    else 
        google::InitGoogleLogging(argv[0]);
    
    /*  create the leveldb, open it */
    leveldb::DB *db;
    leveldb::Options options;
    options.error_if_exists = true;
    options.create_if_missing = true;
    options.write_buffer_size = 268435456;
    unsigned long counter = 0;
    
    /*  open the leveldb file  */
    string output_db_path( argv[2] );
    LOG(INFO)<<"Opening leveldb "<<output_db_path;
    leveldb::Status status = leveldb::DB::Open( options, output_db_path.c_str(), &db );
    CHECK(status.ok()) << "Failed to open leveldb " << output_db_path<< ". Is it already existing?";
    
    /* also save the map from class_name to label ,
     * and map from label to class_name*/
    map<int, int> class_to_label;
    map<int, int> label_to_class;
    
    /* check if argv[1] is a folder */
    if( !bf::is_regular_file( string(argv[1])) )
    {
        cout<<string(argv[1])<<" is not a file !"<<endl;
        return -3;
    }
    /* iterate the folder */
    unsigned int label = 0;
    stringstream ss;

	int r, img_label, bbox_x, bbox_y, bbox_width, bbox_height;
	char img_path[30];
	FILE *fp = fopen( argv[1], "r");
	if(fp == NULL)
	{
		cout<<"can not open file "<<argv[1]<<endl;
		return -3;
	}

	/*  leveldb writer buffer */
	leveldb::WriteBatch* batch = NULL;
	batch =  new leveldb::WriteBatch();
	while(1)
	{
		r = fscanf(fp, "%s %d %d %d %d %d\n", img_path, &img_label, &bbox_x, &bbox_y, &bbox_width, &bbox_height);
		if( r == EOF )
			break;
		cv::Mat input_img = cv::imread( string(img_path) );
		if(input_img.empty())
		{
			cout<<"img empty ! "<<endl;
			return -5;
		}
		
		/*  read the adjust the image to the fixed size 256x256 */
		Rect adjusted_rect;
		if( bbox_height > bbox_width )
			adjusted_rect = resizeToFixedRatio(Rect( bbox_x, bbox_y, bbox_width, bbox_height), 1, 1);
		else
			adjusted_rect = resizeToFixedRatio(Rect( bbox_x, bbox_y, bbox_width, bbox_height), 1, 0);

		Mat crop_img = cropImage( input_img, adjusted_rect );
		resize( crop_img, crop_img, Size(256,256), 0, 0, INTER_AREA);

		/*decide the label*/
		if( class_to_label.count(img_label) ==0)
		{
			class_to_label[ img_label] = label;
			label_to_class[label] = img_label;
			label++;
		}
		
		/* write the Datum to leveldb */
		Datum datum;
		string value;
		const int kMaxKeyLength = 10;   /*  enough for this dataset */
		char key_cstr[kMaxKeyLength];
		
        /*  convert Mat to Datum using caffe util */
        CVMatToDatum( crop_img, &datum );
        datum.set_label(class_to_label[img_label]);

        //datum.set_channels(crop_img.channels());
        //datum.set_height(crop_img.rows);
        //datum.set_width(crop_img.cols);
        //datum.set_data(crop_img.data, crop_img.cols*crop_img.cols*crop_img.channels()); /* wrong, caffe's data format is num channel height wid */
        //datum.set_label( class_to_label[img_label] ); /*  remember to set the label */
        
        snprintf(key_cstr, kMaxKeyLength, "%08d", counter++);
        datum.SerializeToString(&value);

        batch->Put( key_cstr, value);
		if( counter % 1000 == 0)
		{
			db->Write(leveldb::WriteOptions(), batch);
			delete batch;
			batch =  new leveldb::WriteBatch();
		}
		
		cout<<"processing image "<<img_path<<" with label "<<class_to_label[img_label]<<endl;
		cout<<"car type is "<<class_to_label[img_label]<<endl;
		//rectangle( input_img, cv::Rect( bbox_x, bbox_y, bbox_width, bbox_height), cv::Scalar(255,0,0) );
		//imshow( "input", input_img);
		//imshow("adjust", crop_img);
        
        //cout<<"write image to "<<"./show_test/"+string(img_path)<<std::endl;
        //imwrite("./show_test/"+string(img_path), crop_img);
		//waitKey(0);
	}
	if( counter%1000 != 0 )
	{
		db->Write(leveldb::WriteOptions(), batch);
		delete batch;
		delete db;
	}
	
    cout<<"size of class_to_label is "<<class_to_label.size()<<endl;
    cout<<"size of label_to_class is "<<label_to_class.size()<<endl;

    save_map( class_to_label, "class_to_label_test.data");
    save_map( label_to_class, "label_to_class_test.data");

    return 0;
}
void convert_dataset(const string& input_folder, const string& output_folder,
    const string& db_type) {
  scoped_ptr<db::DB> train_db(db::GetDB(db_type));
  train_db->Open(output_folder + "/cifarcatdog_train_" + db_type, db::NEW);
  scoped_ptr<db::Transaction> txn(train_db->NewTransaction());
  // Data buffer
  int label;
  char str_buffer[kCIFARImageNBytes];
  Datum datum;
  datum.set_channels(3);
  datum.set_height(kCIFARSize);
  datum.set_width(kCIFARSize);

  LOG(INFO) << "Writing Training data";
  for (int fileid = 0; fileid < kCIFARTrainBatches; ++fileid) {
    // Open files
    LOG(INFO) << "Training Batch " << fileid + 1;
    snprintf(str_buffer, kCIFARImageNBytes, "/data_batch_%d.bin", fileid + 1);
    std::ifstream data_file((input_folder + str_buffer).c_str(),
        std::ios::in | std::ios::binary);
    CHECK(data_file) << "Unable to open train file #" << fileid + 1;
    for (int itemid = 0; itemid < kCIFARBatchSize; ++itemid) {
      read_image(&data_file, &label, str_buffer);
      if (label == CAT_LABEL or label == DOG_LABEL) {
          label = (label == CAT_LABEL) ? 0 : 1; 
          datum.set_label(label);
          datum.set_data(str_buffer, kCIFARImageNBytes);
          int length = snprintf(str_buffer, kCIFARImageNBytes, "%05d",
              fileid * kCIFARBatchSize + itemid);
          string out;
          CHECK(datum.SerializeToString(&out));
          txn->Put(string(str_buffer, length), out);
      }
    }
  }
  txn->Commit();
  train_db->Close();

  LOG(INFO) << "Writing Testing data";
  scoped_ptr<db::DB> test_db(db::GetDB(db_type));
  test_db->Open(output_folder + "/cifarcatdog_test_" + db_type, db::NEW);
  txn.reset(test_db->NewTransaction());
  // Open files
  std::ifstream data_file((input_folder + "/test_batch.bin").c_str(),
      std::ios::in | std::ios::binary);
  CHECK(data_file) << "Unable to open test file.";
  for (int itemid = 0; itemid < kCIFARBatchSize; ++itemid) {
    read_image(&data_file, &label, str_buffer);
    if (label == CAT_LABEL or label == DOG_LABEL) {
        label = (label == CAT_LABEL) ? 0 : 1; 
        datum.set_label(label);
        datum.set_data(str_buffer, kCIFARImageNBytes);
        int length = snprintf(str_buffer, kCIFARImageNBytes, "%05d", itemid);
        string out;
        CHECK(datum.SerializeToString(&out));
        txn->Put(string(str_buffer, length), out);
    }
  }
  txn->Commit();
  test_db->Close();
}
Example #12
0
TEST_F(CryConfigCreatorTest, DoesNotAskForCipherIfSpecified) {
    AnswerNoToDefaultSettings();
    EXPECT_DOES_NOT_ASK_FOR_CIPHER();
    CryConfig config = creator.create(string("aes-256-gcm"), none);
}
Example #13
0
TEST_F(CryConfigCreatorTest, DoesNotAskForAnythingIfEverythingIsSpecified) {
    EXPECT_DOES_NOT_ASK_TO_USE_DEFAULT_SETTINGS();
    EXPECT_DOES_NOT_ASK_FOR_CIPHER();
    CryConfig config = noninteractiveCreator.create(string("aes-256-gcm"), 10*1024u);
}
Example #14
0
void SchemaPrinter::Visit(const StringFieldDescriptor *descriptor) {
  m_str << string(m_indent, ' ') << descriptor->Name() << ": string [" <<
    descriptor->MinSize() << ", " << descriptor->MaxSize() << "]" << endl;
}
Example #15
0
void DigitiserStatsPlot::draw( const Archive *const_arch )
{
  Reference::To<Archive> arch = const_cast<Archive*>( const_arch );
  Reference::To<DigitiserStatistics> ext = arch->get<DigitiserStatistics>();
  if( CheckStats( ext ) && valid_archive )
  {
    vector<float> xs( ncycsub*nsub );

    float x_step = 1.0 / (((ncycsub)*(nsub))-1);

    for( int g = 0; g < ndigr; g ++ )
    {
      // adjust the xs array for this digitiser channel
      float next_x = g;
      for( int i = 0; i < ncycsub*nsub; i ++ )
      {
        xs[i] = next_x;
        next_x += x_step;
      }

      // for each parameter, draw the profile
      for( int p = 0; p < npar; p ++ )
      {
        cpgsci( (p + 1)* 2 );
        cpgline( ncycsub*nsub, &xs[0], &profiles[g][p][0] );
      }
    }

    cpgsci( 1 );

    // get the viewport range including buffer
    float vp_y1, vp_y2;
    get_frame()->get_y_scale()->get_range_external( vp_y1, vp_y2 );

    // get the window range
    float w_x1, w_x2, w_y1, w_y2;
    cpgqwin( &w_x1, &w_x2, &w_y1, &w_y2 );

    // Save the current viewport, so that we can adjust relative to it and restore it later.
    float tx_min, tx_max, ty_min, ty_max;
    cpgqvp( 0, &tx_min, &tx_max, &ty_min, &ty_max );

    // For each digitiser channel
    //   set the viewport to cover that channel
    //   set the window to have x ranging from start time to end time
    //   draw a box around the viewport
    float duration = arch->integration_length();
    float nx = tx_min;
    float xw = (tx_max-tx_min)*(1.0/ndigr);
    for( int c = 0; c < ndigr; c ++ )
    {
      cpgsvp( nx, nx + xw, ty_min, ty_max );
      cpgswin( 0, duration, w_y1, w_y2 );
      if( nx == tx_min )
        cpgbox("bcnt", 0.0, 0, "bcnt", 20.0, 0);
      else
        cpgbox("bcnt", 0.0, 0, "bct", 20.0, 0 );
      string dig_label = string("Dig ") + tostring<int>(c);
      cpgmtxt( "T", -1, 0.01, 0, dig_label.c_str() );
      nx += xw;
    }

    // Restore the original viewport
    cpgsvp( tx_min, tx_max, ty_min, ty_max );
  }
}
Example #16
0
int main(int argc, char** argv) {
  ::google::InitGoogleLogging(argv[0]);
  if (argc < 4) {
    printf("Convert a set of images to the leveldb format used\n"
        "as input for Caffe.\n"
        "Usage:\n"
        "    convert_imageset ROOTFOLDER/ LISTFILE DB_NAME"
        " RANDOM_SHUFFLE_DATA[0 or 1]\n"
        "The ImageNet dataset for the training demo is at\n"
        "    http://www.image-net.org/download-images\n");
    return 0;
  }
  std::ifstream infile(argv[2]);
  std::vector<std::pair<string, int> > lines;
  string filename;
  int label;
  while (infile >> filename >> label) {
    lines.push_back(std::make_pair(filename, label));
  }
  if (argc == 5 && argv[4][0] == '1') {
    // randomly shuffle data
    LOG(INFO) << "Shuffling data";
    std::random_shuffle(lines.begin(), lines.end());
  }
  LOG(INFO) << "A total of " << lines.size() << " images.";

  leveldb::DB* db;
  leveldb::Options options;
  options.error_if_exists = true;
  options.create_if_missing = true;
  options.write_buffer_size = 268435456;
  LOG(INFO) << "Opening leveldb " << argv[3];
  leveldb::Status status = leveldb::DB::Open(
      options, argv[3], &db);
  CHECK(status.ok()) << "Failed to open leveldb " << argv[3];

  string root_folder(argv[1]);
  Datum datum;
  int count = 0;
  const int maxKeyLength = 256;
  char key_cstr[maxKeyLength];
  leveldb::WriteBatch* batch = new leveldb::WriteBatch();
  for (int line_id = 0; line_id < lines.size(); ++line_id) {
    if (!ReadImageToDatum(root_folder + lines[line_id].first, lines[line_id].second,
                          &datum)) {
      continue;
    };
    // sequential
    snprintf(key_cstr, maxKeyLength, "%08d_%s", line_id, lines[line_id].first.c_str());
    string value;
    // get the value
    datum.SerializeToString(&value);
    batch->Put(string(key_cstr), value);
    if (++count % 1000 == 0) {
      db->Write(leveldb::WriteOptions(), batch);
      LOG(ERROR) << "Processed " << count << " files.";
      delete batch;
      batch = new leveldb::WriteBatch();
    }
  }
  // write the last batch
  if (count % 1000 != 0) {
    db->Write(leveldb::WriteOptions(), batch);
    LOG(ERROR) << "Processed " << count << " files.";
  }

  delete batch;
  delete db;
  return 0;
}
Example #17
0
//-------------------------------------
bool BatchFile::Process()
{
   static const char lEndOfRecord = '#';
   static const int lLineLength = 256;

  bool   lOK = true;

///  ARTHUR - commented due to string stream incompatability
//	 Jtk - uncommented to bring back batch file functionality.
//   type cast the strings to (char*) which appeared to solve 
//	 the string stream incompatibility
   //attempt to open input file
   
  ifstream   lInFile( mInFileName.c_str(), ios::in );
   if( ! lInFile.is_open() )
   {
      AfxMessageBox( "Unable to open batch input file." );
      return   false;
   }

   //make sure this is a batch file
   string   lLine;//( lLineLength, "", ' ' );
   lInFile >> lLine;
   //lInFile.getline( (char*)lLine, lLineLength, lEndOfRecord );
   
 // JTK - Removed simplying setting lCommandName = lLine appears to work
 /*  strstream   lCore;
   lCore << lLine << endl;*/
   string   lCommandName;//( 20, "", ' ' );
// JTK - Removed because strstream no longer exists   
//   lCore >> (char*)lCommandName;
   lCommandName = lLine;		// added because of the removal of strstream
   // allow no space so we don't break peoples' workarounds
   if(lCommandName != "3DSSPPBATCHFILE#") {
	if(mCommands.find(lCommandName) == mCommands.end() ||
		mCommands[lCommandName] != bch3DSSPPBatchFile) {
			AfxMessageBox("Batch file header missing. \nFile must begin with '3DSSPPBATCHFILE #'.");
			lInFile.close();
			return false;
	}
	
		// make sure there's a # next
		lInFile >> lLine;
		if(lLine != "#") {
			AfxMessageBox("Batch file header missing. \nFile must begin with '3DSSPPBATCHFILE #'.");
			lInFile.close();
			return false;
		}
   }
   //cMapType::iterator   lIt = mCommands.find( lCommandName );
/*
   if(lIt != mCommands.end()) //match found
   {
      switch((*lIt).second)
      {
         case bch3DSSPPBatchFile :
         {
            //Header found as first command. OK to proceed.
            break;
         }
         default:
         {
            AfxMessageBox( "Batch file header missing. \nFile must begin with '3DSSPPBATCHFILE #'." );
            lInFile.close();
            return false;
         }
      }
   }
   else //match not found
   {
      AfxMessageBox( "3DSSPP batch file header missing. This is not a valid 3DSSPP batch file." );
	  lInFile.close();     
	  return false;      
   }*/
   
   //attempt to open export file
   
   fstream lExportFile(mExportFileName.c_str(), ios::in | ios::out | ios::trunc | ios::ate ); 
   if(!lExportFile.is_open())
   {
      AfxMessageBox( "Unable to open batch export file." );
      lInFile.close();
      return false;
   }
   
   //attempt to open log file
   
   ofstream lLogFile(mLogFileName.c_str()); 
   if(!lLogFile.is_open())
   {
      AfxMessageBox("Unable to open batch log file.");
      lInFile.close();
      lExportFile.close();
      return false;
   }

   // prepare the progress dialog

   mProgressDialog.Create(IDD_BATCHFILE);
   mProgressDialog.ShowWindow(SW_SHOWNORMAL);
   
   // repeatedly get and decode lines

   int lRecordNumber = 1;
   bool lFirstCommand = true;
   
   while(lInFile.peek() != EOF)
   {
      //Get line

      string   lLine;//( lLineLength, "", ' ' );
      //lInFile.getline( (char*)lLine, lLineLength, lEndOfRecord );
	  lInFile >> lLine;
      
      //strstream   lCore;
      //lCore << lLine << ends;
      
      //Get the command name

      //String   lCommandName( 20, "", ' ' );
      //lCore >> (char*)lCommandName;
	  string lCommandName = lLine;
      
      cMapType::iterator   lIt = mCommands.find( lCommandName );
      
      if( lIt != mCommands.end() ) //match found
      {
         switch( (*lIt).second )
         {
            case bchDescription :
            {
               TaskDescription   lTaskDescription;
               lInFile >> lTaskDescription;
               if( lTaskDescription.Error() )
               {
                  LogError( lLogFile, lRecordNumber, "TaskDescription", (char*)lTaskDescription.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
                  mDocPtr->SetDescription( lTaskDescription );
                  //NOTE: Task description does not trigger automatic export.
               }
               break;
            }
            
            case bchAnthropomentry :
			{
                Anthropometry   lAnthropometry;
			    lInFile >> lAnthropometry;
                if( lAnthropometry.Error() ) {
                    LogError( lLogFile, lRecordNumber, "Anthropometry", (char*)lAnthropometry.LastErrorMessage() );
                    lOK = false;
                } else {
                    mDocPtr->setAnthropometry( lAnthropometry );
					mDocPtr->MakeDirtyAndUpdateViews(true);
                    if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
                }
               break;
            }
            
            case bchJointAngles :
            {
     //          JointAngles lJointAngles;
     //          lInFile >> lJointAngles;
			  // if(! lJointAngles.Validate() ) 
     //          {
     //             LogError( lLogFile, lRecordNumber, "JointAngles", lJointAngles.getLastError().c_str() );
     //             lOK = false;
     //          }
     //          else
     //          {
					//// make the frame a keyframe if it is currently unset
					//// TODO make keyframe as long as it is not a keyframe?
					//if(mDocPtr->getFrameType() == FT_Unset) {
					//	mDocPtr->setFrameType(FT_Keyframe);
					//}

					//// Put the joint angles and clear the undoing queue
     //               mDocPtr->clearUndoHistory();
     //               mDocPtr->GetSkeleton()->SetAngles(lJointAngles);
					//mDocPtr->MakeDirtyAndUpdateViews(true);

					//if (mAutoExport)
					//	mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND);
     //          }
     //          break;
				AfxMessageBox(_T("JOI not supported in 7.00 and later version."), MB_OK | MB_ICONSTOP);
            }

			case bchJointAnglesWithLegs :
			{
				//no longer needed in 7.0.0

				//JointAngles lJointAngles;
				//// don't user operator when we're reading in with the leg angles
				//// we should actually get rid of the operator then, or have a better
				//// versioning system
				////lInFile >> lJointAngles;
				//lJointAngles.ReadBatchFileWithLegs(lInFile);
				//if(! lJointAngles.Validate() )
				//{
				//	LogError(lLogFile, lRecordNumber, "JointAngles", lJointAngles.getLastError().c_str());
				//	lOK = false;
				//}
				//else
				//{
				//	// make the frame a keyframe if it is currently unset
				//	// TODO make keyframe as long as it is not a keyframe?
				//	if(mDocPtr->getFrameType() == FT_Unset) {
				//		mDocPtr->setFrameType(FT_Keyframe);
				//	}

				//	// Put the joint angles and clear the undoing queue
				//	mDocPtr->clearUndoHistory();
				//	mDocPtr->GetSkeleton()->SetAngles(lJointAngles);
				//	mDocPtr->MakeDirtyAndUpdateViews(true);

				//	if(mAutoExport)
				//		mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND);
				//}
				//break;
				AfxMessageBox(_T("JO6 not supported in 7.00 and later version."), MB_OK | MB_ICONSTOP);
			}

			case bchJointAnglesAll :
			{
				JointAngles lJointAngles;
				// don't user operator when we're reading in with the leg angles
				// we should actually get rid of the operator then, or have a better
				// versioning system
				//lInFile >> lJointAngles;
				lJointAngles.ReadBatchFileAll(lInFile);
				/*if(! lJointAngles.Validate() )
				{
					LogError(lLogFile, lRecordNumber, "JointAngles", lJointAngles.getLastError().c_str());
					lOK = false;
				}
				else*/
				{
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}

					// Put the joint angles and clear the undoing queue
					mDocPtr->clearUndoHistory();
					mDocPtr->GetSkeleton()->SetAngles(lJointAngles);
					mDocPtr->MakeDirtyAndUpdateViews(true);

					if(mAutoExport)
						mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND);
				}
				break;
			}
            
            case bchHandLoads :
            {
               HandLoads   lHandLoads;
               lInFile >> lHandLoads;
               if(lHandLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "HandLoads", (char*)lHandLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {

				   mDocPtr->GetSkeleton()->setExtForce(JT_LHAND, lHandLoads.GetLForceVector());
				   mDocPtr->GetSkeleton()->setExtForce(JT_RHAND, lHandLoads.GetRForceVector());

					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }
			// for hand component load
			case bchLeftHandComponentLoad :
            {
               HandLoads   lHandLoads;
               lInFile >> lHandLoads;
               if(lHandLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "HandComponentLoads", (char*)lHandLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   Vector3 leftForceVec;
				   leftForceVec[0] = lHandLoads.LeftMagnitude();
				   leftForceVec[1] = lHandLoads.LeftVerticalAngle();
				   leftForceVec[2] = lHandLoads.LeftHorizontalAngle();
				   Vector3 leftTorqueVec;
				   leftTorqueVec[0] = lHandLoads.RightMagnitude();
				   leftTorqueVec[1] = lHandLoads.RightVerticalAngle();
				   leftTorqueVec[2] = lHandLoads.RightHorizontalAngle();
				   mDocPtr->GetSkeleton()->setExtForce(JT_LHAND, leftForceVec);
				   mDocPtr->GetSkeleton()->setExtTorque(JT_LHAND, leftTorqueVec);

					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }
			case bchRightHandComponentLoad :
            {
               HandLoads   lHandLoads;
               lInFile >> lHandLoads;
               if(lHandLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "HandComponentLoads", (char*)lHandLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   Vector3 rightForceVec;
				   rightForceVec[0] = lHandLoads.LeftMagnitude();
				   rightForceVec[1] = lHandLoads.LeftVerticalAngle();
				   rightForceVec[2] = lHandLoads.LeftHorizontalAngle();
				   Vector3 rightTorqueVec;
				   rightTorqueVec[0] = lHandLoads.RightMagnitude();
				   rightTorqueVec[1] = lHandLoads.RightVerticalAngle();
				   rightTorqueVec[2] = lHandLoads.RightHorizontalAngle();
				   mDocPtr->GetSkeleton()->setExtForce(JT_RHAND, rightForceVec);
				   mDocPtr->GetSkeleton()->setExtTorque(JT_RHAND, rightTorqueVec);

					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			//for multi-joint load
			case bchexternala:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[0],lJointLoads.GetForceVector());
						skel.setExtTorque(order[0],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternalb:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[1],lJointLoads.GetForceVector());
						skel.setExtTorque(order[1],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternalc:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[2],lJointLoads.GetForceVector());
						skel.setExtTorque(order[2],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternald:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[3],lJointLoads.GetForceVector());
						skel.setExtTorque(order[3],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternale:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[4],lJointLoads.GetForceVector());
						skel.setExtTorque(order[4],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternalf:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[5],lJointLoads.GetForceVector());
						skel.setExtTorque(order[5],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternalg:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[6],lJointLoads.GetForceVector());
						skel.setExtTorque(order[6],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternalh:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[7],lJointLoads.GetForceVector());
						skel.setExtTorque(order[7],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternali:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[8],lJointLoads.GetForceVector());
						skel.setExtTorque(order[8],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternalj:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[9],lJointLoads.GetForceVector());
						skel.setExtTorque(order[9],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternalk:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[11] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[10],lJointLoads.GetForceVector());
						skel.setExtTorque(order[10],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternall:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[14] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
                               JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE, JT_RWRIST, JT_LWRIST,JT_TRAGION};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[11],lJointLoads.GetForceVector());
						skel.setExtTorque(order[11],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchexternalm:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[14] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
					   JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE, JT_RWRIST, JT_LWRIST, JT_TRAGION};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[12],lJointLoads.GetForceVector());
						skel.setExtTorque(order[12],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }
			case bchexternaln:
            {
               HandLoads   lJointLoads;
               lInFile >> lJointLoads;
               if(lJointLoads.Error()) 
               {
                  LogError( lLogFile, lRecordNumber, "JointLoads", (char*)lJointLoads.LastErrorMessage() );
                  lOK = false;
               }
               else
               {
				   const JointID order[14] = {JT_RELBOW,JT_RSHOULDER,JT_LELBOW,JT_LSHOULDER,JT_L5S1_TEMP,
					   JT_RHIP,JT_RKNEE,JT_RANKLE,JT_LHIP,JT_LKNEE,JT_LANKLE, JT_RWRIST, JT_LWRIST, JT_TRAGION};

					// make group undo event
					int left = Get_App_Ptr()->Get_Document_Ptr()->LeftSelect();
					int right = Get_App_Ptr()->Get_Document_Ptr()->RightSelect();
					GroupEvent* groupEvent = new GroupEvent(left, right);

					for(int frame = left; frame <= right; frame++) {
						//Skeleton &skel = *Get_App_Ptr()->Get_Document_Ptr()->GetSkeleton();
						Skeleton& skel = *Get_App_Ptr()->Get_Document_Ptr()->getSkeletonAtFrame(frame);
								 
						skel.setExtForce(order[13],lJointLoads.GetForceVector());
						skel.setExtTorque(order[13],lJointLoads.GetTorqueVector());
					}
					// make the frame a keyframe if it is currently unset
					// TODO make keyframe as long as it is not a keyframe?
					if(mDocPtr->getFrameType() == FT_Unset) {
						mDocPtr->setFrameType(FT_Keyframe);
					}
					mDocPtr->MakeDirtyAndUpdateViews(true);

				  if( mAutoExport ) mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND); 
               }
               break;
            }

			case bchSupport : 
			{
				Support_s tempsupport;
				InputAuxiliary inputcheck; //input checking class
				string temp; //temp string for the input
				int feetSupport, position; //temp int value for enum to support read
				lInFile >> temp; 
				if (!inputcheck.isInteger(temp) | !inputcheck.CheckRange(inputcheck.StringtoInt(temp), 0,3))
				{
					LogError(lLogFile, lRecordNumber, "Support Selection", string("The input feetsupport must be an integer from 0 to 3 \n"));
					lOK = false;
					break;
				}
				feetSupport = inputcheck.StringtoInt(temp);
				lInFile >> temp; 
				if (!inputcheck.isInteger(temp) | !inputcheck.CheckRange(inputcheck.StringtoInt(temp), 0,1))
				{
					LogError(lLogFile, lRecordNumber, "Support Selection", string("The input position must be an integer from 0 to 1 \n"));
					lOK = false;
					break;
				}
				position = (bool)inputcheck.StringtoInt(temp);
				lInFile >> temp; 
				if (!inputcheck.isInteger(temp) | !inputcheck.CheckRange(inputcheck.StringtoInt(temp), 0,1))
				{
					LogError(lLogFile, lRecordNumber, "Support Selection", string("The input frontSeatPanSuppor must be an integer from 0 to 1 \n"));
					lOK = false;
					break;
				}
				tempsupport.frontSeatPanSupport = (bool)inputcheck.StringtoInt(temp);
				lInFile >> temp; 
				if (!inputcheck.isInteger(temp) | !inputcheck.CheckRange(inputcheck.StringtoInt(temp), 0,1))
				{
					LogError(lLogFile, lRecordNumber, "Support Selection", string("The input seatHasBackRest must be an integer from 0 to 1 \n"));
					lOK = false;
					break;
				}
				tempsupport.seatHasBackRest = (bool)inputcheck.StringtoInt(temp);
				
				lInFile >> temp; 
				if (!inputcheck.isDouble(temp) | !inputcheck.CheckLowBound(inputcheck.StringtoDouble(temp), 19.05))
				{
					LogError(lLogFile, lRecordNumber, "Support Selection", string("The input backRestCenterHeight must be a number and it is bigger than 19.05 \n"));
					lOK = false;
					break;
				}
				tempsupport.backRestCenterHeight = inputcheck.StringtoDouble(temp);

				lInFile >> temp; 
				if (!inputcheck.isInteger(temp) | !inputcheck.CheckRange(inputcheck.StringtoInt(temp), -360,360))
				{
					LogError(lLogFile, lRecordNumber, "Support Selection", string("The input additionalPelvicTilt must be an integer from -360 to 360 \n"));
					lOK = false;
					break;
				}
				tempsupport.additionalPelvicTilt = inputcheck.StringtoInt(temp);

				tempsupport.feetSupport = FeetSupport_e(feetSupport);
				tempsupport.position = Position_e(position);

				//The following two line is due to the coodinate changing. 
				tempsupport.additionalPelvicTilt = tempsupport.additionalPelvicTilt;
				tempsupport.displayAdditionalPelvicTilt = tempsupport.additionalPelvicTilt;

				if(lInFile.fail()) {
					LogError(lLogFile, lRecordNumber, "Support Selection", string("Support Selection parameters must be FeetSupport, Position, FrontSeatPanSupport,seatHasBackRest, backRestCenterHeight. additionalPelvicTilt, displayAdditionalPelvicTilt \n"));
					lOK = false;
				}
				else if (position && (feetSupport ==1|feetSupport ==2)){
					LogError(lLogFile, lRecordNumber, "Support Selection", string("Two feet must be both on or not on the ground if seated \n"));
					lOK = false;
				}
				else if (!position && (feetSupport == 3)){
					LogError(lLogFile, lRecordNumber, "Support Selection", string("Either or both feet needs to be on the ground if standing \n"));
					lOK = false;
				}
				else if (tempsupport.frontSeatPanSupport && (feetSupport !=3)){
					LogError(lLogFile, lRecordNumber, "Support Selection", string("No frontPan is allowed \n"));
					lOK = false;
				}

				else {

					mDocPtr->setSupport(tempsupport);
					mDocPtr->MakeDirtyAndUpdateViews(true); 
				}
				break;
				
			}
            case bchComment :
            {
               //do nothing
               break;
            }
            
            case bchExport :
            {
               mDocPtr->DoExportSummary(lExportFile, DM_COMMA, FM_APPEND);  
               break;
            }
            
            case bchAutoExport :
            {
               int   lAutoExport;
               lInFile >> lAutoExport;
               if( ! lInFile.fail() )
               {
				   if (lAutoExport)
					   mAutoExport = true;
				   else 
					   mAutoExport = false;
                  
               }
               else
               {
                  string   lMsg( "Value not 0 (false) or 1 (true)." );
                  LogError( lLogFile, lRecordNumber, "AutoExport", lMsg );
                  lOK = false;                  
               }
               break;
            }
			
			case bchPause :
			{
				int pauseTime;
				string temp; //temp string for the input
				lInFile >> temp;
				InputAuxiliary inputcheck; //input checking class
				if (!inputcheck.isInteger(temp))
				{	
					LogError(lLogFile, lRecordNumber, "Pause", string("Must enter a positive integer number of milliseconds to pause, or 0 to be prompted to resume"));
					lOK = false;
					break;
				}
				pauseTime = inputcheck.StringtoInt(temp);

				if( ! lInFile.fail() && pauseTime >= 0) {
					//mDocPtr->RedrawViews();
					mDocPtr->UpdateViews();
					if(pauseTime == 0) {
						AfxMessageBox("Batch file processing paused. Press OK to continue", MB_OK);
					} else {
						Sleep(pauseTime);
					}
				} else {
					LogError( lLogFile, lRecordNumber, "Pause", string("Must enter a positive integer number of milliseconds to pause, or 0 to be prompted to resume"));
					lOK = false;
				}
				break;
			}

			case bchFrameChange:
			{
				string firstParam;
				lInFile >> firstParam;
				if(lInFile.fail()) {
					LogError(lLogFile, lRecordNumber, "Frame", string("Frame command parameters must be + <num> | - <num> | FIRST | LAST | <num>"));
					lOK = false;
				} else {
					// Go to first frame
					if(firstParam == "FIRST") {
						mDocPtr->setCurrentFrame(0);
					} else
					// Go to last frame
					if(firstParam == "LAST") {
						mDocPtr->setCurrentFrame(mDocPtr->getLastFrame());
					} else
					// Advance a number of frames
					if(firstParam == "+") {
						// read number of frames
						int numFrames;
						lInFile >> numFrames;
						if(lInFile.fail()) {
							LogError(lLogFile, lRecordNumber, "Frame", string("Frame command parameters must be + <num> | - <num> | FIRST | LAST | <num>"));
							lOK = false;
						} else {
							mDocPtr->setCurrentFrame(mDocPtr->getCurrentFrame() + numFrames);
						}
					} else
					// Rewind a number of frames
					if(firstParam == "-") {
						// read number of frames
						int numFrames;
						lInFile >> numFrames;
						if(lInFile.fail()) {
							LogError(lLogFile, lRecordNumber, "Frame", string("Frame command parameters must be + <num> | - <num> | FIRST | LAST | <num>"));
							lOK = false;
						} else {
							mDocPtr->setCurrentFrame(mDocPtr->getCurrentFrame() - numFrames);
						}
					} else {
						// Go to numbered frame
						int frameNumber = atoi(firstParam.c_str());
						mDocPtr->setCurrentFrame(frameNumber);
					}
				}
				// update views after frame change
				mDocPtr->UpdateViews();
				break;
			}
Example #18
0
string bit_index_storage::name() const {
  return string("bit_index_storage");
}
 void CharField::parse( const char* first, const char* last )
 {
     if (last != first+1)
         throw Exception("unable to parse char: "+string(first,last));
     *val_ = *first;
 }
std::string GetSubtitlesCommand::toString()
{
	return string("get the subtitle files at ") + fp;
}
Example #21
0
 //默认传入空字符串
 HasPtr(int i, const string &_s = string()): ivalue(i), s(new string(_s)) { }
Example #22
0
TEST(Construction, FromUserDefinedLiteral) {
    const auto strData = "cc\0c"_sd;
    ASSERT_EQUALS(strData.size(), 4U);
    ASSERT_EQUALS(strData.toString(), string("cc\0c", 4));
}
void XapianIndex::addCommonTerms(const DocumentInfo &info, Xapian::Document &doc,
	Xapian::termcount &termPos) const
{
	string title(info.getTitle());
	string location(info.getLocation());
	Url urlObj(location);

	// Add a magic term :-)
	doc.add_term(MAGIC_TERM);

	// Index the title with and without prefix S
	if (title.empty() == false)
	{
		Document titleDoc;
		titleDoc.setData(title.c_str(), title.length());
		Tokenizer titleTokens(&titleDoc);
		addPostingsToDocument(titleTokens, doc, "S", termPos, STORE_UNSTEM);
		titleTokens.rewind();
		addPostingsToDocument(titleTokens, doc, "", termPos, m_stemMode);
	}

	// Index the full URL with prefix U
	doc.add_term(string("U") + XapianDatabase::limitTermLength(Url::escapeUrl(location), true));
	// ...the host name and included domains with prefix H
	string hostName(StringManip::toLowerCase(urlObj.getHost()));
	if (hostName.empty() == false)
	{
		doc.add_term(string("H") + XapianDatabase::limitTermLength(hostName, true));
		string::size_type dotPos = hostName.find('.');
		while (dotPos != string::npos)
		{
			doc.add_term(string("H") + XapianDatabase::limitTermLength(hostName.substr(dotPos + 1), true));

			// Next
			dotPos = hostName.find('.', dotPos + 1);
		}
	}
	// ...the location (as is) and all directories with prefix XDIR:
	string tree(urlObj.getLocation());
	if (tree.empty() == false)
	{
		doc.add_term(string("XDIR:") + XapianDatabase::limitTermLength(Url::escapeUrl(tree), true));
		if (tree[0] == '/')
		{
			doc.add_term("XDIR:/");
		}
		string::size_type slashPos = tree.find('/', 1);
		while (slashPos != string::npos)
		{
			doc.add_term(string("XDIR:") + XapianDatabase::limitTermLength(Url::escapeUrl(tree.substr(0, slashPos)), true));

			// Next
			slashPos = tree.find('/', slashPos + 1);
		}
	}
	// ...and the file name with prefix P
	string fileName(urlObj.getFile());
	if (fileName.empty() == false)
	{
		string extension;

		doc.add_term(string("P") + XapianDatabase::limitTermLength(Url::escapeUrl(fileName), true));

		// Does it have an extension ?
		string::size_type extPos = fileName.rfind('.');
		if ((extPos != string::npos) &&
			(extPos + 1 < fileName.length()))
		{
			extension = StringManip::toLowerCase(fileName.substr(extPos + 1));
		}
		doc.add_term(string("XEXT:") + XapianDatabase::limitTermLength(extension));
	}
	// Add the date terms D, M and Y
	time_t timeT = TimeConverter::fromTimestamp(info.getTimestamp());
	struct tm *tm = localtime(&timeT);
	string yyyymmdd = TimeConverter::toYYYYMMDDString(tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday);
	if (yyyymmdd.length() == 8)
	{
		doc.add_term(string("D") + yyyymmdd);
		doc.add_term(string("M") + yyyymmdd.substr(0, 6));
		doc.add_term(string("Y") + yyyymmdd.substr(0, 4));
	}
	// Finally, add the language code with prefix L
	doc.add_term(string("L") + Languages::toCode(m_stemLanguage));
	// ...and the MIME type with prefix T
	doc.add_term(string("T") + info.getType());
}
Example #24
0
TEST(Construction, FromUserDefinedRawLiteral) {
    const auto strData = R"("")"_sd;
    ASSERT_EQUALS(strData.size(), 2U);
    ASSERT_EQUALS(strData.toString(), string("\"\"", 2));
}
Example #25
0
static FullScreenView display_type2_message_header(Type2MessageData& msg) {
  static constexpr int COLUMN2 = 42;
  int num_header_lines = 0;

  if (msg.message_number > 0 && msg.total_messages > 0 && !msg.message_area.empty()) {
    string msgarea = msg.message_area;
    if (msgarea.size() > 35) { msgarea = msgarea.substr(0, 35); }
    bout << "|#9 Sub|#7: |#" << a()->GetMessageColor() << msgarea;
    if (a()->user()->GetScreenChars() >= 78) {
      auto pad = COLUMN2 - (6 + msgarea.size());
      bout << string(pad, ' ');
    }
    else {
      bout.nl();
      num_header_lines++;
    }
    bout << "|#9Msg#|#7: ";
    if (msg.message_number > 0 && msg.total_messages > 0) {
      bout << "[|#" << a()->GetMessageColor() << msg.message_number
        << "|#7 of |#" << a()->GetMessageColor()
        << msg.total_messages << "|#7]";
    }
    bout.nl();
    num_header_lines++;
  }

  string from = msg.from_user_name;
  if (from.size() > 35) {
    from = from.substr(0, 35);
  }
  bout << "|#9From|#7: |#1" << from;
  if (a()->user()->GetScreenChars() >= 78) {
    int used = 6 + from.size();
    auto pad = COLUMN2 - used;
    bout << string(pad, ' ');
  }
  else {
    bout.nl();
    num_header_lines++;
  }
  bout << "|#9Date|#7: |#1" << msg.date << wwiv::endl;
  num_header_lines++;
  if (!msg.to_user_name.empty()) {
    bout << "  |#9To|#7: |#1" << msg.to_user_name << wwiv::endl;
    num_header_lines++;
  }
  bout << "|#9Subj|#7: |#" << a()->GetMessageColor() << msg.title << wwiv::endl;
  num_header_lines++;

  auto sysname = msg.from_sys_name;
  if (!msg.from_sys_name.empty()) {
    if (sysname.size() > 35) {
      sysname = sysname.substr(0, 35);
    }
    bout << "|#9 Sys|#7: |#1" << sysname;
    if (a()->user()->GetScreenChars() >= 78) {
      int used = 6 + sysname.size();
      auto pad = COLUMN2 - used;
      bout << string(pad, ' ');
    }
    else {
      bout.nl();
      num_header_lines++;
    }
    if (!msg.from_sys_loc.empty()) {
      auto loc = msg.from_sys_loc;
      int maxlen = a()->user()->GetScreenChars() - 7 - COLUMN2;
      if (size_int(loc) > maxlen) {
        loc = loc.substr(0, maxlen);
      }
      bout << "|#9Loc|#7:  |#1" << loc << wwiv::endl;
      num_header_lines++;
    }
  }

  if (!msg.flags.empty()) {
    bout << "|#9Info|#7: |#1";
    for (const auto& f : msg.flags) {
      switch (f) {
      case MessageFlags::FORCED: bout << "|13[FORCED] "; break;
      case MessageFlags::NOT_NETWORK_VALIDATED: bout << "|12[Not Network Validated] "; break;
      case MessageFlags::NOT_VALIDATED: bout << "|12<<< NOT VALIDATED >>>"; break;
      case MessageFlags::PERMANENT: bout << "|13[Permanent] "; break;
      case MessageFlags::LOCAL: bout << "|10[Local] "; break;
      case MessageFlags::FTN: bout << "|10[Fido] "; break;
      case MessageFlags::PRIVATE: bout << "|10[Pvt] "; break;
      case MessageFlags::WWIVNET: bout << "|10[WWIVnet] "; break;
      }
    }
    bout.nl();
    num_header_lines++;
  }

  auto screen_width = a()->user()->GetScreenChars();
  auto screen_length = a()->user()->GetScreenLines() - 1;

  return FullScreenView(num_header_lines, screen_width, screen_length);
}
Example #26
0
TEST(Construction, FromEmptyUserDefinedLiteral) {
    const auto strData = ""_sd;
    ASSERT_EQUALS(strData.size(), 0U);
    ASSERT_EQUALS(strData.toString(), string(""));
}
Example #27
0
string ToStr(bool val)
{
    return (string( (val == true ? "true" : "false") ));
}
Example #28
0
Ref<String> Decoder::getEncodedData(Ref<zxing::BitArray> correctedBits) {
  int endIndex = codewordSize_ * ddata_->getNBDatablocks() - invertedBitCount_;
  if (endIndex > (int)correctedBits->getSize()) {
    // std::printf("invalid input\n");
    throw FormatException("invalid input data");
  }
            
  Table lastTable = UPPER;
  Table table = UPPER;
  int startIndex = 0;
  std::string result;
  bool end = false;
  bool shift = false;
  bool switchShift = false;
  bool binaryShift = false;
            
  while (!end) {
    // std::printf("decoooooding\n");
                
    if (shift) {
      switchShift = true;
    } else {
      lastTable = table;
    }
                
    int code;
    if (binaryShift) {
      if (endIndex - startIndex < 5) {
        break;
      }
                    
      int length = readCode(correctedBits, startIndex, 5);
      startIndex += 5;
      if (length == 0) {
        if (endIndex - startIndex < 11) {
          break;
        }
                        
        length = readCode(correctedBits, startIndex, 11) + 31;
        startIndex += 11;
      }
      for (int charCount = 0; charCount < length; charCount++) {
        if (endIndex - startIndex < 8) {
          end = true;
          break;
        }
                        
        code = readCode(correctedBits, startIndex, 8);
        add(result, code);
        startIndex += 8;
      }
      binaryShift = false;
    } else {
      if (table == BINARY) {
        if (endIndex - startIndex < 8) {
          break;
        }
        code = readCode(correctedBits, startIndex, 8);
        startIndex += 8;
                        
        add(result, code);
      } else {
        int size = 5;
                        
        if (table == DIGIT) {
          size = 4;
        }
                        
        if (endIndex - startIndex < size) {
          break;
        }
                        
        code = readCode(correctedBits, startIndex, size);
        startIndex += size;
                        
        const char *str = getCharacter(table, code);
        std::string string(str);
        if ((int)string.find("CTRL_") != -1) {
          table = getTable(str[5]);
                            
          if (str[6] == 'S') {
            shift = true;
            if (str[5] == 'B') {
              binaryShift = true;
            }
          }
        } else {
          result.append(string);
        }
                        
      }
    }
                
    if (switchShift) {
      table = lastTable;
      shift = false;
      switchShift = false;
    }
                
                
  }
            
  return Ref<String>(new String(result));
            
}
Example #29
0
void gens_window_drag_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint y,
				    GtkSelectionData *selection_data, guint target_type, guint time,
				    gpointer data)
{
	GSFT_UNUSED_PARAMETER(widget);
	GSFT_UNUSED_PARAMETER(x);
	GSFT_UNUSED_PARAMETER(y);
	GSFT_UNUSED_PARAMETER(target_type);
	GSFT_UNUSED_PARAMETER(data);
	
	if (selection_data == NULL || gtk_selection_data_get_length(selection_data) == 0)
	{
		// No selection data.
		gtk_drag_finish(context, false, false, time);
		return;
	}
	
	gboolean dnd_success = true;
	
	gchar *sel_text = (gchar*)gtk_selection_data_get_data(selection_data);
	if (!sel_text)
	{
		// Selection data was not text.
		gtk_drag_finish(context, false, false, time);
		return;
	}
	
	string filename = string(sel_text);
	
	if (filename.length() >= 8 && filename.substr(0, 8) == "file:///")
	{
		// "file:///" prefix. Remove the prefix.
		filename = filename.substr(7);
	}
	else if (filename.length() >= 7 && filename.substr(0, 7) == "file://")
	{
		// "file://" prefix. Remove the prefix.
		filename = filename.substr(6);
	}
	else if (filename.length() >= 6 && filename.substr(0, 6) == "file:/")
	{
		// "file:/" prefix. Remove the prefix.
		filename = filename.substr(5);
	}
	else if (filename.length() >= 10 && filename.substr(0, 9) == "desktop:/")
	{
		// "desktop:/" prefix. Remove the prefix and prepend the user's desktop directory.
		filename = string(getenv("HOME")) + "/Desktop/" + filename.substr(9);
	}
	
	// Unescape the URI.
	char* unescaped = gens_g_uri_unescape_string(filename.c_str(), NULL);
	filename = string(unescaped);
	g_free(unescaped);
	
	// Check that the file actually exists.
	if (gsft_file_exists(filename.c_str()))
	{
		// File exists. Open it as a ROM image.
		ROM::openROM(filename);
		Sync_Gens_Window();
	}
	else
	{
		// File does not exist.
		dnd_success = false;
	}
	
	gtk_drag_finish(context, dnd_success, false, time);
}
Example #30
0
void SchemaPrinter::AppendHeading(const string &name, const string &type) {
  m_str << string(m_indent, ' ') << name << ": " << type;
}