turn usim object into a unique_ptr

This commit is contained in:
Andre Puschmann 2019-06-03 10:52:13 +02:00
parent 4ce8d84339
commit dcb04c6461
4 changed files with 10 additions and 16 deletions

View File

@ -114,7 +114,7 @@ private:
srsue::rrc rrc;
srsue::nas nas;
srsue::gw gw;
srsue::usim_base* usim;
std::unique_ptr<usim_base> usim;
srslte::logger* logger;

View File

@ -58,7 +58,7 @@ class usim_base
public:
usim_base();
virtual ~usim_base();
static usim_base* get_instance(usim_args_t* args);
static std::unique_ptr<usim_base> get_instance(usim_args_t* args);
virtual int init(usim_args_t *args, srslte::log *usim_log_) = 0;
virtual void stop() = 0;

View File

@ -103,9 +103,9 @@ int ue_stack_lte::init(const stack_args_t& args_, srslte::logger* logger_)
mac.init(phy, &rlc, &rrc, &mac_log);
rlc.init(&pdcp, &rrc, NULL, &rlc_log, &mac, 0 /* RB_ID_SRB0 */);
pdcp.init(&rlc, &rrc, &gw, &pdcp_log, 0 /* RB_ID_SRB0 */, SECURITY_DIRECTION_UPLINK);
nas.init(usim, &rrc, &gw, &nas_log, args.nas);
nas.init(usim.get(), &rrc, &gw, &nas_log, args.nas);
gw.init(&pdcp, &nas, &gw_log, args.gw);
rrc.init(phy, &mac, &rlc, &pdcp, &nas, usim, &gw, &mac, &rrc_log, args.rrc);
rrc.init(phy, &mac, &rlc, &pdcp, &nas, usim.get(), &gw, &mac, &rrc_log, args.rrc);
running = true;

View File

@ -28,22 +28,16 @@
namespace srsue {
usim_base* usim_base::get_instance(usim_args_t* args)
std::unique_ptr<usim_base> usim_base::get_instance(usim_args_t* args)
{
usim_base* instance = NULL;
if (args->mode == "soft") {
instance = new usim();
}
#if HAVE_PCSC
else if (args->mode == "pcsc") {
instance = new pcsc_usim();
if (args->mode == "pcsc") {
return std::unique_ptr<usim_base>(new pcsc_usim());
}
#endif
else {
// default to soft USIM
instance = new usim();
}
return(instance);
// default to soft USIM
return std::unique_ptr<usim_base>(new usim());
}
usim_base::usim_base() {