GetSysInfoStr() implemented for POSIX conforming systems
[public/netxms.git] / include / nxclapi.h
CommitLineData
80ffed5a
VK
1/*
2** NetXMS - Network Management System
3** Client Library API
4** Copyright (C) 2004 Victor Kirhenshtein
5**
6** This program is free software; you can redistribute it and/or modify
7** it under the terms of the GNU General Public License as published by
8** the Free Software Foundation; either version 2 of the License, or
9** (at your option) any later version.
10**
11** This program is distributed in the hope that it will be useful,
12** but WITHOUT ANY WARRANTY; without even the implied warranty of
13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14** GNU General Public License for more details.
15**
16** You should have received a copy of the GNU General Public License
17** along with this program; if not, write to the Free Software
18** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19**
20** $module: nxclapi.h
21**
22**/
23
24#ifndef _nxclapi_h_
25#define _nxclapi_h_
26
27#include <nms_common.h>
5ebea5e0 28#include <nxevent.h>
80ffed5a 29
8aeffdee
VK
30#ifdef _WIN32
31#ifdef LIBNXCL_EXPORTS
32#define LIBNXCL_EXPORTABLE __declspec(dllexport)
33#else
34#define LIBNXCL_EXPORTABLE __declspec(dllimport)
35#endif
36#else /* _WIN32 */
37#define LIBNXCL_EXPORTABLE
38#endif
39
80ffed5a 40
c6576857
VK
41//
42// Custom data types
43//
44
45typedef unsigned long HREQUEST;
46
47
0c8bf759
VK
48//
49// Some constants
50//
51
878c92bc
VK
52#define MAX_OBJECT_NAME 64
53#define MAX_COMMUNITY_LENGTH 32
54#define MAX_OID_LENGTH 1024
55#define MAX_EVENT_MSG_LENGTH 256
56#define MAX_EVENT_NAME 64
5ac3236b 57#define MAX_USER_NAME 64
54abbe0e
VK
58#define MAX_USER_FULLNAME 128
59#define MAX_USER_DESCR 256
7ec6cca8
VK
60#define MAX_ITEM_NAME 256
61#define MAX_STRING_VALUE 256
8c18110a
VK
62#define GROUP_FLAG ((DWORD)0x80000000)
63#define GROUP_EVERYONE ((DWORD)0x80000000)
64#define INVALID_UID ((DWORD)0xFFFFFFFF)
c0ae9ed5 65#define OBJECT_STATUS_COUNT 7
0c8bf759
VK
66
67
71c18491
VK
68//
69// Authentication methods
70//
71
72#define AUTH_NONE 0
73#define AUTH_PLAINTEXT 1
74#define AUTH_MD5_HASH 2
75#define AUTH_SHA1_HASH 3
76
77
78//
79// Object types
80//
81
82#define OBJECT_GENERIC 0
83#define OBJECT_SUBNET 1
84#define OBJECT_NODE 2
85#define OBJECT_INTERFACE 3
86#define OBJECT_NETWORK 4
ef44d5ea 87#define OBJECT_CONTAINER 5
372b525a 88#define OBJECT_ZONE 6
e6b958c4 89#define OBJECT_SERVICEROOT 7
71c18491
VK
90
91
9eb7685c
VK
92//
93// Object's status
94//
95
96#define STATUS_NORMAL 0
97#define STATUS_WARNING 1
98#define STATUS_MINOR 2
99#define STATUS_MAJOR 3
100#define STATUS_CRITICAL 4
101#define STATUS_UNKNOWN 5
102#define STATUS_UNMANAGED 6
103#define STATUS_DISABLED 7
104#define STATUS_TESTING 8
105
106
4d597931
VK
107//
108// Node flags
109//
110
111#define NF_IS_SNMP 0x0001
112#define NF_IS_NATIVE_AGENT 0x0002
113#define NF_IS_BRIDGE 0x0004
114#define NF_IS_ROUTER 0x0008
115#define NF_IS_LOCAL_MGMT 0x0010
a7d07192
VK
116#define NF_IS_PRINTER 0x0020
117#define NS_IS_OSPF 0x0040
4d597931
VK
118
119
5fad5c32
VK
120//
121// Events
122//
123
878c92bc
VK
124#define NXC_EVENT_STATE_CHANGED 1
125#define NXC_EVENT_ERROR 2
126#define NXC_EVENT_LOGIN_RESULT 3
127#define NXC_EVENT_NEW_ELOG_RECORD 4
f75b99fd 128#define NXC_EVENT_USER_DB_CHANGED 5
4d597931 129#define NXC_EVENT_OBJECT_CHANGED 6
3421c063 130#define NXC_EVENT_NOTIFICATION 7
71f8d3d7
VK
131
132
133//
134// Errors
135//
136
137#define NXC_ERR_INTERNAL 1
5fad5c32
VK
138
139
54481027
VK
140//
141// States
142//
143
144#define STATE_DISCONNECTED 0
145#define STATE_CONNECTING 1
146#define STATE_IDLE 2
7e986059
VK
147#define STATE_SYNC_OBJECTS 3
148#define STATE_SYNC_EVENTS 4
878c92bc
VK
149#define STATE_LOAD_EVENT_DB 5
150#define STATE_LOAD_EPP 6
5ac3236b 151#define STATE_LOAD_USER_DB 7
7ec6cca8 152#define STATE_LOAD_DCI 8
7e986059
VK
153
154
b601b1fa
VK
155//
156// Notification codes
157//
158
3421c063
VK
159#define NX_NOTIFY_SHUTDOWN 1
160#define NX_NOTIFY_EVENTDB_CHANGED 2
878c92bc
VK
161
162
163//
164// Request completion codes
165//
166
167#define RCC_SUCCESS ((DWORD)0)
168#define RCC_COMPONENT_LOCKED ((DWORD)1)
169#define RCC_ACCESS_DENIED ((DWORD)2)
170#define RCC_INVALID_REQUEST ((DWORD)3)
171#define RCC_TIMEOUT ((DWORD)4)
605d2931
VK
172#define RCC_OUT_OF_STATE_REQUEST ((DWORD)5)
173#define RCC_DB_FAILURE ((DWORD)6)
effb51ab 174#define RCC_INVALID_OBJECT_ID ((DWORD)7)
34d95c13 175#define RCC_ALREADY_EXIST ((DWORD)8)
2e29457d 176#define RCC_COMM_FAILURE ((DWORD)9)
0d9c1b96 177#define RCC_SYSTEM_FAILURE ((DWORD)10)
62f3f072 178#define RCC_INVALID_USER_ID ((DWORD)11)
7ec6cca8 179#define RCC_INVALID_ARGUMENT ((DWORD)12)
9ed4eaff
VK
180#define RCC_DUPLICATE_DCI ((DWORD)13)
181#define RCC_INVALID_DCI_ID ((DWORD)14)
a7d07192
VK
182#define RCC_OUT_OF_MEMORY ((DWORD)15)
183#define RCC_IO_ERROR ((DWORD)16)
e6b958c4 184#define RCC_INCOMPATIBLE_OPERATION ((DWORD)17)
878c92bc
VK
185
186
d9152256
VK
187//
188// Mask bits for NXCModifyEventTemplate()
189//
190
191#define EM_SEVERITY ((DWORD)0x01)
192#define EM_FLAGS ((DWORD)0x02)
193#define EM_NAME ((DWORD)0x04)
194#define EM_MESSAGE ((DWORD)0x08)
195#define EM_DESCRIPTION ((DWORD)0x10)
196#define EM_ALL ((DWORD)0x1F)
197
198
effb51ab
VK
199//
200// Mask bits (flags) for NXCModifyObject()
201//
202
203#define OBJ_UPDATE_NAME ((DWORD)0x01)
204#define OBJ_UPDATE_AGENT_PORT ((DWORD)0x02)
205#define OBJ_UPDATE_AGENT_AUTH ((DWORD)0x04)
206#define OBJ_UPDATE_AGENT_SECRET ((DWORD)0x08)
207#define OBJ_UPDATE_SNMP_VERSION ((DWORD)0x10)
208#define OBJ_UPDATE_SNMP_COMMUNITY ((DWORD)0x20)
209#define OBJ_UPDATE_ACL ((DWORD)0x40)
210#define OBJ_UPDATE_ALL ((DWORD)0x7F)
211
212
5ac3236b
VK
213//
214// Global user rights
215//
216
217#define SYSTEM_ACCESS_MANAGE_USERS 0x0001
218#define SYSTEM_ACCESS_VIEW_CONFIG 0x0002
219#define SYSTEM_ACCESS_EDIT_CONFIG 0x0004
220#define SYSTEM_ACCESS_DROP_CONNECTIONS 0x0008
221#define SYSTEM_ACCESS_VIEW_EVENT_DB 0x0010
222#define SYSTEM_ACCESS_EDIT_EVENT_DB 0x0020
a7d07192 223#define SYSTEM_ACCESS_EPP 0x0040
5ac3236b 224
a7d07192 225#define SYSTEM_ACCESS_FULL 0x007F
911dbb64 226
5ac3236b
VK
227
228//
229// Object access rights
230//
231
232#define OBJECT_ACCESS_READ 0x00000001
233#define OBJECT_ACCESS_MODIFY 0x00000002
234#define OBJECT_ACCESS_CREATE 0x00000004
235#define OBJECT_ACCESS_DELETE 0x00000008
236#define OBJECT_ACCESS_MOVE 0x00000010
34d95c13 237#define OBJECT_ACCESS_CONTROL 0x00000020
5ac3236b
VK
238
239
240//
241// User/group flags
242//
243
244#define UF_MODIFIED 0x0001
245#define UF_DELETED 0x0002
246#define UF_DISABLED 0x0004
247#define UF_CHANGE_PASSWORD 0x0008
8c18110a 248#define UF_CANNOT_CHANGE_PASSWORD 0x0010
5ac3236b
VK
249
250
984542f8
VK
251//
252// User database change notification types
253//
254
255#define USER_DB_CREATE 0
256#define USER_DB_DELETE 1
257#define USER_DB_MODIFY 2
258
259
878c92bc 260//
7ec6cca8 261// Data types
878c92bc
VK
262//
263
7ec6cca8
VK
264#define DTYPE_INTEGER 0
265#define DTYPE_INT64 1
266#define DTYPE_STRING 2
267#define DTYPE_FLOAT 3
b601b1fa
VK
268
269
54481027 270//
7ec6cca8 271// Data sources
54481027
VK
272//
273
7ec6cca8
VK
274#define DS_INTERNAL 0
275#define DS_NATIVE_AGENT 1
276#define DS_SNMP_AGENT 2
54481027
VK
277
278
878c92bc 279//
7ec6cca8 280// Item status
878c92bc
VK
281//
282
7ec6cca8
VK
283#define ITEM_STATUS_ACTIVE 0
284#define ITEM_STATUS_DISABLED 1
285#define ITEM_STATUS_NOT_SUPPORTED 2
878c92bc
VK
286
287
d0e94572
VK
288//
289// Threshold functions and operations
290//
291
292#define F_LAST 0
293#define F_AVERAGE 1
294#define F_DEVIATION 2
295
296#define OP_LE 0
297#define OP_LE_EQ 1
298#define OP_EQ 2
299#define OP_GT_EQ 3
300#define OP_GT 4
301#define OP_NE 5
302#define OP_LIKE 6
303#define OP_NOTLIKE 7
304
305
99180ed6
VK
306//
307// Event policy rule flags
308//
309
310#define RF_STOP_PROCESSING 0x0001
311#define RF_NEGATED_SOURCE 0x0002
312#define RF_NEGATED_EVENTS 0x0004
313#define RF_GENERATE_ALARM 0x0008
314#define RF_ALARM_IS_ACK 0x0010
315#define RF_DISABLED 0x0020
316#define RF_SEVERITY_INFO 0x0100
317#define RF_SEVERITY_MINOR 0x0200
318#define RF_SEVERITY_WARNING 0x0400
319#define RF_SEVERITY_MAJOR 0x0800
320#define RF_SEVERITY_CRITICAL 0x1000
321
322
a1dc75b0
VK
323//
324// Event log record structure
325//
326
327typedef struct
328{
329 DWORD dwTimeStamp;
330 DWORD dwEventId;
331 DWORD dwSourceId;
332 DWORD dwSeverity;
333 char szMessage[MAX_EVENT_MSG_LENGTH];
334} NXC_EVENT;
335
336
3421c063
VK
337//
338// Event name/code pair
339//
340
341typedef struct
342{
343 DWORD dwEventId;
344 char szName[MAX_EVENT_NAME];
345} NXC_EVENT_NAME;
346
347
7ec6cca8
VK
348/********************************************************************
349 * Following part of this file shouldn't be included by server code *
350 ********************************************************************/
351
352#ifndef LIBNXCL_NO_DECLARATIONS
353
354
355//
356// Callbacks data types
357//
358
359typedef void (* NXC_EVENT_HANDLER)(DWORD dwEvent, DWORD dwCode, void *pArg);
360typedef void (* NXC_DEBUG_CALLBACK)(char *pMsg);
361
362
363//
364// Event configuration structure
365//
366
367typedef struct
368{
369 DWORD dwCode;
370 DWORD dwSeverity;
371 DWORD dwFlags;
372 char szName[MAX_EVENT_NAME];
373 char *pszMessage;
374 char *pszDescription;
375} NXC_EVENT_TEMPLATE;
376
377
effb51ab
VK
378//
379// Entry in object's ACL
380//
381
382typedef struct
383{
384 DWORD dwUserId;
385 DWORD dwAccessRights;
386} NXC_ACL_ENTRY;
387
388
0c8bf759
VK
389//
390// Network object structure
391//
392
393typedef struct
394{
395 DWORD dwId; // Unique object's identifier
396 int iClass; // Object's class
397 int iStatus; // Object's status
398 DWORD dwIpAddr; // IP address
399 char szName[MAX_OBJECT_NAME];
400 DWORD dwNumParents;
401 DWORD *pdwParentList;
402 DWORD dwNumChilds;
403 DWORD *pdwChildList;
4d597931 404 BOOL bIsDeleted; // TRUE for deleted objects
effb51ab
VK
405 BOOL bInheritRights;
406 DWORD dwAclSize;
407 NXC_ACL_ENTRY *pAccessList;
0c8bf759
VK
408 union
409 {
410 struct
411 {
412 DWORD dwIpNetMask; // Ip netmask.
413 DWORD dwIfIndex; // Interface index.
414 DWORD dwIfType; // Interface type
415 } iface;
416 struct
417 {
418 DWORD dwFlags;
419 DWORD dwDiscoveryFlags;
420 char szSharedSecret[MAX_SECRET_LENGTH];
421 char szCommunityString[MAX_COMMUNITY_LENGTH];
422 char szObjectId[MAX_OID_LENGTH];
423 WORD wAgentPort; // Listening TCP port for native agent
424 WORD wAuthMethod; // Native agent's authentication method
425 } node;
426 struct
427 {
428 DWORD dwIpNetMask;
429 } subnet;
ef44d5ea
VK
430 struct
431 {
432 DWORD dwCategory;
433 char *pszDescription;
434 } container;
0c8bf759
VK
435 };
436} NXC_OBJECT;
437
438
effb51ab
VK
439//
440// Structure with data for NXCModifyObject
441//
442
443typedef struct
444{
445 DWORD dwObjectId;
446 DWORD dwFlags;
447 char *pszName;
448 int iAgentPort;
449 int iAuthType;
450 char *pszSecret;
451 int iSnmpVersion;
452 char *pszCommunity;
453 BOOL bInheritRights;
454 DWORD dwAclSize;
455 NXC_ACL_ENTRY *pAccessList;
456} NXC_OBJECT_UPDATE;
457
458
5ac3236b
VK
459//
460// NetXMS user information structure
461//
462
463typedef struct
464{
465 char szName[MAX_USER_NAME];
466 DWORD dwId;
467 WORD wFlags;
468 WORD wSystemRights;
469 DWORD dwNumMembers; // Only for groups
470 DWORD *pdwMemberList; // Only for groups
54abbe0e
VK
471 char szFullName[MAX_USER_FULLNAME]; // Only for users
472 char szDescription[MAX_USER_DESCR];
5ac3236b
VK
473} NXC_USER;
474
475
f86ffdd2
VK
476//
477// Data collection item threshold structure
478//
479
480typedef struct
481{
482 DWORD dwId;
483 DWORD dwEvent;
484 WORD wFunction;
485 WORD wOperation;
486 DWORD dwArg1;
487 DWORD dwArg2;
488 union
489 {
490 DWORD dwInt32;
491 INT64 qwInt64;
492 double dFloat;
493 char szString[MAX_STRING_VALUE];
494 } value;
495} NXC_DCI_THRESHOLD;
496
497
7ec6cca8
VK
498//
499// Data collection item structure
500//
501
502typedef struct
503{
504 DWORD dwId;
505 char szName[MAX_ITEM_NAME];
506 int iPollingInterval;
507 int iRetentionTime;
508 BYTE iSource;
509 BYTE iDataType;
510 BYTE iStatus;
f86ffdd2
VK
511 DWORD dwNumThresholds;
512 NXC_DCI_THRESHOLD *pThresholdList;
7ec6cca8
VK
513} NXC_DCI;
514
515
516//
517// Node's data collection list information
518//
519
520typedef struct
521{
522 DWORD dwNodeId;
523 DWORD dwNumItems;
524 NXC_DCI *pItems;
525} NXC_DCI_LIST;
526
527
b9b4ec17
VK
528//
529// Row structure
530//
531
9f20696e
VK
532#pragma pack(1)
533
b9b4ec17
VK
534typedef struct
535{
536 DWORD dwTimeStamp;
537 union
538 {
539 DWORD dwInt32;
cb17745c 540 INT64 qwInt64;
b9b4ec17
VK
541 double dFloat;
542 char szString[MAX_STRING_VALUE];
543 } value;
544} NXC_DCI_ROW;
545
9f20696e
VK
546#pragma pack()
547
b9b4ec17
VK
548
549//
550// DCI's collected data
551//
552
553typedef struct
554{
555 DWORD dwNodeId; // Owner's node id
556 DWORD dwItemId; // Item id
557 DWORD dwNumRows; // Number of rows in set
558 WORD wDataType; // Data type (integer, string, etc.)
559 WORD wRowSize; // Size of single row in bytes
560 NXC_DCI_ROW *pRows; // Array of rows
561} NXC_DCI_DATA;
562
563
a7d07192
VK
564//
565// MIB file list
566//
567
568typedef struct
569{
570 DWORD dwNumFiles;
571 char **ppszName;
572 BYTE **ppHash;
573} NXC_MIB_LIST;
574
575
576//
577// Event processing policy rule
578//
579
580typedef struct
581{
582 DWORD dwFlags;
583 DWORD dwId;
584 DWORD dwNumActions;
585 DWORD dwNumEvents;
586 DWORD dwNumSources;
587 DWORD *pdwActionList;
588 DWORD *pdwEventList;
589 DWORD *pdwSourceList;
590 char *pszComment;
591 char szAlarmKey[MAX_DB_STRING];
592 char szAlarmAckKey[MAX_DB_STRING];
593 char szAlarmMessage[MAX_DB_STRING];
594 WORD wAlarmSeverity;
595} NXC_EPP_RULE;
596
597
598//
599// Event processing policy
600//
601
602typedef struct
603{
604 DWORD dwNumRules;
605 NXC_EPP_RULE *pRuleList;
606} NXC_EPP;
607
608
80ffed5a
VK
609//
610// Functions
611//
612
613#ifdef __cplusplus
614extern "C" {
615#endif
616
8aeffdee 617DWORD LIBNXCL_EXPORTABLE NXCGetVersion(void);
effb51ab
VK
618const char LIBNXCL_EXPORTABLE *NXCGetErrorText(DWORD dwError);
619
8aeffdee 620BOOL LIBNXCL_EXPORTABLE NXCInitialize(void);
1df4b30b 621DWORD LIBNXCL_EXPORTABLE NXCConnect(char *szServer, char *szLogin, char *szPassword);
8aeffdee
VK
622void LIBNXCL_EXPORTABLE NXCDisconnect(void);
623void LIBNXCL_EXPORTABLE NXCSetEventHandler(NXC_EVENT_HANDLER pHandler);
624void LIBNXCL_EXPORTABLE NXCSetDebugCallback(NXC_DEBUG_CALLBACK pFunc);
625HREQUEST LIBNXCL_EXPORTABLE NXCRequest(DWORD dwOperation, ...);
80ffed5a 626
2e29457d 627DWORD LIBNXCL_EXPORTABLE NXCSyncObjects(void);
8aeffdee 628NXC_OBJECT LIBNXCL_EXPORTABLE *NXCFindObjectById(DWORD dwId);
a98e6d5f 629NXC_OBJECT LIBNXCL_EXPORTABLE *NXCFindObjectByName(char *pszName);
8aeffdee 630void LIBNXCL_EXPORTABLE NXCEnumerateObjects(BOOL (* pHandler)(NXC_OBJECT *));
e6b958c4
VK
631NXC_OBJECT LIBNXCL_EXPORTABLE *NXCGetTopologyRootObject(void);
632NXC_OBJECT LIBNXCL_EXPORTABLE *NXCGetServiceRootObject(void);
8e80aeb6
VK
633void LIBNXCL_EXPORTABLE *NXCGetObjectIndex(DWORD *pdwNumObjects);
634void LIBNXCL_EXPORTABLE NXCLockObjectIndex(void);
635void LIBNXCL_EXPORTABLE NXCUnlockObjectIndex(void);
2e29457d 636DWORD LIBNXCL_EXPORTABLE NXCModifyObject(NXC_OBJECT_UPDATE *pData);
c1c39152 637DWORD LIBNXCL_EXPORTABLE NXCSetObjectMgmtStatus(DWORD dwObjectId, BOOL bIsManaged);
e6b958c4
VK
638DWORD LIBNXCL_EXPORTABLE NXCCreateObject(int iClass, DWORD dwParentObject);
639DWORD LIBNXCL_EXPORTABLE NXCBindObject(DWORD dwParentObject, DWORD dwChildObject);
640DWORD LIBNXCL_EXPORTABLE NXCUnbindObject(DWORD dwParentObject, DWORD dwChildObject);
8b3d61c1 641
2e29457d
VK
642DWORD LIBNXCL_EXPORTABLE NXCSyncEvents(void);
643DWORD LIBNXCL_EXPORTABLE NXCOpenEventDB(void);
644DWORD LIBNXCL_EXPORTABLE NXCCloseEventDB(BOOL bSaveChanges);
8aeffdee
VK
645BOOL LIBNXCL_EXPORTABLE NXCGetEventDB(NXC_EVENT_TEMPLATE ***pppTemplateList, DWORD *pdwNumRecords);
646void LIBNXCL_EXPORTABLE NXCModifyEventTemplate(NXC_EVENT_TEMPLATE *pEvent, DWORD dwMask,
d9152256
VK
647 DWORD dwSeverity, DWORD dwFlags, const char *pszName,
648 const char *pszMessage, const char *pszDescription);
3421c063
VK
649DWORD LIBNXCL_EXPORTABLE NXCLoadEventNames(void);
650NXC_EVENT_NAME LIBNXCL_EXPORTABLE *NXCGetEventNamesList(DWORD *pdwNumEvents);
651const char LIBNXCL_EXPORTABLE *NXCGetEventName(DWORD dwId);
878c92bc 652
2e29457d 653DWORD LIBNXCL_EXPORTABLE NXCLoadUserDB(void);
5ac3236b 654NXC_USER LIBNXCL_EXPORTABLE *NXCFindUserById(DWORD dwId);
440716ce 655BOOL LIBNXCL_EXPORTABLE NXCGetUserDB(NXC_USER **ppUserList, DWORD *pdwNumUsers);
0d9c1b96
VK
656DWORD LIBNXCL_EXPORTABLE NXCLockUserDB(void);
657DWORD LIBNXCL_EXPORTABLE NXCUnlockUserDB(void);
f75b99fd
VK
658DWORD LIBNXCL_EXPORTABLE NXCCreateUser(char *pszName, BOOL bIsGroup, DWORD *pdwNewId);
659DWORD LIBNXCL_EXPORTABLE NXCDeleteUser(DWORD dwId);
911dbb64 660DWORD LIBNXCL_EXPORTABLE NXCModifyUser(NXC_USER *pUserInfo);
8c18110a 661DWORD LIBNXCL_EXPORTABLE NXCSetPassword(DWORD dwUserId, char *pszNewPassword);
5ac3236b 662
7ec6cca8
VK
663DWORD LIBNXCL_EXPORTABLE NXCOpenNodeDCIList(DWORD dwNodeId, NXC_DCI_LIST **ppItemList);
664DWORD LIBNXCL_EXPORTABLE NXCCloseNodeDCIList(NXC_DCI_LIST *pItemList);
7ac0c0a8
VK
665DWORD LIBNXCL_EXPORTABLE NXCCreateNewDCI(NXC_DCI_LIST *pItemList, DWORD *pdwItemId);
666DWORD LIBNXCL_EXPORTABLE NXCUpdateDCI(DWORD dwNodeId, NXC_DCI *pItem);
667DWORD LIBNXCL_EXPORTABLE NXCDeleteDCI(NXC_DCI_LIST *pItemList, DWORD dwItemId);
668DWORD LIBNXCL_EXPORTABLE NXCItemIndex(NXC_DCI_LIST *pItemList, DWORD dwItemId);
b9b4ec17
VK
669DWORD LIBNXCL_EXPORTABLE NXCGetDCIData(DWORD dwNodeId, DWORD dwItemId, DWORD dwMaxRows,
670 DWORD dwTimeFrom, DWORD dwTimeTo, NXC_DCI_DATA **ppData);
4c20673b
VK
671void LIBNXCL_EXPORTABLE NXCDestroyDCIData(NXC_DCI_DATA *pData);
672NXC_DCI_ROW LIBNXCL_EXPORTABLE *NXCGetRowPtr(NXC_DCI_DATA *pData, DWORD dwRow);
899f2093
VK
673DWORD LIBNXCL_EXPORTABLE NXCAddThresholdToItem(NXC_DCI *pItem, NXC_DCI_THRESHOLD *pThreshold);
674BOOL LIBNXCL_EXPORTABLE NXCDeleteThresholdFromItem(NXC_DCI *pItem, DWORD dwIndex);
675BOOL LIBNXCL_EXPORTABLE NXCSwapThresholds(NXC_DCI *pItem, DWORD dwIndex1, DWORD dwIndex2);
7ec6cca8 676
a7d07192
VK
677DWORD LIBNXCL_EXPORTABLE NXCGetMIBList(NXC_MIB_LIST **ppMibList);
678void LIBNXCL_EXPORTABLE NXCDestroyMIBList(NXC_MIB_LIST *pMibList);
679DWORD LIBNXCL_EXPORTABLE NXCDownloadMIBFile(char *pszName, char *pszDestDir);
680
681DWORD LIBNXCL_EXPORTABLE NXCOpenEventPolicy(NXC_EPP **ppEventPolicy);
682DWORD LIBNXCL_EXPORTABLE NXCCloseEventPolicy(void);
683DWORD LIBNXCL_EXPORTABLE NXCSaveEventPolicy(NXC_EPP *pEventPolicy);
684void LIBNXCL_EXPORTABLE NXCDestroyEventPolicy(NXC_EPP *pEventPolicy);
ef44d5ea 685void LIBNXCL_EXPORTABLE NXCDeletePolicyRule(NXC_EPP *pEventPolicy, DWORD dwRule);
a7d07192 686
80ffed5a
VK
687#ifdef __cplusplus
688}
689#endif
690
7ec6cca8
VK
691#endif /* LIBNXCL_NO_DECLARATIONS */
692
80ffed5a 693#endif /* _nxclapi_h_ */