include/cld_msg.h File Reference

#include <stdint.h>

Data Structures

struct  cld_packet
 header for each packet More...
struct  cld_msg_hdr
 header for each message More...
struct  cld_msg_resp
 standard response for each message More...
struct  cld_msg_open
 OPEN message. More...
struct  cld_msg_open_resp
 OPEN message response. More...
struct  cld_msg_get
 GET message. More...
struct  cld_msg_get_resp
 GET message response. More...
struct  cld_msg_data
 DATA message. More...
struct  cld_msg_put
 PUT message. More...
struct  cld_msg_close
 CLOSE message. More...
struct  cld_msg_del
 DEL message. More...
struct  cld_msg_unlock
 UNLOCK message. More...
struct  cld_msg_lock
 LOCK message. More...
struct  cld_msg_event
 Server-to-client EVENT message. More...

Defines

#define CLD_PKT_MAGIC   "CLDc1pkt"
#define CLD_MSG_MAGIC   "CLDc1msg"
#define CLD_ALIGN8(n)   ((8 - ((n) & 7)) & 7)
#define SIDFMT   "%016llX"
#define SIDARG(sid)   cld_sid2llu(sid)

Enumerations

enum  {
  CLD_MAGIC_SZ = 8, CLD_SID_SZ = 8, CLD_INODE_NAME_MAX = 256, CLD_MAX_USERNAME = 32,
  CLD_MAX_SECRET_KEY = 128, CLD_MAX_DATA_MSGS = 1024
}
enum  cld_msg_ops {
  cmo_nop = 0, cmo_new_sess = 1, cmo_open = 2, cmo_get_meta = 3,
  cmo_get = 4, cmo_data_s = 5, cmo_put = 6, cmo_close = 7,
  cmo_del = 8, cmo_lock = 9, cmo_unlock = 10, cmo_trylock = 11,
  cmo_ack = 12, cmo_end_sess = 13, cmo_ping = 30, cmo_not_master = 31,
  cmo_event = 32, cmo_data_c = 33
}
 available RPC operations More...
enum  cle_err_codes {
  CLE_OK = 0, CLE_SESS_EXISTS = 1, CLE_SESS_INVAL = 2, CLE_DB_ERR = 3,
  CLE_BAD_PKT = 4, CLE_INODE_INVAL = 5, CLE_NAME_INVAL = 6, CLE_OOM = 7,
  CLE_FH_INVAL = 8, CLE_DATA_INVAL = 9, CLE_LOCK_INVAL = 10, CLE_LOCK_CONFLICT = 11,
  CLE_LOCK_PENDING = 12, CLE_MODE_INVAL = 13, CLE_INODE_EXISTS = 14, CLE_DIR_NOTEMPTY = 15,
  CLE_INTERNAL_ERR = 16, CLE_TIMEOUT = 17, CLE_SIG_INVAL = 18
}
 CLD error codes. More...
enum  cld_open_modes {
  COM_READ = (1 << 0), COM_WRITE = (1 << 1), COM_LOCK = (1 << 2), COM_ACL = (1 << 3),
  COM_CREATE = (1 << 4), COM_EXCL = (1 << 5), COM_DIRECTORY = (1 << 6)
}
 availble OPEN mode flags More...
enum  cld_events {
  CE_UPDATED = (1 << 0), CE_DELETED = (1 << 1), CE_LOCKED = (1 << 2), CE_MASTER_FAILOVER = (1 << 3),
  CE_SESS_FAILED = (1 << 4)
}
 potential events client may receive More...
enum  cld_lock_flags { CLF_SHARED = (1 << 0) }
 LOCK flags. More...

Functions

unsigned long long cld_sid2llu (const uint8_t *sid)
void __cld_rand64 (void *p)

Define Documentation

#define CLD_ALIGN8 (  )     ((8 - ((n) & 7)) & 7)

#define CLD_MSG_MAGIC   "CLDc1msg"

#define CLD_PKT_MAGIC   "CLDc1pkt"

#define SIDARG ( sid   )     cld_sid2llu(sid)

#define SIDFMT   "%016llX"


Enumeration Type Documentation

anonymous enum

Enumerator:
CLD_MAGIC_SZ  length of magic number
CLD_SID_SZ  length of session id
CLD_INODE_NAME_MAX  max total pathname len
CLD_MAX_USERNAME  includes req.

nul

CLD_MAX_SECRET_KEY  includes req.

nul

CLD_MAX_DATA_MSGS  max data msgs in a stream

enum cld_events

potential events client may receive

Enumerator:
CE_UPDATED  contents updated
CE_DELETED  inode deleted
CE_LOCKED  lock acquired
CE_MASTER_FAILOVER  master failover
CE_SESS_FAILED 

LOCK flags.

Enumerator:
CLF_SHARED  a shared (read) lock

available RPC operations

Enumerator:
cmo_nop  no op
cmo_new_sess  new session
cmo_open  open file
cmo_get_meta  get metadata
cmo_get  get metadata + data
cmo_data_s  data message to server
cmo_put  put data
cmo_close  close file
cmo_del  delete file
cmo_lock  lock
cmo_unlock  unlock
cmo_trylock  trylock
cmo_ack  ack of seqid rx'd
cmo_end_sess  end session
cmo_ping  server to client ping
cmo_not_master  I am not the master!
cmo_event  server->cli async event
cmo_data_c  data message to client

availble OPEN mode flags

Enumerator:
COM_READ  read
COM_WRITE  write
COM_LOCK  lock
COM_ACL  ACL update.
COM_CREATE  create file, if not exist
COM_EXCL  fail create if file exists
COM_DIRECTORY  operate on a directory

CLD error codes.

Enumerator:
CLE_OK  success / no error
CLE_SESS_EXISTS  session exists
CLE_SESS_INVAL  session doesn't exist
CLE_DB_ERR  db error
CLE_BAD_PKT  invalid/corrupted packet
CLE_INODE_INVAL  inode doesn't exist
CLE_NAME_INVAL  inode name invalid
CLE_OOM  server out of memory
CLE_FH_INVAL  file handle invalid
CLE_DATA_INVAL  invalid data pkt
CLE_LOCK_INVAL  invalid lock
CLE_LOCK_CONFLICT  conflicting lock held
CLE_LOCK_PENDING  lock waiting to be acq.

CLE_MODE_INVAL  op incompat.

w/ file mode

CLE_INODE_EXISTS  inode exists
CLE_DIR_NOTEMPTY  dir not empty
CLE_INTERNAL_ERR  nonspecific internal err
CLE_TIMEOUT  session timed out
CLE_SIG_INVAL  HMAC sig bad / auth failed.


Function Documentation

void __cld_rand64 ( void *  p  ) 

unsigned long long cld_sid2llu ( const uint8_t *  sid  ) 


Generated on Tue Aug 11 09:24:54 2009 for CLD by  doxygen 1.5.9