本文整理汇总了C++中DataFile::getSize方法的典型用法代码示例。如果您正苦于以下问题:C++ DataFile::getSize方法的具体用法?C++ DataFile::getSize怎么用?C++ DataFile::getSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DataFile
的用法示例。
在下文中一共展示了DataFile::getSize方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GenericException
// Create new DataFile that's below file_size_limit in size.
DataFile *DataWriter::createNewDataFile(size_t headroom)
{
DataFile *datafile = 0;
int serial=0;
stdString data_file_name;
try
{ // Keep opening existing data files until we find
// one below the file limit.
// We might have to create a new one.
while (true)
{
makeDataFileName(serial, data_file_name);
datafile = DataFile::reference(directory,
data_file_name, true);
FileOffset file_size = datafile->getSize();
if (file_size+headroom < file_size_limit)
return datafile;
if (datafile->is_new_file)
{
LOG_MSG ("Warning: %s: "
"Cannot create a new data file within file size limit\n"
"type %d, count %d, %zu samples, file limit: %d bytes.\n",
channel_name.c_str(),
dbr_type, dbr_count, next_buffer_size, file_size_limit);
return datafile; // Use anyway
}
// Try the next one.
++serial;
datafile->release();
datafile = 0;
}
}
catch (GenericException &e)
{
if (datafile)
{
datafile->release();
datafile = 0;
}
throw GenericException(__FILE__, __LINE__,
"Reference new datafile '%s':\n%s",
data_file_name.c_str(), e.what());
}
throw GenericException(__FILE__, __LINE__,
"createNewDataFile(%zu) failed", headroom);
return 0;
}
示例2: executeAlgorithm
//virtual method that will be executed
void executeAlgorithm(AlgorithmData& data, AlgorithmContext& context) {
//****define algorithm here****
//open image file
// input name specified in configuration file
Dataset* input = data.getInputDataset("imageIn");
std::set<DataKey> keys = input->getAllFileKeys();
//... iterate through input keys and do work ...
for ( std::set<DataKey>::iterator i = keys.begin(); i != keys.end(); i++ ) {
DataKey myKey = *i;
DataFile* myFile = input->getDataFile(myKey);
int fileSize=myFile->getSize();
char * fileBytes=myFile->getBytes();
//open native message block
std::string nativeHdr="\n*************************NATIVE_OUTPUT*************************\n";
std::cout<<nativeHdr<<std::endl;
//report image info to stdout
std::cout<<" Image Loaded"<<std::endl;
std::cout<<" "<<fileSize<<" bytes"<<std::endl;
//print original file contents
std::cout<<" original file contents: "<<fileBytes;
std::vector<WordCount> counter;
char *tok;
WordCount wc;
char mark[] = " .,\n";
int p = 0;
int matchflag = 0;
int k=0;
tok = strtok(fileBytes, mark);
while( tok != NULL ){
if(k%2 == 0){
wc.word = tok;
}
else if(k%2 == 1){
wc.count = atoi(tok);
for(p=0; p < counter.size(); p++){
if(strcmp(counter[p].word, wc.word) == 0){
counter[p].count += wc.count;
matchflag = 1;
break;
}
}
if(matchflag == 0){
counter.push_back(wc);
}
matchflag = 0;
}
tok = strtok( NULL, mark); /* 2回目以降 */
k++;
}
size_t len = counter.size() * (20 + 2);
char * textout = (char *)malloc(len + 1);
memset(textout, 0, sizeof(textout));
char buf[22];
printf("Answer(size = %d): \n", counter.size());
for(p=0; p < counter.size() - 1; p++){
sprintf(buf, "%s,%d\n", counter[p].word, counter[p].count);
strcat(textout, buf);
memset(buf, 0, sizeof(buf));
}
//print new output file contents
printf("%s", textout);
//std::cout<<" output file contents: "<<fileBytes;
//close message block
std::cout<<nativeHdr<<std::endl;
// output file in the output folder
Dataset* output = data.getOutputDataset("imageOut");
DataFile* fileData = new DataFile(textout, strlen(textout), "testOut.bin");
output->addDataFile(myKey, fileData);
}
}