UM C API  6.16
umeprofile.h
Go to the documentation of this file.
1 
13 /*
14  All of the documentation and software included in this and any
15  other Informatica Inc. Ultra Messaging Releases
16  Copyright (C) Informatica Inc. All rights reserved.
17 
18  Redistribution and use in source and binary forms, with or without
19  modification, are permitted only as covered by the terms of a
20  valid software license agreement with Informatica Inc.
21 
22  (C) Copyright 2004,2023 Informatica Inc. All Rights Reserved.
23 
24  THE SOFTWARE IS PROVIDED "AS IS" AND INFORMATICA DISCLAIMS ALL WARRANTIES
25  EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF
26  NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
27  PURPOSE. INFORMATICA DOES NOT WARRANT THAT USE OF THE SOFTWARE WILL BE
28  UNINTERRUPTED OR ERROR-FREE. INFORMATICA SHALL NOT, UNDER ANY CIRCUMSTANCES, BE
29  LIABLE TO LICENSEE FOR LOST PROFITS, CONSEQUENTIAL, INCIDENTAL, SPECIAL OR
30  INDIRECT DAMAGES ARISING OUT OF OR RELATED TO THIS AGREEMENT OR THE
31  TRANSACTIONS CONTEMPLATED HEREUNDER, EVEN IF INFORMATICA HAS BEEN APPRISED OF
32  THE LIKELIHOOD OF SUCH DAMAGES.
33 */
34 #ifndef UME_PROFILE_H
35 #define UME_PROFILE_H
36 
37 #if defined(__cplusplus)
38 extern "C" {
39 #endif /* __cplusplus */
40 
41 /* Directives to show how we treat exporting functions with Windows from the DLL */
42 #if defined(_WIN32) && !defined(UMESTORE_STATIC_LIB)
43 # if defined(_DLL) && defined(UMESTORE_EXPORT_SYMS)
44 # define UMEStoreExpDLL __declspec(dllexport)
45 # elif defined(UMESTORE_STATIC_LIB)
46 # define UMEStoreExpDLL
47 # else
48 # define UMEStoreExpDLL __declspec(dllimport)
49 # endif /* _DLL && UMESTORE_EXPORT_SYMS */
50 #elif defined(__TANDEM)
51 # if defined(UMESTORE_EXPORT_SYMS)
52 # define UMEStoreExpDLL export$
53 # else
54 # define UMEStoreExpDLL import$
55 # endif
56 #else
57 # define UMEStoreExpDLL
58 #endif /* _WIN32 */
59 
60 /* Limits & sizes */
61 #define LBM_SRP_MAX_DIRECTORY_STRLEN 256
62 /* MAX_PATH contains the full path and the filename so it must be bigger than MAX_DIRECTORY_STRLEN */
63 /* The filename is "/<regid>-state" or "/<regid>-cache" where regid is 10 digits worst case so 40 is with padding */
64 #define LBM_SRP_MAX_PATH_STRLEN (256 + 40)
65 #define LBM_SRP_TOPICNAME_MAX_LEN (256 + 8)
66 #define LBM_SRP_DISK_MAX_CKSUM_MSG_LEN 8192
67 #define LBM_SRP_LBMC_HDR_SZ 12
68 
70 typedef enum {
78 
81 typedef enum {
135 
138 typedef struct lbm_srp_repo_msg_t_stct {
144  size_t disk_len;
148  struct timeval tsp;
150  char *buff;
176  char fragment;
178 
182 typedef struct lbm_srp_repo_rcvr_t_stct {
202  lbm_uint8_t otid[LBM_OTID_BLOCK_SZ];
204  lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
212 
215 typedef struct lbm_srp_repo_t_stct {
217  char state_filename[LBM_SRP_MAX_PATH_STRLEN];
219  char cache_filename[LBM_SRP_MAX_PATH_STRLEN];
223  int cache_fd;
239  void *msg_map;
243  char topicname[LBM_SRP_TOPICNAME_MAX_LEN];
263  lbm_uint8_t otid[LBM_OTID_BLOCK_SZ];
265  lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
275  size_t sz_threshold;
277  size_t sz_limit;
293 
296 typedef struct lbm_srp_t lbm_srp_t;
297 
310 UMEStoreExpDLL int lbm_srp_create(const char *state_pathname, const char *cache_pathname, const int check_checksum, const lbm_srp_t * *srp_handle);
311 
319 UMEStoreExpDLL int lbm_srp_delete(const lbm_srp_t * *srp_handle);
320 
331 UMEStoreExpDLL int lbm_srp_get_repo_state(const lbm_srp_t * *srp_handle, int repo_idx, lbm_srp_repo_t * *srp_repo);
332 
345 UMEStoreExpDLL int lbm_srp_get_repo_message(lbm_srp_repo_t *srp_repo, int sqn, lbm_srp_repo_msg_t *repo_msg);
346 
354 UMEStoreExpDLL int lbm_srp_free_repo_state(lbm_srp_repo_t *srp_repo);
355 
356 #if defined(__cplusplus)
357 }
358 #endif /* __cplusplus */
359 
360 #endif /* UME_PROFILE_H */
cache message read length actual did not match requested
Definition: umeprofile.h:131
struct timeval tsp
message timestamp
Definition: umeprofile.h:148
cache message first message record missing
Definition: umeprofile.h:121
struct lbm_srp_repo_msg_t_stct lbm_srp_repo_msg_t
Information about a message in the repository, retrieved by lbm_srp_get_repo_message().
scandir failed
Definition: umeprofile.h:72
UMEStoreExpDLL int lbm_srp_delete(const lbm_srp_t **srp_handle)
Delete a store repository profile object.
lbm_uint32_t lbmc_sqn
LBMC header sequence number.
Definition: umeprofile.h:160
lbm_uint8_t use_proxy
use proxy source
Definition: umeprofile.h:289
int cache_fd
opaque reference to the message cache file descriptor
Definition: umeprofile.h:223
cache message header read length at working offset mismatched
Definition: umeprofile.h:111
cache message read file [ReadFile] call failed at working offset
Definition: umeprofile.h:105
cache file open failed
Definition: umeprofile.h:101
lbm_uint8_t frag_hdr_len
LBMC fragment header length.
Definition: umeprofile.h:164
lbm_uint8_t lbmc_next_hdr
LBMC header next header.
Definition: umeprofile.h:154
size_t sz_limit
size limit
Definition: umeprofile.h:277
cache message header marker length at working offset was bad
Definition: umeprofile.h:117
cache message last message record sequence number mismatch
Definition: umeprofile.h:127
lbm_srp_repo_status_t repo_status
repository status
Definition: umeprofile.h:225
cache message sequence number out of range
Definition: umeprofile.h:129
lbm_uint8_t rpp_mode
receiver paced persistence mode
Definition: umeprofile.h:267
size_t disk_len
message length on disk (includes LBM headers)
Definition: umeprofile.h:144
file status [fstat] call failed
Definition: umeprofile.h:89
lbm_uint64_t sid
receiver session identifier
Definition: umeprofile.h:198
uint64_t lbm_uint64_t
For portability.
Definition: lbm.h:1736
char * buff
message buffer pointer
Definition: umeprofile.h:150
lbm_uint32_t lbmc_msg_offset
message offset
Definition: umeprofile.h:174
lbm_srp_repo_status_t
Repository status retrieved from lbm_srp_get_repo_state() via lbm_srp_repo_t_stct::repo_status.
Definition: umeprofile.h:81
lbm_uint8_t frag_next_hdr
LBMC fragment header next header.
Definition: umeprofile.h:162
Receiver state information, retrieved by lbm_srp_get_repo_state() via lbm_srp_repo_t::rcvs.
Definition: umeprofile.h:182
state file open call failed
Definition: umeprofile.h:87
struct lbm_srp_t lbm_srp_t
SRP object (opaque) for UM.
Definition: umeprofile.h:296
lbm_ulong_t considered_activity_tmo
considered activity timeout
Definition: umeprofile.h:208
state file read byte count too short
Definition: umeprofile.h:97
lbm_uint32_t rcv_domain_id
receive domain identifier
Definition: umeprofile.h:206
lbm_srp_error_t
Possible error values returned by lbm_srp_create().
Definition: umeprofile.h:70
lbm_ulong_t disk_sz_limit
disk repository file size limit
Definition: umeprofile.h:279
lbm_uint32_t regid
registration identifier
Definition: umeprofile.h:184
lbm_uint32_t src_domain_id
source domain identifier
Definition: umeprofile.h:285
lbm_uint32_t ume_stored_version
store daemon version (n.n.n.n) that created the repository
Definition: umeprofile.h:221
FindFirstFile failed.
Definition: umeprofile.h:74
lbm_uint16_t frag_flags
LBMC fragment header flags.
Definition: umeprofile.h:166
lbm_uint32_t frag_len
LBMC fragment header message length.
Definition: umeprofile.h:172
char fragment
1 means the message was a fragment
Definition: umeprofile.h:176
lbm_uint64_t start_offset
disk byte offset of the lowest sequence number in the repository cache
Definition: umeprofile.h:235
UMEStoreExpDLL int lbm_srp_free_repo_state(lbm_srp_repo_t *srp_repo)
Free store repository profile state object.
size_t sz_threshold
size threshold
Definition: umeprofile.h:275
UMEStoreExpDLL int lbm_srp_create(const char *state_pathname, const char *cache_pathname, const int check_checksum, const lbm_srp_t **srp_handle)
Create and fill a store repository profile object.
Definition: umeprofile.h:133
Information about a message in the repository, retrieved by lbm_srp_get_repo_message().
Definition: umeprofile.h:138
struct lbm_srp_repo_rcvr_t_stct lbm_srp_repo_rcvr_t
Receiver state information, retrieved by lbm_srp_get_repo_state() via lbm_srp_repo_t::rcvs.
state file too small
Definition: umeprofile.h:91
cache message last message record missing
Definition: umeprofile.h:125
lbm_uint32_t low_sqn
lowest sequence number in the repository cache
Definition: umeprofile.h:231
lbm_ulong_t considered_state_lifetime
considered state lifetime
Definition: umeprofile.h:210
uint8_t lbm_uint8_t
For portability.
Definition: lbm.h:1728
cache message header record length at working offset was bad
Definition: umeprofile.h:113
UMEStoreExpDLL int lbm_srp_get_repo_state(const lbm_srp_t **srp_handle, int repo_idx, lbm_srp_repo_t **srp_repo)
Get store repository profile state object.
lbm_uint32_t transport_idx
source transport index
Definition: umeprofile.h:245
lbm_uint16_t src_port
source IP port
Definition: umeprofile.h:251
lbm_ulong_t considered_src_state_lifetime
considered state lifetime
Definition: umeprofile.h:273
state file read call failed
Definition: umeprofile.h:95
lbm_uint32_t lbmc_tidx
LBMC header topic index.
Definition: umeprofile.h:158
cache get overlapped result [GetOverlappedResult] call failed at working offset
Definition: umeprofile.h:107
lbm_uint64_t end_offset
disk byte offset of the highest sequence number in the repository cache
Definition: umeprofile.h:237
lbm_uint32_t sqn
high ack sequence number
Definition: umeprofile.h:186
lbm_uint32_t rcv_addr
receiver IP address
Definition: umeprofile.h:192
lbm_uint64_t disk_offset
message offset on disk
Definition: umeprofile.h:146
lbm_uint32_t frag_offset
LBMC fragment header message offset.
Definition: umeprofile.h:170
state file name is invalid
Definition: umeprofile.h:85
lbm_ulong_t considered_src_activity_tmo
considered activity timeout
Definition: umeprofile.h:271
cache message at working offset has bad checksum
Definition: umeprofile.h:115
lbm_uint8_t flags
message flags
Definition: umeprofile.h:142
lbm_uint64_t src_flightsz_bytes
source flight size in bytes
Definition: umeprofile.h:283
lbm_uint16_t store_id
store identifier
Definition: umeprofile.h:188
unsigned long int lbm_ulong_t
For portability.
Definition: lbm.h:1722
state file has bad magic
Definition: umeprofile.h:99
cache message first message record sequence number mismatch
Definition: umeprofile.h:123
lbm_uint8_t allow_ack_on_reception
allow acknowledge on reception
Definition: umeprofile.h:287
lbm_uint32_t sqn
message sequence number
Definition: umeprofile.h:140
lbm_uint16_t lbmc_msglen
LBMC header message length.
Definition: umeprofile.h:156
lbm_uint32_t frag_first_sqn
LBMC fragment header first sequence number.
Definition: umeprofile.h:168
lbm_srp_repo_rcvr_t ** rcvs
pointers to registered repository receivers
Definition: umeprofile.h:291
file status [GetFileSizeEx] call failed
Definition: umeprofile.h:93
lbm_uint16_t flags
flags
Definition: umeprofile.h:200
FindNextFile failed.
Definition: umeprofile.h:76
lbm_uint16_t num_stores
number of stores out of the block of 25 that are in use
Definition: umeprofile.h:257
int num_msg_duplicates
the number of message duplicates in the repository cache
Definition: umeprofile.h:241
Overall information about a store, retrieved by lbm_srp_get_repo_state()
Definition: umeprofile.h:215
lbm_uint16_t rcv_port
receiver IP port
Definition: umeprofile.h:190
cache message at working offset has unknown header type
Definition: umeprofile.h:119
UMEStoreExpDLL int lbm_srp_get_repo_message(lbm_srp_repo_t *srp_repo, int sqn, lbm_srp_repo_msg_t *repo_msg)
Get store repository profile message.
lbm_uint32_t src_addr
source IP address
Definition: umeprofile.h:249
lbm_uint8_t repo_type
repository type
Definition: umeprofile.h:269
Repository is valid.
Definition: umeprofile.h:83
uint32_t lbm_uint32_t
For portability.
Definition: lbm.h:1732
lbm_uint32_t num_grps
number of groups out of the block of 5 that are in use
Definition: umeprofile.h:259
lbm_uint32_t transport_idx
receiver transport index
Definition: umeprofile.h:194
cache message header at working offset too small
Definition: umeprofile.h:109
lbm_uint16_t store_id
store identifier
Definition: umeprofile.h:253
lbm_uint8_t lbmc_ver_type
LBMC header version/type.
Definition: umeprofile.h:152
lbm_uint16_t num_rcvs
number of receivers
Definition: umeprofile.h:255
lbm_uint64_t sid
source session identifier
Definition: umeprofile.h:261
lbm_uint32_t high_sqn
highest sequence number in the repository cache
Definition: umeprofile.h:233
void * msg_map
opaque reference to the message cache
Definition: umeprofile.h:239
lbm_uint32_t write_delay
write delay
Definition: umeprofile.h:281
int error_info
error information, e.g., errno/errnum
Definition: umeprofile.h:227
lbm_uint32_t topic_idx
topic index
Definition: umeprofile.h:196
cache message create event [CreateEvent] call failed at working offset
Definition: umeprofile.h:103
lbm_uint32_t topic_idx
source topic index
Definition: umeprofile.h:247
uint16_t lbm_uint16_t
For portability.
Definition: lbm.h:1730
lbm_uint32_t num_msgs
the number of messages in the repository cache
Definition: umeprofile.h:229
struct lbm_srp_repo_t_stct lbm_srp_repo_t
Overall information about a store, retrieved by lbm_srp_get_repo_state()