Skip to content

Midas C++ API - system internals (msystem.h)

This page contains the defines, macros and data structures from msystem.h, which midas uses internally (e.g. for the network protocol and the layout of the ODB in shared memory). Most programs will not need these.

System Defines

Macros

data representations

DRF_G_FLOAT
#define DRF_G_FLOAT (1<<6)

Defined in include/msystem.h:51

DRF_IEEE
#define DRF_IEEE (1<<5)

Defined in include/msystem.h:50

DRI_16
#define DRI_16 (1<<0)

Defined in include/msystem.h:45

DRI_32
#define DRI_32 (1<<1)

Defined in include/msystem.h:46

DRI_64
#define DRI_64 (1<<2)

Defined in include/msystem.h:47

DRI_BIG_ENDIAN
#define DRI_BIG_ENDIAN (1<<4)

Defined in include/msystem.h:49

DRI_LITTLE_ENDIAN
#define DRI_LITTLE_ENDIAN (1<<3)

Defined in include/msystem.h:48

Definition of implementation specific constants

LOCAL_ROUTINES
#define LOCAL_ROUTINES

Defined in include/msystem.h:122

MAX_STRING_LENGTH
#define MAX_STRING_LENGTH 256

max string length for odb

Defined in include/msystem.h:113

MESSAGE_BUFFER_NAME
#define MESSAGE_BUFFER_NAME "SYSMSG"

buffer name for messages

Defined in include/msystem.h:111

MESSAGE_BUFFER_SIZE
#define MESSAGE_BUFFER_SIZE 100000

buffer used for messages

Defined in include/msystem.h:110

NET_BUFFER_SIZE
#define NET_BUFFER_SIZE (8*1024*1024)

size of network receive buffers

Defined in include/msystem.h:114

YBOS_SUPPORT
#define YBOS_SUPPORT

Defined in include/msystem.h:131

FD_SETSIZE

#define FD_SETSIZE 32

Defined in include/msystem.h:206

LOG_TYPE_DISK

#define LOG_TYPE_DISK 1

Defined in include/msystem.h:501

LOG_TYPE_FTP

#define LOG_TYPE_FTP 3

Defined in include/msystem.h:503

LOG_TYPE_SFTP

#define LOG_TYPE_SFTP 4

Defined in include/msystem.h:504

LOG_TYPE_TAPE

#define LOG_TYPE_TAPE 2

Defined in include/msystem.h:502

MSG_BM

#define MSG_BM 1

Defined in include/msystem.h:302

MSG_CLIENT

#define MSG_CLIENT 3

Defined in include/msystem.h:304

MSG_LISTEN

#define MSG_LISTEN 5

Defined in include/msystem.h:306

MSG_ODB

#define MSG_ODB 2

Defined in include/msystem.h:303

MSG_SERVER

#define MSG_SERVER 4

Defined in include/msystem.h:305

MSG_WATCHDOG

#define MSG_WATCHDOG 6

Defined in include/msystem.h:307

O_BINARY

#define O_BINARY 0

Defined in include/msystem.h:226

O_TEXT

#define O_TEXT 0

Defined in include/msystem.h:227

System Macros

Macros

ABS

#define ABS(a) (((a) < 0) ? -(a) : (a))

Defined in include/msystem.h:246

DWORD_SWAP

#define DWORD_SWAP(x)

SWAP DWORD macro

Defined in include/msystem.h:74

MAX

#define MAX(a, b) (((a) > (b)) ? (a) : (b))

Defined in include/msystem.h:238

MIN

#define MIN(a, b) (((a) < (b)) ? (a) : (b))

Defined in include/msystem.h:242

QWORD_SWAP

#define QWORD_SWAP(x)

SWAP QWORD macro

Defined in include/msystem.h:86

TELL

#define TELL(fh) lseek(fh, 0, SEEK_CUR)

Defined in include/msystem.h:250

TRUNCATE

#define TRUNCATE(fh) ftruncate(fh, TELL(fh))

Defined in include/msystem.h:256

WORD_SWAP

#define WORD_SWAP(x)

SWAP WORD macro

Defined in include/msystem.h:65

System Structure Declarations

Classes

callback_addr

Defined in include/msystem.h:317

Methods
clear
void clear()

Defined in include/msystem.h:327

Attributes
debug
int debug

Defined in include/msystem.h:322

directory
std::string directory

Defined in include/msystem.h:324

experiment
std::string experiment

Defined in include/msystem.h:323

host_name
std::string host_name

Defined in include/msystem.h:318

host_port1
unsigned short host_port1

Defined in include/msystem.h:319

host_port2
unsigned short host_port2

Defined in include/msystem.h:320

host_port3
unsigned short host_port3

Defined in include/msystem.h:321

user
std::string user

Defined in include/msystem.h:325

DATABASE

Defined in include/msystem.h:449

Attributes
attached
BOOL attached

TRUE if database is attached

Defined in include/msystem.h:452

client_index
INT client_index

index to CLIENT str. in buf.

Defined in include/msystem.h:453

database_data
void *database_data

pointer to database data

Defined in include/msystem.h:455

database_header
DATABASE_HEADER *database_header

pointer to database header

Defined in include/msystem.h:454

hDB
HNDLE hDB

Database handle

Defined in include/msystem.h:450

inside_lock_unlock
BOOL inside_lock_unlock

protection against recursive call to db_lock/unlock

Defined in include/msystem.h:466

lock_cnt
INT lock_cnt

flag to avoid multiple locks

Defined in include/msystem.h:457

mutex
MUTEX_T *mutex

mutex for multi-thread access

Defined in include/msystem.h:464

name
char name[NAME_LENGTH]

Name of database

Defined in include/msystem.h:451

protect
BOOL protect

read/write protection

Defined in include/msystem.h:461

protect_read
BOOL protect_read

read is permitted

Defined in include/msystem.h:462

protect_write
BOOL protect_write

write is permitted

Defined in include/msystem.h:463

semaphore
HNDLE semaphore

semaphore handle

Defined in include/msystem.h:456

shm_adr
void* shm_adr

address of shared memory

Defined in include/msystem.h:458

shm_handle
HNDLE shm_handle

handle (id) to shared memory

Defined in include/msystem.h:460

shm_size
HNDLE shm_size

size of shared memory

Defined in include/msystem.h:459

timeout
INT timeout

timeout for mutex and semaphore

Defined in include/msystem.h:465

DATABASE_CLIENT

Defined in include/msystem.h:417

Attributes
last_activity
DWORD last_activity

time of last activity

Defined in include/msystem.h:424

max_index
INT max_index

index of last opren record

Defined in include/msystem.h:426

name
char name[NAME_LENGTH]

name of client

Defined in include/msystem.h:418

num_open_records
INT num_open_records

number of open records

Defined in include/msystem.h:423

open_record
OPEN_RECORD open_record[MAX_OPEN_RECORDS]

Defined in include/msystem.h:428

pid
INT pid

process ID

Defined in include/msystem.h:419

port
INT port

UDP port for wake up

Defined in include/msystem.h:422

unused
INT unused

was thread handle

Defined in include/msystem.h:421

unused0
INT unused0

was thread ID

Defined in include/msystem.h:420

watchdog_timeout
DWORD watchdog_timeout

timeout in ms

Defined in include/msystem.h:425

DATABASE_HEADER

Defined in include/msystem.h:432

Attributes
client
DATABASE_CLIENT client[MAX_CLIENTS]

entries for clients

Defined in include/msystem.h:443

data_size
INT data_size

size of data area in bytes

Defined in include/msystem.h:438

first_free_data
INT first_free_data

first free data memory

Defined in include/msystem.h:441

first_free_key
INT first_free_key

first free key memory

Defined in include/msystem.h:440

key_size
INT key_size

size of key area in bytes

Defined in include/msystem.h:437

max_client_index
INT max_client_index

index of last client + 1

Defined in include/msystem.h:436

name
char name[NAME_LENGTH]

name of database

Defined in include/msystem.h:433

num_clients
INT num_clients

no of active clients

Defined in include/msystem.h:435

root_key
INT root_key

root key offset

Defined in include/msystem.h:439

version
INT version

database version

Defined in include/msystem.h:434

FREE_DESCRIP

Defined in include/msystem.h:405

Attributes
next_free
INT next_free

Address of next free block

Defined in include/msystem.h:407

size
INT size

size in bytes

Defined in include/msystem.h:406

NET_COMMAND

Defined in include/msystem.h:292

Attributes
header
NET_COMMAND_HEADER header

Defined in include/msystem.h:293

param
char param[32]

parameter array

Defined in include/msystem.h:294

NET_COMMAND_HEADER

Defined in include/msystem.h:287

Attributes
param_size
DWORD param_size

size in Bytes of parameter

Defined in include/msystem.h:289

routine_id
DWORD routine_id

routine ID like ID_BM_xxx

Defined in include/msystem.h:288

OPEN_RECORD

Defined in include/msystem.h:410

Attributes
access_mode
WORD access_mode

R/W flags

Defined in include/msystem.h:412

flags
WORD flags

Data format, ...

Defined in include/msystem.h:413

handle
INT handle

Handle of record base key

Defined in include/msystem.h:411

RECORD_LIST

Defined in include/msystem.h:472

Attributes
access_mode
WORD access_mode

R/W flags

Defined in include/msystem.h:475

buf_size
INT buf_size

Record size in bytes

Defined in include/msystem.h:478

copy
void *copy

Pointer of copy to data

Defined in include/msystem.h:477

data
void *data

Pointer to local data

Defined in include/msystem.h:476

dispatcher
void (*dispatcher) (INT, INT, void *)

Pointer to dispatcher func.

Defined in include/msystem.h:479

handle
HNDLE handle

Handle of record base key

Defined in include/msystem.h:473

hDB
HNDLE hDB

Handle of record's database

Defined in include/msystem.h:474

info
void *info

addtl. info for dispatcher

Defined in include/msystem.h:480

rpc_server_acception_struct

Defined in include/msystem.h:362

Methods
clear
void clear()

Defined in include/msystem.h:379

close
void close()

Defined in include/msystem.h:399

Attributes
client_handle
HNDLE client_handle = 0

client key handle .

Defined in include/msystem.h:377

convert_flags
INT convert_flags = 0

convertion flags

Defined in include/msystem.h:372

event_sock
int event_sock = 0

tcp event socket

Defined in include/msystem.h:368

host_name
std::string host_name

client name

Defined in include/msystem.h:364

is_mserver
BOOL is_mserver = 0

this is an mserver server-side connection

Defined in include/msystem.h:365

last_activity
DWORD last_activity = 0

time of last recv

Defined in include/msystem.h:371

misalign
INT misalign = 0

pointers for cache

Defined in include/msystem.h:375

net_buffer
char *net_buffer = NULL

TCP cache buffer

Defined in include/msystem.h:373

net_buffer_size
INT net_buffer_size = 0

size of TCP cache

Defined in include/msystem.h:374

odb_handle
HNDLE odb_handle = 0

handle to online datab.

Defined in include/msystem.h:376

prog_name
std::string prog_name

client program name

Defined in include/msystem.h:363

read_ptr
INT read_ptr = 0

Defined in include/msystem.h:375

recv_sock
int recv_sock = 0

tcp receive socket

Defined in include/msystem.h:367

remote_hw_type
INT remote_hw_type = 0

hardware type

Defined in include/msystem.h:369

send_sock
int send_sock = 0

tcp send socket

Defined in include/msystem.h:366

watchdog_timeout
INT watchdog_timeout = 0

in milliseconds

Defined in include/msystem.h:370

write_ptr
INT write_ptr = 0

Defined in include/msystem.h:375

rpc_server_connection_struct

Defined in include/msystem.h:339

Methods
clear
void clear()

Defined in include/msystem.h:350

Attributes
event_sock
int event_sock

event socket

Defined in include/msystem.h:345

event_sock_mutex
std::mutex event_sock_mutex

protect event socket against multithreaded access

Defined in include/msystem.h:346

exp_name
std::string exp_name

experiment to connect

Defined in include/msystem.h:342

host_name
std::string host_name

server name

Defined in include/msystem.h:340

port
INT port

ip port

Defined in include/msystem.h:341

recv_sock
int recv_sock

tcp receive socket

Defined in include/msystem.h:344

remote_hw_type
INT remote_hw_type

remote hardware type

Defined in include/msystem.h:347

rpc_timeout
INT rpc_timeout

in milliseconds

Defined in include/msystem.h:348

send_sock
int send_sock

tcp send socket

Defined in include/msystem.h:343

WATCH_LIST

Defined in include/msystem.h:486

Attributes
dispatcher
void (*dispatcher) (INT, INT, INT, void* info)

Pointer to dispatcher func.

Defined in include/msystem.h:489

handle
HNDLE handle

Handle of watched base key

Defined in include/msystem.h:487

hDB
HNDLE hDB

Handle of watched database

Defined in include/msystem.h:488

info
void* info

addtl. info for dispatcher

Defined in include/msystem.h:490

Type definitions

RPC_SERVER_ACCEPTION

typedef struct rpc_server_acception_struct RPC_SERVER_ACCEPTION

Defined in include/msystem.h:362

RPC_SERVER_ACCEPTION_LIST

typedef std::vector<RPC_SERVER_ACCEPTION*> RPC_SERVER_ACCEPTION_LIST

Defined in include/msystem.h:402

RPC_SERVER_CONNECTION

typedef struct rpc_server_connection_struct RPC_SERVER_CONNECTION

Defined in include/msystem.h:339