xCommonLib/service/
mod.rs1pub mod sys_service_api;
2use self::sys_service_api::{
3 DXCProtocolHeader, LoadServiceRequest, ServiceKey, UnloadServiceRequest,
4};
5use protobuf::CodedInputStream;
6
7impl ServiceKey {
8 pub fn new(dxc_name: String, dxc_version: String, service_name: String) -> ServiceKey {
9 Self {
10 dxc_id: String::default(),
11 dxc_name: dxc_name,
12 dxc_version: dxc_version,
13 service_name: service_name,
14 cached_size: protobuf::rt::CachedSize::new(),
15 }
16 }
17
18 pub fn is_empty(&self) -> bool {
19 return self.dxc_name.is_empty()
20 || self.dxc_version.is_empty()
21 || self.service_name.is_empty();
22 }
23
24 pub fn skip_from_bytes(bytes: &[u8]) -> u32 {
25 let mut is: CodedInputStream<'_> = CodedInputStream::from_bytes(bytes);
27 let _tag = is.read_raw_tag_or_eof().unwrap();
28 let len = is.read_uint32().unwrap();
29
30 is.skip_raw_bytes(len).unwrap();
31
32 is.pos() as u32
33 }
34}
35
36impl DXCProtocolHeader {
37 pub fn skip_from_bytes(bytes: &[u8]) -> u32 {
38 let mut is: CodedInputStream<'_> = CodedInputStream::from_bytes(bytes);
40 let _tag = is.read_raw_tag_or_eof().unwrap();
41 let len = is.read_uint32().unwrap();
42 is.skip_raw_bytes(len).unwrap();
43 is.pos() as u32
44 }
45}
46
47impl LoadServiceRequest {
48 pub fn new(
49 dxc_name: String,
50 dxc_version: String,
51 service_name: String,
52 only_build_ipc: bool,
53 config: String,
54 ) -> LoadServiceRequest {
55 LoadServiceRequest {
56 dxc_name,
57 dxc_version,
58 service_name,
59 only_build_ipc,
60 config,
61 cached_size: protobuf::rt::CachedSize::default(),
62 }
63 }
64}
65
66impl UnloadServiceRequest {
67 pub fn new(
68 dxc_name: String,
69 dxc_version: String,
70 service_name: String,
71 ) -> UnloadServiceRequest {
72 UnloadServiceRequest {
73 dxc_name,
74 dxc_version,
75 service_name,
76
77 cached_size: protobuf::rt::CachedSize::default(),
78 }
79 }
80}