// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "remoting/ios/domain/host_info.h"
#include "base/i18n/time_formatting.h"
#include "base/strings/sys_string_conversions.h"
#include "base/time/time.h"
#include "remoting/proto/remoting/v1/host_info.pb.h"
@implementation HostInfo
@synthesize createdTime = _createdTime;
@synthesize hostId = _hostId;
@synthesize hostName = _hostName;
@synthesize hostOs = _hostOs;
@synthesize hostOsVersion = _hostOsVersion;
@synthesize hostVersion = _hostVersion;
@synthesize jabberId = _jabberId;
@synthesize kind = _kind;
@synthesize publicKey = _publicKey;
@synthesize updatedTime = _updatedTime;
@synthesize offlineReason = _offlineReason;
@synthesize isOnline = _isOnline;
- (instancetype)initWithRemotingHostInfo:
(const remoting::apis::v1::HostInfo&)hostInfo {
if ((self = [super init])) {
_hostId = base::SysUTF8ToNSString(hostInfo.host_id());
_hostName = base::SysUTF8ToNSString(hostInfo.host_name());
_hostOs = base::SysUTF8ToNSString(hostInfo.host_os_name());
_hostOsVersion = base::SysUTF8ToNSString(hostInfo.host_os_version());
_hostVersion = base::SysUTF8ToNSString(hostInfo.host_version());
_jabberId = base::SysUTF8ToNSString(hostInfo.jabber_id());
_ftlId = base::SysUTF8ToNSString(hostInfo.ftl_id());
_publicKey = base::SysUTF8ToNSString(hostInfo.public_key());
base::Time last_seen_time =
base::Time::UnixEpoch() + base::Milliseconds(hostInfo.last_seen_time());
_updatedTime = base::SysUTF16ToNSString(
base::TimeFormatShortDateAndTime(last_seen_time));
_offlineReason = base::SysUTF8ToNSString(hostInfo.host_offline_reason());
_isOnline = hostInfo.status() == remoting::apis::v1::HostInfo_Status_ONLINE;
}
return self;
}
- (NSString*)description {
return
[NSString stringWithFormat:@"HostInfo: name=%@ online=%@ updatedTime= %@",
_hostName, @(_isOnline), _updatedTime];
}
@end