laforge has uploaded this change for review. (
https://gerrit.osmocom.org/c/pysim/+/38012?usp=email )
Change subject: pySim.esim.saip.File: Turn file_size into a computed property
......................................................................
pySim.esim.saip.File: Turn file_size into a computed property
This way, we can use file_size for both record-oriented and transparent EF
Change-Id: Ib787cabe969202073a8c10042e200f3d2c29db73
---
M pySim/esim/saip/__init__.py
1 file changed, 14 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/12/38012/1
diff --git a/pySim/esim/saip/__init__.py b/pySim/esim/saip/__init__.py
index f934a01..88d7755 100644
--- a/pySim/esim/saip/__init__.py
+++ b/pySim/esim/saip/__init__.py
@@ -112,6 +112,7 @@
self.arr = None
self.rec_len: Optional[int] = None
self.nb_rec: Optional[int] = None
+ self._file_size = 0
self.high_update: bool = False
self.shareable: bool = True
self.df_name = None
@@ -129,6 +130,16 @@
return self.template.name
return None
+ @property
+ def file_size(self) -> Optional[int]:
+ """Return the size of the file in bytes."""
+ if self.file_type in ['LF', 'CY']:
+ return self.nb_rec * self.rec_len
+ elif self.file_type in ['TR', 'BT']:
+ return self._file_size
+ else:
+ return None
+
@staticmethod
def get_tuplelist_item(l: List[Tuple], key: str):
"""get the [first] value matching given key from a list of (key,
value) tuples."""
@@ -194,7 +205,7 @@
if self.file_type in ['LF', 'CY']:
fdb_dec['file_type'] = 'working_ef'
if self.nb_rec and self.rec_len:
- fileDescriptor['efFileSize'] = self._encode_file_size(self.nb_rec
* self.rec_len)
+ fileDescriptor['efFileSize'] =
self._encode_file_size(self.file_size)
if self.file_type == 'LF':
fdb_dec['structure'] = 'linear_fixed'
elif self.file_type == 'CY':
@@ -263,7 +274,7 @@
if fdb_dec['file_type'] == 'working_ef':
efFileSize = fileDescriptor.get('efFileSize', None)
if efFileSize:
- self.file_size = self._decode_file_size(efFileSize)
+ self._file_size = self._decode_file_size(efFileSize)
if fd_dec['num_of_rec']:
self.nb_rec = fd_dec['num_of_rec']
if fd_dec['record_len']:
@@ -277,7 +288,7 @@
elif fdb_dec['structure'] == 'ber_tlv':
self.file_type = 'BT'
if 'maximumFileSize' in pefi:
- self.file_size =
self._decode_file_size(pefi['maximumFileSize'])
+ self._file_size =
self._decode_file_size(pefi['maximumFileSize'])
specialFileInformation = pefi.get('specialFileInformation',
None)
if specialFileInformation:
if specialFileInformation[0] & 0x80:
--
To view, visit
https://gerrit.osmocom.org/c/pysim/+/38012?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ib787cabe969202073a8c10042e200f3d2c29db73
Gerrit-Change-Number: 38012
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>