Android-cuttlefish cvd tool
pdu_format_builder.h
Go to the documentation of this file.
1//
2// Copyright (C) 2022 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16#pragma once
17
18#include <string>
19
20namespace cuttlefish {
21
22// Builds PDU format strings used to send SMS to Cuttlefish modem simulator.
23//
24// PDU format is specified by the Etsi organization in GSM 03.40
25// https://www.etsi.org/deliver/etsi_gts/03/0340/05.03.00_60/gsmts_0340v050300p.pdf
26//
27// The resulting PDU format string encapsulates different parameters
28// values like:
29// * The phone number.
30// * Data coding scheme. 7 bit Alphabet or 8 bit (used in e.g. smart
31// messaging, OTA provisioning etc)
32// * User data.
33//
34// NOTE: For sender phone number, only international numbers following the
35// E.164 format (https://www.itu.int/rec/T-REC-E.164) are supported.
36//
37// NOTE: The coding scheme is not parameterized yet using always the 7bit
38// Alphabet coding scheme.
40 public:
41 void SetUserData(const std::string& user_data);
42 void SetSenderNumber(const std::string& number);
43 // Returns the corresponding PDU format string, returns an empty string if
44 // the User Data or the Sender Number set are invalid.
45 std::string Build();
46
47 private:
48 std::string user_data_;
49 std::string sender_number_;
50};
51
52} // namespace cuttlefish
Definition: pdu_format_builder.h:39
std::string sender_number_
Definition: pdu_format_builder.h:49
std::string user_data_
Definition: pdu_format_builder.h:48
void SetSenderNumber(const std::string &number)
Definition: pdu_format_builder.cc:142
void SetUserData(const std::string &user_data)
Definition: pdu_format_builder.cc:138
std::string Build()
Definition: pdu_format_builder.cc:146
Definition: alloc_utils.cpp:23