#include "platform/api/platform.h" #include #include #include "platform/api/atomic_boolean.h" #include "platform/api/atomic_reference.h" #include "platform/api/ble.h" #include "platform/api/ble_v2.h" #include "platform/api/bluetooth_adapter.h" #include "platform/api/bluetooth_classic.h" #include "platform/api/condition_variable.h" #include "platform/api/count_down_latch.h" #include "platform/api/hash_utils.h" #include "platform/api/lock.h" #include "platform/api/scheduled_executor.h" #include "platform/api/server_sync.h" #include "platform/api/settable_future.h" #include "platform/api/submittable_executor.h" #include "platform/api/system_clock.h" #include "platform/api/thread_utils.h" #include "platform/api/webrtc.h" #include "platform/api/wifi.h" #include "platform/impl/g3/atomic_reference_impl.h" #include "platform/impl/g3/settable_future_impl.h" #include "platform/impl/g3/system_clock_impl.h" #include "platform/impl/shared/atomic_boolean_impl.h" #include "platform/impl/shared/file_impl.h" #include "platform/impl/shared/posix_condition_variable.h" #include "platform/impl/shared/posix_lock.h" #include "platform/port/string.h" #include "platform/ptr.h" #include "absl/base/integral_types.h" #include "absl/synchronization/mutex.h" #include "absl/time/time.h" namespace location { namespace nearby { namespace platform { namespace { std::string getPayloadPath(std::int64_t payload_id) { return "/tmp/" + std::to_string(payload_id); } } // namespace Ptr ImplementationPlatform::createSingleThreadExecutor() { return Ptr(/*new SingleThreadExecutorImpl()*/); } Ptr ImplementationPlatform::createMultiThreadExecutor( int max_concurrency) { return Ptr(/*new MultiThreadExecutorImpl()*/); } Ptr ImplementationPlatform::createScheduledExecutor() { return Ptr(/*new ScheduledExecutorImpl()*/); } Ptr> ImplementationPlatform::createAtomicReferenceAny(absl::any initial_value) { return Ptr>( new AtomicReferenceImpl(initial_value)); } Ptr> ImplementationPlatform::createSettableFutureAny() { return Ptr>(new SettableFutureImpl{}); } Ptr ImplementationPlatform::createBluetoothAdapter() { return Ptr{}; } Ptr ImplementationPlatform::createWifiMedium() { return Ptr(); } Ptr ImplementationPlatform::createCountDownLatch( std::int32_t count) { return Ptr(/*new CountDownLatchImpl(count)*/); } Ptr ImplementationPlatform::createThreadUtils() { return Ptr(/*new ThreadUtilsImpl()*/); } Ptr ImplementationPlatform::createSystemClock() { return Ptr(new SystemClockImpl()); } Ptr ImplementationPlatform::createAtomicBoolean( bool initial_value) { return Ptr(new AtomicBooleanImpl(initial_value)); } Ptr ImplementationPlatform::createInputFile( std::int64_t payload_id, std::int64_t total_size) { return MakePtr(new InputFileImpl(getPayloadPath(payload_id), total_size)); } Ptr ImplementationPlatform::createOutputFile( std::int64_t payload_id) { return MakePtr(new OutputFileImpl(getPayloadPath(payload_id))); } Ptr ImplementationPlatform::createBluetoothClassicMedium() { return Ptr(); } Ptr ImplementationPlatform::createBLEMedium() { return Ptr(); } Ptr ImplementationPlatform::createBLEMediumV2() { return Ptr(); } Ptr ImplementationPlatform::createServerSyncMedium() { return Ptr(/*new ServerSyncMediumImpl()*/); } Ptr ImplementationPlatform::createWebRtcSignalingMessenger( const std::string& self_id) { return Ptr(/*new FCMSignalingMessenger()*/); } Ptr ImplementationPlatform::createLock() { return Ptr(new PosixLock()); } Ptr ImplementationPlatform::createConditionVariable( Ptr lock) { return Ptr(new PosixConditionVariable(lock)); } Ptr ImplementationPlatform::createHashUtils() { return Ptr(/*new HashUtilsImpl()*/); } std::string ImplementationPlatform::getDeviceId() { // TODO(alexchau): Get deviceId from base return "google3"; } } // namespace platform } // namespace nearby } // namespace location