BAOB¶
BAOBs, or Binary All-sized OBjects, are the preferred way of sharing files between SMOK server and SMOK devices. They are monotonically versioned, with each update to the file adding a 1 to version.
Upon reconnection, a synchronization with the server proceeds, with the usual last-write-wins rule.
- class smok.baob.BAOB(device: SMOKDevice, key: str)¶
A Binary All-sized OBject.
Note that a BAOB will not signal that it does not exist upon construction, it will rather do so when queried about version or value.
To create a new BAOB, just get a BAOB from device with given name and assign any value to it.
- property value: bytes¶
This property is both gettable and settable.
- Returns
value of this BAOB
- Raises
KeyError – this BAOB does not exist
- property version: int¶
- Returns
version of this BAOB or -1 if does not exist.
Note that if a client has a BAOB that server doesn’t, such BAOB will be deleted. A client can upload his BAOB to server only if server has lower version.