NVBIO
Main Page
Modules
Classes
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
nvSetBWT
input_thread.h
Go to the documentation of this file.
1
/*
2
* nvbio
3
* Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
* * Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* * Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
* * Neither the name of the NVIDIA CORPORATION nor the
13
* names of its contributors may be used to endorse or promote products
14
* derived from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
* DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
20
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*/
27
28
// input_thread.h
29
//
30
31
#pragma once
32
33
#include <
nvbio/basic/pipeline_context.h
>
34
#include <
nvbio/basic/console.h
>
35
#include <
nvbio/basic/timer.h
>
36
#include <
nvbio/basic/threads.h
>
37
#include <
nvbio/io/sequence/sequence.h
>
38
#include <stdio.h>
39
#include <stdlib.h>
40
41
using namespace
nvbio;
42
46
struct
InputStage
47
{
48
typedef
void
argument_type
;
49
typedef
io::SequenceDataHost
return_type
;
50
57
InputStage
(
io::SequenceDataStream
* file,
const
uint32
max_strings,
const
uint32
max_bps) :
58
m_file ( file ),
59
m_max_strings ( max_strings ),
60
m_max_bps ( max_bps )
61
{}
62
65
bool
process
(
PipelineContext
& context)
66
{
67
Timer
timer;
68
timer.
start
();
69
70
// fetch the output
71
io::SequenceDataHost
* output = context.
output
<
io::SequenceDataHost
>();
72
73
log_debug
(stderr,
" loading.. started (%u, %u)\n"
, m_max_strings, m_max_bps);
74
const
int
ret =
io::next
(
DNA
, output, m_file, m_max_strings, m_max_bps );
75
log_debug
(stderr,
" loading.. done\n"
);
76
77
timer.
stop
();
78
m_time += timer.
seconds
();
79
return
ret;
80
}
81
82
io::SequenceDataStream
*
m_file
;
83
uint32
m_max_strings
;
84
uint32
m_max_bps
;
85
float
m_time
;
86
};
Generated on Wed Feb 25 2015 08:33:05 for NVBIO by
1.8.4