Skip to content
Snippets Groups Projects
Commit 304ac809 authored by Harpo Roeder's avatar Harpo Roeder
Browse files

add ContentTypeStore

parent 346d79ab
No related branches found
No related tags found
1 merge request!3Add ContentTypeStore
......@@ -20,7 +20,8 @@ enum class ContentType(val value: Long) {
VOUCH(11),
CLAIM(12),
BANNER(13),
OPINION(14)
OPINION(14),
STORE(15)
}
enum class ClaimType(val value: String) {
......@@ -881,4 +882,4 @@ class Models {
.build();
}
}
}
\ No newline at end of file
}
......@@ -40,55 +40,51 @@ class ProcessHandle constructor(
)
}
fun setUsername(username: String): Pointer {
fun setCRDTItem(contentType: Long, value: ByteArray): Pointer {
return publish(
ContentType.USERNAME.value,
contentType,
ByteArray(0),
null,
LWWElement(
username.toByteArray(),
value,
Date().time
),
mutableListOf()
)
}
fun setUsername(username: String): Pointer {
return setCRDTItem(
ContentType.USERNAME.value,
username.toByteArray()
)
}
fun setDescription(description: String): Pointer {
return publish(
return setCRDTItem(
ContentType.DESCRIPTION.value,
ByteArray(0),
null,
LWWElement(
description.toByteArray(),
Date().time
),
mutableListOf()
description.toByteArray(),
)
}
fun setStore(storeLink: String): Pointer {
return setCRDTItem(
ContentType.STORE.value,
storeLink.toByteArray(),
)
}
fun setBanner(banner: Pointer): Pointer {
return publish(
return setCRDTItem(
ContentType.BANNER.value,
ByteArray(0),
null,
LWWElement(
banner.toProto().toByteArray(),
Date().time
),
mutableListOf()
banner.toProto().toByteArray(),
)
}
fun setAvatar(avatar: Pointer): Pointer {
return publish(
return setCRDTItem(
ContentType.AVATAR.value,
ByteArray(0),
null,
LWWElement(
avatar.toProto().toByteArray(),
Date().time
),
mutableListOf()
avatar.toProto().toByteArray(),
)
}
......
......@@ -7,11 +7,12 @@ class SystemState(
val processes: Array<Process>,
val username: String,
val description: String,
val store: String,
val avatar: Pointer?,
val banner: Pointer?
) {
override fun toString(): String {
return "(servers: $servers, processes: $processes, username: $username, description: $description, avatar: $avatar, banner: $banner)";
return "(servers: $servers, processes: $processes, username: $username, description: $description, store: $store, avatar: $avatar, banner: $banner)";
}
companion object {
......@@ -25,6 +26,7 @@ class SystemState(
var username = ""
var description = ""
var store = ""
var avatar: Pointer? = null
var banner: Pointer? = null
proto.crdtItems.forEach { item ->
......@@ -35,6 +37,9 @@ class SystemState(
ContentType.DESCRIPTION.value -> {
description = item.value.decodeToString()
}
ContentType.STORE.value -> {
store = item.value.decodeToString()
}
ContentType.AVATAR.value -> {
avatar = Pointer.fromProto(Protocol.Pointer.parseFrom(item.value))
}
......@@ -44,7 +49,7 @@ class SystemState(
}
}
return SystemState(servers.toTypedArray(), processes.toTypedArray(), username, description, avatar, banner)
return SystemState(servers.toTypedArray(), processes.toTypedArray(), username, description, store, avatar, banner)
}
}
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment