]> git.saurik.com Git - wxWidgets.git/commitdiff
add forgotten file needed by the last change to the sample
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 12 Feb 2008 22:46:58 +0000 (22:46 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 12 Feb 2008 22:46:58 +0000 (22:46 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/ipc/connection.h [new file with mode: 0644]

diff --git a/samples/ipc/connection.h b/samples/ipc/connection.h
new file mode 100644 (file)
index 0000000..42d1816
--- /dev/null
@@ -0,0 +1,77 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        connection.h
+// Purpose:     DDE sample: MyConnection class
+// Author:      Vadim Zeitlin
+// Created:     2008-02-11 (extracted from client.cpp)
+// RCS-ID:      $Id$
+// Copyright:   (c) 1999 Julian Smart
+//                  2008 Vadim Zeitlin
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_SAMPLE_IPC_CONNECTION_H_
+#define _WX_SAMPLE_IPC_CONNECTION_H_
+
+// This simple connection class adds logging of all operations
+class MyConnectionBase : public wxConnection
+{
+protected:
+    void Log(const wxString& command,
+             const wxString& topic,
+             const wxString& item,
+             const void *data,
+             size_t size,
+             wxIPCFormat format)
+    {
+        wxString s;
+        if (topic.IsEmpty() && item.IsEmpty())
+            s.Printf("%s(", command.c_str());
+        else if (topic.IsEmpty())
+            s.Printf("%s(item=\"%s\",", command.c_str(), item.c_str());
+        else if (item.IsEmpty())
+            s.Printf("%s(topic=\"%s\",", command.c_str(), topic.c_str());
+        else
+            s.Printf("%s(topic=\"%s\",item=\"%s\",", command.c_str(), topic.c_str(), item.c_str());
+
+        switch (format)
+        {
+          case wxIPC_TEXT:
+              s += wxString(wx_static_cast(const char *, data), size);
+              break;
+
+#if wxUSE_UNICODE
+          case wxIPC_UNICODETEXT:
+              s += wxString(wx_static_cast(const wchar_t *, data), size);
+              break;
+#endif // wxUSE_UNICODE
+
+          case wxIPC_UTF8TEXT:
+              s += wxString::FromUTF8(wx_static_cast(const char *, data), size);
+              break;
+
+          case wxIPC_PRIVATE:
+              if ( size == 3 )
+              {
+                  const char *bytes = wx_static_cast(const char *, data);
+                  s << '"' << bytes[0] << bytes[1] << bytes[2] << '"';
+              }
+              else
+              {
+                  s << "\"???\"";
+              }
+              break;
+
+          case wxIPC_INVALID:
+              s += "[invalid data]";
+              break;
+
+          default:
+              s += "[unknown data]";
+              break;
+        }
+
+        wxLogMessage("%s,%d)", s, size);
+    }
+};
+
+#endif // _WX_SAMPLE_IPC_CONNECTION_H_