xCommonLib/service/
mod.rs

1pub 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        //
26        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        //
39        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}