@@ -7,6 +7,27 @@ from stfpy.stf_inst import STFInst
7
7
from cython.operator cimport dereference, preincrement
8
8
include " stfpy/stf_lib/stf_reader_constants.pxi"
9
9
10
+ cdef class StringVectorIterator:
11
+ def __next__ (self ):
12
+ if self .c_it == self .c_end_it:
13
+ raise StopIteration
14
+ value = dereference(self .c_it)
15
+ preincrement(self .c_it)
16
+ return value
17
+
18
+ cdef class StringVector:
19
+ def __iter__ (self ):
20
+ return StringVectorIterator._construct(self .c_vec)
21
+
22
+ def __len__ (self ):
23
+ return dereference(self .c_vec).size()
24
+
25
+ def __getitem__ (self , idx ):
26
+ return dereference(self .c_vec).at(idx)
27
+
28
+ def __bool__ (self ):
29
+ return not dereference(self .c_vec).empty()
30
+
10
31
cdef class STFInstReaderIterator:
11
32
def __next__ (self ):
12
33
if self .c_it == self .c_end_it:
@@ -24,11 +45,11 @@ cdef class STFInstReader:
24
45
size_t buffer_size = __DEFAULT_BUFFER_SIZE,
25
46
bint force_single_threaded_stream = False ):
26
47
self .c_reader = new _STFInstReader(filename,
27
- only_user_mode,
28
- enable_address_translation,
29
- filter_mode_change_events,
30
- buffer_size,
31
- force_single_threaded_stream)
48
+ only_user_mode,
49
+ enable_address_translation,
50
+ filter_mode_change_events,
51
+ buffer_size,
52
+ force_single_threaded_stream)
32
53
33
54
def __dealloc__ (self ):
34
55
del self .c_reader
@@ -44,3 +65,12 @@ cdef class STFInstReader:
44
65
45
66
def close (self ):
46
67
dereference(self .c_reader).close()
68
+
69
+ def getMajorVersion (self ):
70
+ return self .c_reader.major()
71
+
72
+ def getMinorVersion (self ):
73
+ return self .c_reader.minor()
74
+
75
+ def getHeaderComments (self ):
76
+ return StringVector._construct(dereference(self .c_reader).getHeaderCommentsString())
0 commit comments