change log updated
[public/netxms.git] / include / nms_util.h
index 279ea82..6896ff1 100644 (file)
@@ -635,6 +635,11 @@ public:
  */
 class LIBNETXMS_EXPORTABLE AbstractIterator
 {
+   DISABLE_COPY_CTOR(AbstractIterator)
+
+protected:
+   AbstractIterator();
+
 public:
    virtual ~AbstractIterator();
 
@@ -648,6 +653,8 @@ public:
  */
 template <class T> class Iterator
 {
+   DISABLE_COPY_CTOR(Iterator)
+
 private:
    AbstractIterator *m_worker;
 
@@ -665,6 +672,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE Array
 {
+   DISABLE_COPY_CTOR(Array)
+
 private:
        int m_size;
        int m_allocated;
@@ -715,6 +724,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE ArrayIterator : public AbstractIterator
 {
+   DISABLE_COPY_CTOR(ArrayIterator)
+
 private:
    Array *m_array;
    int m_pos;
@@ -732,6 +743,8 @@ public:
  */
 template <class T> class ObjectArray : public Array
 {
+   DISABLE_COPY_CTOR(ObjectArray)
+
 private:
        static void destructor(void *object) { delete (T*)object; }
 
@@ -768,6 +781,8 @@ public:
  */
 template <class T> class ObjectRefArray : public Array
 {
+   DISABLE_COPY_CTOR(ObjectRefArray)
+
 private:
        static void destructor(void *object) { }
 
@@ -794,6 +809,8 @@ public:
  */
 template <class T> class IntegerArray : public Array
 {
+   DISABLE_COPY_CTOR(IntegerArray)
+
 private:
        static void destructor(void *element) { }
 
@@ -819,6 +836,8 @@ public:
  */
 template <class T> class StructArray : public Array
 {
+   DISABLE_COPY_CTOR(StructArray)
+
 private:
        static void destructor(void *element) { }
 
@@ -938,6 +957,8 @@ public:
  */
 template <class T> class StringObjectMap : public StringMapBase
 {
+   DISABLE_COPY_CTOR(StringObjectMap)
+
 private:
        static void destructor(void *object) { delete (T*)object; }
 
@@ -963,6 +984,7 @@ private:
 public:
        StringList();
        StringList(const StringList *src);
+   StringList(const StringList &src);
        StringList(const TCHAR *src, const TCHAR *separator);
        ~StringList();
 
@@ -1022,6 +1044,8 @@ class StringSet;
  */
 class LIBNETXMS_EXPORTABLE StringSetIterator : public AbstractIterator
 {
+   DISABLE_COPY_CTOR(StringSetIterator)
+
 private:
    StringSet *m_stringSet;
    StringSetEntry *m_curr;
@@ -1121,6 +1145,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE HashMapIterator : public AbstractIterator
 {
+   DISABLE_COPY_CTOR(HashMapIterator)
+
 private:
    HashMapBase *m_hashMap;
    HashMapEntry *m_curr;
@@ -1178,6 +1204,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE RingBuffer
 {
+   DISABLE_COPY_CTOR(RingBuffer)
+
 private:
    BYTE *m_data;
    size_t m_size;
@@ -1202,6 +1230,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE ByteStream
 {
+   DISABLE_COPY_CTOR(ByteStream)
+
 private:
    BYTE *m_data;
    size_t m_size;
@@ -1258,6 +1288,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE RefCountObject
 {
+   DISABLE_COPY_CTOR(RefCountObject)
+
 private:
        VolatileCounter m_refCount;
 
@@ -1289,6 +1321,8 @@ class NXCPMessage;
  */
 class LIBNETXMS_EXPORTABLE TableColumnDefinition
 {
+   DISABLE_COPY_CTOR(TableColumnDefinition)
+
 private:
    TCHAR *m_name;
    TCHAR *m_displayName;
@@ -1318,6 +1352,8 @@ public:
  */
 class TableCell
 {
+   DISABLE_COPY_CTOR(TableCell)
+
 private:
    TCHAR *m_value;
    int m_status;
@@ -1349,6 +1385,8 @@ public:
  */
 class TableRow
 {
+   DISABLE_COPY_CTOR(TableRow)
+
 private:
    ObjectArray<TableCell> *m_cells;
    UINT32 m_objectId;
@@ -1388,6 +1426,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE Table : public RefCountObject
 {
+   DISABLE_COPY_CTOR(Table)
+
 private:
    ObjectArray<TableRow> *m_data;
    ObjectArray<TableColumnDefinition> *m_columns;
@@ -1709,6 +1749,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE InetAddressList
 {
+   DISABLE_COPY_CTOR(InetAddressList)
+
 private:
    ObjectArray<InetAddress> *m_list;
 
@@ -1746,13 +1788,16 @@ public:
  */
 class LIBNETXMS_EXPORTABLE SocketConnection
 {
+   DISABLE_COPY_CTOR(SocketConnection)
+
 protected:
        SOCKET m_socket;
        char m_data[4096];
        int m_dataPos;
 
+   SocketConnection();
+
 public:
-       SocketConnection();
        virtual ~SocketConnection();
 
        bool connectTCP(const TCHAR *hostName, WORD port, UINT32 timeout);
@@ -1774,15 +1819,21 @@ public:
  */
 class LIBNETXMS_EXPORTABLE TelnetConnection : public SocketConnection
 {
+   DISABLE_COPY_CTOR(TelnetConnection)
+
 protected:
+   TelnetConnection() : SocketConnection() { }
+
        bool connectTCP(const TCHAR *hostName, WORD port, UINT32 timeout);
        bool connectTCP(const InetAddress& ip, WORD port, UINT32 timeout);
 
+   bool connect(const TCHAR *hostName, WORD port, UINT32 timeout);
+   bool connect(const InetAddress& ip, WORD port, UINT32 timeout);
+
 public:
        static TelnetConnection *createConnection(const TCHAR *hostName, WORD port, UINT32 timeout);
+   static TelnetConnection *createConnection(const InetAddress& ip, WORD port, UINT32 timeout);
 
-   bool connect(const TCHAR *hostName, WORD port, UINT32 timeout);
-       bool connect(const InetAddress& ip, WORD port, UINT32 timeout);
        virtual int read(char *pBuff, int nSize, UINT32 timeout = INFINITE);
        int readLine(char *buffer, int size, UINT32 timeout = INFINITE);
 };
@@ -1792,6 +1843,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE PostalAddress
 {
+   DISABLE_COPY_CTOR(PostalAddress)
+
 private:
    TCHAR *m_country;
    TCHAR *m_city;
@@ -1826,6 +1879,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE SocketPoller
 {
+   DISABLE_COPY_CTOR(SocketPoller)
+
 private:
    bool m_write;
    int m_count;
@@ -1853,6 +1908,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE AbstractCommChannel : public RefCountObject
 {
+   DISABLE_COPY_CTOR(AbstractCommChannel)
+
 protected:
    virtual ~AbstractCommChannel();
 
@@ -1871,6 +1928,8 @@ public:
  */
 class LIBNETXMS_EXPORTABLE SocketCommChannel : public AbstractCommChannel
 {
+   DISABLE_COPY_CTOR(SocketCommChannel)
+
 private:
    SOCKET m_socket;
    bool m_owner;
@@ -2467,6 +2526,28 @@ void LIBNETXMS_EXPORTABLE nxlog_set_debug_level(int level);
 void LIBNETXMS_EXPORTABLE nxlog_set_debug_level_tag(const TCHAR *tags, int level);
 int LIBNETXMS_EXPORTABLE nxlog_get_debug_level();
 int LIBNETXMS_EXPORTABLE nxlog_get_debug_level_tag(const TCHAR *tag);
+int LIBNETXMS_EXPORTABLE nxlog_get_debug_level_tag_object(const TCHAR *tag, UINT32 objectId);
+
+#ifdef __cplusplus
+
+/**
+ * Debug tag information
+ */
+struct DebugTagInfo
+{
+   TCHAR tag[64];
+   int level;
+
+   DebugTagInfo(const TCHAR *_tag, int _level)
+   {
+      _tcslcpy(tag, _tag, 64);
+      level = _level;
+   }
+};
+
+ObjectArray<DebugTagInfo> LIBNETXMS_EXPORTABLE *nxlog_get_all_debug_tags();
+
+#endif   /* __cplusplus */
 
 typedef void (*NxLogDebugWriter)(const TCHAR *, const TCHAR *);
 void LIBNETXMS_EXPORTABLE nxlog_set_debug_writer(NxLogDebugWriter writer);
@@ -2561,6 +2642,9 @@ void LIBNETXMS_EXPORTABLE StartMainLoop(ThreadFunction pfSignalHandler, ThreadFu
 
 String LIBNETXMS_EXPORTABLE GenerateLineDiff(const String& left, const String& right);
 
+bool LIBNETXMS_EXPORTABLE DeflateFile(const TCHAR *inputFile, const TCHAR *outputFile = NULL);
+int LIBNETXMS_EXPORTABLE DeflateFileStream(FILE *source, FILE *dest, bool gzipFormat);
+
 #endif
 
 #endif   /* _nms_util_h_ */