defs.h 2.2 KB
Newer Older
羽飞's avatar
羽飞 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
/* Copyright (c) 2021 Xie Meiyi(xiemeiyi@hust.edu.cn) and OceanBase and/or its affiliates. All rights reserved.
miniob is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
         http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details. */

//
// Created by Longda on 2010
//

#ifndef __COMMON_DEFS_H__
#define __COMMON_DEFS_H__

#include <errno.h>
#include <fstream>
#include <iostream>
#include <memory>
#include <string>
#include <sys/syscall.h>
#include <sys/types.h>
#include <unistd.h>

#include "common/version.h"
namespace common {

#ifndef gettid
#if defined(__MACH__)
#define gettid() ((long long)pthread_self())
#elif defined(LINUX)
#define gettid() ((long long)pthread_self())
#endif

#endif

39 40
inline const std::string &theSwVersion()
{
羽飞's avatar
羽飞 已提交
41 42 43 44 45 46 47
  static const std::string swVersion(VERSION_STR);

  return swVersion;
}

enum {
  // General Error Codes
48 49 50 51 52 53 54 55
  STATUS_SUCCESS = 0,     //!< Success status should be zero,
  STATUS_INVALID_PARAM,   //!< Invalid parameter
  STATUS_FAILED_INIT,     //!< Failed to init program
  STATUS_PROPERTY_ERR,    //!< Property error
  STATUS_INIT_LOG,        //!< log error
  STATUS_INIT_THREAD,     //!< failed to init thread
  STATUS_FAILED_JOB,      //!< Failed to do job
  STATUS_FAILED_NETWORK,  //!< Network failure
羽飞's avatar
羽飞 已提交
56 57

  STATUS_UNKNOW_ERROR,
58
  STATUS_LAST_ERR  //!< last error code
羽飞's avatar
羽飞 已提交
59 60 61 62 63 64

};

const unsigned int ONE_KILO = 1024;
const unsigned int ONE_MILLION = ONE_KILO * ONE_KILO;
const unsigned int ONE_GIGA = ONE_MILLION * ONE_KILO;
65
const unsigned int FILENAME_LENGTH_MAX = 256;  // the max filename length
羽飞's avatar
羽飞 已提交
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84

static const char FILE_PATH_SPLIT = '/';
static const char FILE_PATH_SPLIT_STR[] = "/";

/*
 * Define types
 *
 */
typedef unsigned char u8_t;
typedef unsigned short u16_t;
typedef unsigned int u32_t;
typedef unsigned long long u64_t;

typedef char s8_t;
typedef short s16_t;
typedef int s32_t;
typedef long long s64_t;

#define LOCAL_HOST "localhost"
羽飞's avatar
羽飞 已提交
85
#define EPSILON (1E-6)
羽飞's avatar
羽飞 已提交
86

87 88
}  // namespace common
#endif  //__COMMON_DEFS_H__