raw_os.cpp revision d75fd9e9b73995a6303ae99977ab1baf9db9b42f
1ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal/* 2ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * Copyright (C) 2016 The Android Open Source Project 3ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * 4ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * Licensed under the Apache License, Version 2.0 (the "License"); 5ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * you may not use this file except in compliance with the License. 6ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * You may obtain a copy of the License at 7ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * 8ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * http://www.apache.org/licenses/LICENSE-2.0 9ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * 10ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * Unless required by applicable law or agreed to in writing, software 11ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * distributed under the License is distributed on an "AS IS" BASIS, 12ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * See the License for the specific language governing permissions and 14ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal * limitations under the License. 15ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal */ 16ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal 17ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal#include <time.h> 18b8f8f6ab38fe147fa7aed5cdd9f9ce0e5a3a2e2fmukesh agrawal#include <unistd.h> 19ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal 20ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal#include "wifilogd/raw_os.h" 21ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal 22ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawalnamespace android { 23ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawalnamespace wifilogd { 24ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal 25ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawalRawOs::RawOs() {} 26ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawalRawOs::~RawOs() {} 27ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal 28ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal// All methods in RawOs should be thin wrappers over library/system calls. 29ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal// In particular, the methods in RawOs should not have any logic in them. 30ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal// Instead, all logic should be placed in Os, so that said logic can be tested. 31ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal 32ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawalint RawOs::ClockGettime(clockid_t clock_id, struct timespec* ts) const { 33ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal return clock_gettime(clock_id, ts); 34ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal} 35ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal 36d75fd9e9b73995a6303ae99977ab1baf9db9b42fmukesh agrawalssize_t RawOs::Recv(int sockfd, void* buf, size_t buflen, int flags) { 37d75fd9e9b73995a6303ae99977ab1baf9db9b42fmukesh agrawal return recv(sockfd, buf, buflen, flags); 38d75fd9e9b73995a6303ae99977ab1baf9db9b42fmukesh agrawal} 39d75fd9e9b73995a6303ae99977ab1baf9db9b42fmukesh agrawal 40b8f8f6ab38fe147fa7aed5cdd9f9ce0e5a3a2e2fmukesh agrawalssize_t RawOs::Write(int fd, const void* buf, size_t buflen) { 41b8f8f6ab38fe147fa7aed5cdd9f9ce0e5a3a2e2fmukesh agrawal return write(fd, buf, buflen); 42b8f8f6ab38fe147fa7aed5cdd9f9ce0e5a3a2e2fmukesh agrawal} 43b8f8f6ab38fe147fa7aed5cdd9f9ce0e5a3a2e2fmukesh agrawal 44ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal} // namespace wifilogd 45ec533e0f59b7e88bac734d538f596ab095bc74camukesh agrawal} // namespace android 46