Apache Arrow (C++)
A columnar in-memory analytics layer designed to accelerate big data.
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
plasma.h File Reference
#include <errno.h>
#include <inttypes.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <memory>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include "plasma/compat.h"
#include "arrow/status.h"
#include "arrow/util/logging.h"
#include "arrow/util/macros.h"
#include "plasma/common.h"
#include "plasma/common_generated.h"

Go to the source code of this file.

Classes

struct  plasma::PlasmaObject
 
struct  plasma::ObjectTableEntry
 This type is used by the Plasma store. More...
 
struct  plasma::PlasmaStoreInfo
 The plasma store information that is exposed to the eviction policy. More...
 

Namespaces

 plasma
 

Macros

#define HANDLE_SIGPIPE(s, fd_)
 

Typedefs

typedef std::unordered_map< ObjectID, ObjectRequest > plasma::ObjectRequestMap
 Mapping from object IDs to type and status of the request. More...
 

Enumerations

enum  plasma::ObjectState : int { plasma::ObjectState::PLASMA_CREATED = 1, plasma::ObjectState::PLASMA_SEALED }
 
enum  plasma::ObjectStatus : int { plasma::ObjectStatus::OBJECT_NOT_FOUND = 0, plasma::ObjectStatus::OBJECT_FOUND = 1 }
 

Functions

ObjectTableEntry * plasma::GetObjectTableEntry (PlasmaStoreInfo *store_info, const ObjectID &object_id)
 Get an entry from the object table and return NULL if the object_id is not present. More...
 
int plasma::WarnIfSigpipe (int status, int client_sock)
 Print a warning if the status is less than zero. More...
 
std::unique_ptr< uint8_t[]> plasma::CreateObjectInfoBuffer (flatbuf::ObjectInfoT *object_info)
 

Variables

constexpr int64_t plasma::kBlockSize = 64
 Allocation granularity used in plasma for object allocation. More...
 

Macro Definition Documentation

◆ HANDLE_SIGPIPE

#define HANDLE_SIGPIPE (   s,
  fd_ 
)
Value:
do { \
Status _s = (s); \
if (!_s.ok()) { \
if (errno == EPIPE || errno == EBADF || errno == ECONNRESET) { \
ARROW_LOG(WARNING) \
<< "Received SIGPIPE, BAD FILE DESCRIPTOR, or ECONNRESET when " \
"sending a message to client on fd " \
<< fd_ \
<< ". " \
"The client on the other end may have hung up."; \
} else { \
return _s; \
} \
} \
} while (0);