change log updated
[public/netxms.git] / include / appagent.h
index 2393d7f..6b04df5 100644 (file)
@@ -1,6 +1,6 @@
-/* 
+/*
 ** NetXMS - Network Management System
-** Copyright (C) 2003-2012 Victor Kirhenshtein
+** Copyright (C) 2003-2013 Victor Kirhenshtein
 **
 ** This program is free software; you can redistribute it and/or modify
 ** it under the terms of the GNU Lesser General Public License as published by
@@ -106,6 +106,10 @@ typedef struct __apagent_msg
 #pragma pack()
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * Application agent metric definition
  */
@@ -119,6 +123,29 @@ typedef struct __appagent_metric
 } APPAGENT_METRIC;
 
 /**
+ * Application agent list definition
+ */
+typedef struct __appagent_list
+{
+       const TCHAR *name;
+       const TCHAR *userArg;
+       int (*handler)(const TCHAR *, const TCHAR *, StringList *);
+       const TCHAR *description;
+} APPAGENT_LIST;
+
+/**
+ * Application agent table definition
+ */
+typedef struct __appagent_table
+{
+       const TCHAR *name;
+       const TCHAR *userArg;
+       int (*handler)(const TCHAR *, const TCHAR *, Table *);
+   const TCHAR *instanceColumns;
+       const TCHAR *description;
+} APPAGENT_TABLE;
+
+/**
  * Agent initialization structure
  */
 typedef struct __appagent_init
@@ -129,6 +156,10 @@ typedef struct __appagent_init
        void (*logger)(int, const TCHAR *, va_list);
        int numMetrics;
        APPAGENT_METRIC *metrics;
+       int numLists;
+       APPAGENT_LIST *lists;
+       int numTables;
+       APPAGENT_LIST *tables;
 } APPAGENT_INIT;
 
 /**
@@ -137,6 +168,15 @@ typedef struct __appagent_init
 bool APPAGENT_EXPORTABLE AppAgentInit(APPAGENT_INIT *initData);
 void APPAGENT_EXPORTABLE AppAgentStart();
 void APPAGENT_EXPORTABLE AppAgentStop();
+void APPAGENT_EXPORTABLE AppAgentPostEvent(int code, const TCHAR *name, const char *format, ...);
+
+bool APPAGENT_EXPORTABLE AppAgentGetParameterArgA(const TCHAR *param, int index, char *arg, int maxSize);
+bool APPAGENT_EXPORTABLE AppAgentGetParameterArgW(const TCHAR *param, int index, WCHAR *arg, int maxSize);
+#ifdef UNICODE
+#define AppAgentGetParameterArg AppAgentGetParameterArgW
+#else
+#define AppAgentGetParameterArg AppAgentGetParameterArgA
+#endif
 
 /**
  * Client-side API
@@ -146,4 +186,8 @@ void APPAGENT_EXPORTABLE AppAgentDisconnect(HPIPE hPipe);
 int APPAGENT_EXPORTABLE AppAgentGetMetric(HPIPE hPipe, const TCHAR *name, TCHAR *value, int bufferSize);
 int APPAGENT_EXPORTABLE AppAgentListMetrics(HPIPE hPipe, APPAGENT_METRIC **metrics, UINT32 *size);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif