Current section

Files

Jump to
erlcass c_src erlcass.h
Raw

c_src/erlcass.h

#ifndef ERLCASS_C_SRC_ERLCASS_H
#define ERLCASS_C_SRC_ERLCASS_H
#include "erl_nif.h"
#include "cassandra.h"
struct atoms
{
ERL_NIF_TERM atomOk;
ERL_NIF_TERM atomError;
ERL_NIF_TERM atomTrue;
ERL_NIF_TERM atomFalse;
ERL_NIF_TERM atomNull;
ERL_NIF_TERM atomBadArg;
ERL_NIF_TERM atomOptions;
ERL_NIF_TERM atomConsistencyLevel;
ERL_NIF_TERM atomSerialConsistencyLevel;
ERL_NIF_TERM atomLogMsgRecord;
//events atoms
ERL_NIF_TERM atomSessionConnected;
ERL_NIF_TERM atomSessionClosed;
ERL_NIF_TERM atomPreparedStatementResult;
ERL_NIF_TERM atomExecuteStatementResult;
ERL_NIF_TERM atomLogMessageReceived;
//data types
ERL_NIF_TERM atomAscii;
ERL_NIF_TERM atomBigInt;
ERL_NIF_TERM atomBlob;
ERL_NIF_TERM atomBool;
ERL_NIF_TERM atomCounter;
ERL_NIF_TERM atomDate;
ERL_NIF_TERM atomDecimal;
ERL_NIF_TERM atomDouble;
ERL_NIF_TERM atomFloat;
ERL_NIF_TERM atomFrozen;
ERL_NIF_TERM atomInet;
ERL_NIF_TERM atomInt;
ERL_NIF_TERM atomList;
ERL_NIF_TERM atomMap;
ERL_NIF_TERM atomSet;
ERL_NIF_TERM atomSmallInt;
ERL_NIF_TERM atomText;
ERL_NIF_TERM atomTime;
ERL_NIF_TERM atomTimestamp;
ERL_NIF_TERM atomTimeUuid;
ERL_NIF_TERM atomTinyInt;
ERL_NIF_TERM atomTuple;
ERL_NIF_TERM atomUuid;
ERL_NIF_TERM atomUdt;
ERL_NIF_TERM atomVarchar;
ERL_NIF_TERM atomVarint;
//column types
ERL_NIF_TERM atomColumnTypeRegular;
ERL_NIF_TERM atomColumnTypePartitionKey;
ERL_NIF_TERM atomColumnTypeClusteringKey;
ERL_NIF_TERM atomColumnTypeStatic;
ERL_NIF_TERM atomColumnTypeCompactValue;
//metadata
ERL_NIF_TERM atomMetadataSchemaVersion;
ERL_NIF_TERM atomColumnMetaColumnName;
ERL_NIF_TERM atomColumnMetaDataType;
ERL_NIF_TERM atomColumnMetaType;
//cluster setings atoms
ERL_NIF_TERM atomClusterDefaultConsistencyLevel;
ERL_NIF_TERM atomClusterSettingContactPoints;
ERL_NIF_TERM atomClusterSettingPort;
ERL_NIF_TERM atomClusterSettingProtocolVersion;
ERL_NIF_TERM atomClusterSettingNumThreadsIo;
ERL_NIF_TERM atomClusterSettingQueueSizeIo;
ERL_NIF_TERM atomClusterSettingQueueSizeEvent;
ERL_NIF_TERM atomClusterSettingCoreConnectionsPerHost;
ERL_NIF_TERM atomClusterSettingMaxConnectionsPerHost;
ERL_NIF_TERM atomClusterSettingReconnectWaitTime;
ERL_NIF_TERM atomClusterSettingMaxConcurrentCreation;
ERL_NIF_TERM atomClusterSettingMaxConcurrentRequestsThreshold;
ERL_NIF_TERM atomClusterSettingMaxRequestsPerFlush;
ERL_NIF_TERM atomClusterSettingConnectTimeout;
ERL_NIF_TERM atomClusterSettingRequestTimeout;
ERL_NIF_TERM atomClusterSettingCredentials;
ERL_NIF_TERM atomClusterSettingLoadBalanceRoundRobin;
ERL_NIF_TERM atomClusterSettingLoadBalanceDcAware;
ERL_NIF_TERM atomClusterSettingTokenAwareRouting;
ERL_NIF_TERM atomClusterSetringLatencyAwareRouting;
ERL_NIF_TERM atomClusterSettingTcpNodelay;
ERL_NIF_TERM atomClusterSettingTcpKeepalive;
ERL_NIF_TERM atomClusterSettingHeartbeatInterval;
ERL_NIF_TERM atomClusterSettingIdleTimeout;
ERL_NIF_TERM atomClusterSettingSsl;
ERL_NIF_TERM atomClusterSettingSslTrustedCerts;
ERL_NIF_TERM atomClusterSettingSslVerifyFlags;
ERL_NIF_TERM atomClusterSettingSslCert;
ERL_NIF_TERM atomClusterSettingSslPrivateKey;
ERL_NIF_TERM atomClusterSettingRetryPolicy;
ERL_NIF_TERM atomClusterSettingRetryPolicyDefault;
ERL_NIF_TERM atomClusterSettingRetryPolicyDowngradingConsistency;
ERL_NIF_TERM atomClusterSettingRetryPolicyFallthrough;
};
struct cassandra_data
{
CassCluster* cluster;
CassUuidGen* uuid_gen;
ErlNifPid log_pid;
CassConsistency defaultConsistencyLevel;
ErlNifResourceType* resCassSession;
ErlNifResourceType* resCassPrepared;
ErlNifResourceType* resCassStatement;
};
extern atoms ATOMS;
#endif