From bf1538cd4977d8278f2dc22a796a1192c8794783 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:00 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvySynchroWnd.cxx | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 Ivy/IvySynchroWnd.cxx (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx new file mode 100644 index 0000000..297c64e --- /dev/null +++ b/Ivy/IvySynchroWnd.cxx @@ -0,0 +1,158 @@ +// SynchroWnd.cpp : implementation file +// + +#include "stdafx.h" + +#include "IvySynchroWnd.h" + + +#define WM_MESSAGE_CB WM_USER + 1001 +#define WM_APPCONNECTED_CB WM_USER + 1002 +#define WM_APPDISCONNECTED_CB WM_USER + 1003 + +IvySynchroWnd* IvySynchronousCallback::m_synchro = NULL; +IvySynchroWnd* IvySynchroWnd::m_synchro = NULL; + +///////////////////////////////////////////////////////////////////////////// +// IvySynchroWnd + +IvySynchroWnd::IvySynchroWnd() +{ + m_hWnd = NULL; + m_synchro = this; + + WNDCLASS wc; + + // Fill in the window class structure with parameters + // that describe the main window. + + wc.style = 0; // noredraw if size changes + wc.lpfnWndProc = WindowProc; // points to window procedure + wc.cbClsExtra = 0; // no extra class memory + wc.cbWndExtra = 0; // no extra window memory + wc.hInstance = 0; // handle to instance + wc.hIcon = NULL; // predefined app. icon + wc.hCursor = NULL; // predefined arrow + wc.hbrBackground = 0; // white background brush + wc.lpszMenuName = NULL; // no menu + wc.lpszClassName = "IvySynchroClass"; // name of window class + + // Register the window class. + + if ( ! RegisterClass(&wc) ) + { + TRACE("Warning: unable to create Ivy Synchro notify window!\n"); + //AfxThrowResourceException(); + } + + // Create the syncrho window. + m_hWnd = CreateWindowEx(0, "IvySynchroClass","Ivy Synchro Notification Sink", + WS_OVERLAPPED, 0, 0, 0, 0, NULL , NULL, NULL, NULL); + if (!m_hWnd) + { + TRACE("Warning: unable to create Ivy Synchro notify window!\n"); + //AfxThrowResourceException(); + } + +} +IvySynchroWnd::~IvySynchroWnd() +{ +} + + +LRESULT CALLBACK IvySynchroWnd::WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) +{ + switch ( uMsg ) + { + case WM_MESSAGE_CB: + m_synchro->OnMessageCB( wParam, lParam ); + break; + case WM_APPCONNECTED_CB: + m_synchro->OnApplicationConnectedCB( wParam, lParam ); + break; + case WM_APPDISCONNECTED_CB: + m_synchro->OnApplicationDisconnectedCB( wParam, lParam ); + break; + + // + // Process other messages. + // + + default: + return DefWindowProc(hwnd, uMsg, wParam, lParam); + } + return 0; +} + + + + +///////////////////////////////////////////////////////////////////////////// +// IvySynchroWnd message handlers + + +LRESULT IvySynchroWnd::OnMessageCB(WPARAM wParam, LPARAM lParam) +{ + IvySynchronousMessageCallback *param = ( IvySynchronousMessageCallback * ) lParam; +// TRACE( "IvySynchroWnd::OnMessageCB msg count %d\n",wParam); + param->target->OnMessage( param->app, param->argc, (const char **) param->argv ); + for( int i = 0; i < param->argc ; i++ ) + free( param->argv[i] ); // allocated with strdup + delete param->argv; // allocated with new + delete param; + return 0L; +} +LRESULT IvySynchroWnd::OnApplicationConnectedCB(WPARAM wParam, LPARAM lParam) +{ + IvySynchronousApplicationCallback *param = ( IvySynchronousApplicationCallback * ) lParam; +// TRACE( "IvySynchroWnd::OnSynchroNotify End Synchro\n"); + param->target->OnApplicationConnected( param->app ); + delete param; + return 0L; +} +LRESULT IvySynchroWnd::OnApplicationDisconnectedCB(WPARAM wParam, LPARAM lParam) +{ + IvySynchronousApplicationCallback *param = ( IvySynchronousApplicationCallback * ) lParam; +// TRACE( "IvySynchroWnd::OnSynchroNotify End Synchro\n"); + param->target->OnApplicationDisconnected( param->app ); + delete param; + return 0L; +} +// +// +IvySynchronousMessageCallback::IvySynchronousMessageCallback( IvyMessageCallback *cb ) +{ + target = cb; +} +void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, const char **argv ) +{ + static int msg_count = 0; + // duplicate on the Message Queue + IvySynchronousMessageCallback *param = new IvySynchronousMessageCallback(target); + param->app = app; + param->argc = argc; + param->argv = new char*[argc]; + for( int i = 0; i < argc ; i++ ) + param->argv[i] = strdup( argv[i]); +// TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); + assert(PostMessage(m_synchro->m_hWnd, WM_MESSAGE_CB, msg_count++, (LPARAM)param )); + +} +IvySynchronousApplicationCallback::IvySynchronousApplicationCallback( IvyApplicationCallback *cb ) +{ + target = cb; +} +void IvySynchronousApplicationCallback::OnApplicationConnected( IvyApplication *app) +{ + // duplicate on the Message Queue + IvySynchronousApplicationCallback *param = new IvySynchronousApplicationCallback(target); + param->app = app; + assert(PostMessage(m_synchro->m_hWnd, WM_APPCONNECTED_CB, 0, (LPARAM)param )); +} +void IvySynchronousApplicationCallback::OnApplicationDisconnected( IvyApplication *app) +{ + // duplicate on the Message Queue + IvySynchronousApplicationCallback *param = new IvySynchronousApplicationCallback(target); + param->app = app; + assert(PostMessage(m_synchro->m_hWnd, WM_APPDISCONNECTED_CB, 0, (LPARAM)param )); +} -- cgit v1.1 From 5eb107eaab189823158133d5a0048ed8870d1d17 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:02 +0000 Subject: Utilisateur : Fcolin Date : 30/06/00 Heure : 16:31 Archivé dans $/Ivy (vss 2) --- Ivy/IvySynchroWnd.cxx | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 297c64e..5e7189c 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -124,6 +124,10 @@ IvySynchronousMessageCallback::IvySynchronousMessageCallback( IvyMessageCallback { target = cb; } +IvySynchronousMessageCallback::~IvySynchronousMessageCallback() +{ + //delete target; +} void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, const char **argv ) { static int msg_count = 0; -- cgit v1.1 From d22136a194cbe1e54e80feaefbb96c20cadb512a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:04 +0000 Subject: Utilisateur : Fcolin Date : 21/07/00 Heure : 10:48 Archivé dans $/Ivy Commentaire: separation file cb de la file de message windows (vss 3) --- Ivy/IvySynchroWnd.cxx | 85 +++++++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 36 deletions(-) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 5e7189c..80b2622 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -6,9 +6,8 @@ #include "IvySynchroWnd.h" -#define WM_MESSAGE_CB WM_USER + 1001 -#define WM_APPCONNECTED_CB WM_USER + 1002 -#define WM_APPDISCONNECTED_CB WM_USER + 1003 +#define WM_IVY_CB WM_USER + 1001 + IvySynchroWnd* IvySynchronousCallback::m_synchro = NULL; IvySynchroWnd* IvySynchroWnd::m_synchro = NULL; @@ -53,6 +52,7 @@ IvySynchroWnd::IvySynchroWnd() TRACE("Warning: unable to create Ivy Synchro notify window!\n"); //AfxThrowResourceException(); } + InitializeCriticalSection( &m_CritSection ); } IvySynchroWnd::~IvySynchroWnd() @@ -64,16 +64,9 @@ LRESULT CALLBACK IvySynchroWnd::WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam { switch ( uMsg ) { - case WM_MESSAGE_CB: - m_synchro->OnMessageCB( wParam, lParam ); - break; - case WM_APPCONNECTED_CB: - m_synchro->OnApplicationConnectedCB( wParam, lParam ); - break; - case WM_APPDISCONNECTED_CB: - m_synchro->OnApplicationDisconnectedCB( wParam, lParam ); + case WM_IVY_CB: + m_synchro->OnIvyCB( wParam, lParam ); break; - // // Process other messages. // @@ -91,32 +84,28 @@ LRESULT CALLBACK IvySynchroWnd::WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam // IvySynchroWnd message handlers -LRESULT IvySynchroWnd::OnMessageCB(WPARAM wParam, LPARAM lParam) +LRESULT IvySynchroWnd::OnIvyCB(WPARAM wParam, LPARAM lParam) { - IvySynchronousMessageCallback *param = ( IvySynchronousMessageCallback * ) lParam; -// TRACE( "IvySynchroWnd::OnMessageCB msg count %d\n",wParam); - param->target->OnMessage( param->app, param->argc, (const char **) param->argv ); - for( int i = 0; i < param->argc ; i++ ) - free( param->argv[i] ); // allocated with strdup - delete param->argv; // allocated with new + std::list::iterator iter; + EnterCriticalSection( &m_CritSection ); + + for ( iter = callbacklist.begin(); iter != callbacklist.end(); ) + { + IvySynchronousCallback *param = *iter++; + param->CallCallback(); delete param; + } + callbacklist.clear(); + LeaveCriticalSection( &m_CritSection ); return 0L; } -LRESULT IvySynchroWnd::OnApplicationConnectedCB(WPARAM wParam, LPARAM lParam) +void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) { - IvySynchronousApplicationCallback *param = ( IvySynchronousApplicationCallback * ) lParam; -// TRACE( "IvySynchroWnd::OnSynchroNotify End Synchro\n"); - param->target->OnApplicationConnected( param->app ); - delete param; - return 0L; -} -LRESULT IvySynchroWnd::OnApplicationDisconnectedCB(WPARAM wParam, LPARAM lParam) -{ - IvySynchronousApplicationCallback *param = ( IvySynchronousApplicationCallback * ) lParam; -// TRACE( "IvySynchroWnd::OnSynchroNotify End Synchro\n"); - param->target->OnApplicationDisconnected( param->app ); - delete param; - return 0L; + EnterCriticalSection( &m_CritSection ); + if ( !m_synchro->callbacklist.size() ) + assert(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); + m_synchro->callbacklist.push_back( cb ); + LeaveCriticalSection( &m_CritSection ); } // // @@ -139,9 +128,18 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con for( int i = 0; i < argc ; i++ ) param->argv[i] = strdup( argv[i]); // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); - assert(PostMessage(m_synchro->m_hWnd, WM_MESSAGE_CB, msg_count++, (LPARAM)param )); + m_synchro->PostIvyCB( param ); } +void IvySynchronousMessageCallback::CallCallback() +{ + target->OnMessage( app, argc, (const char **) argv ); + for( int i = 0; i < argc ; i++ ) + free( argv[i] ); // allocated with strdup + delete argv; // allocated with new +} + + IvySynchronousApplicationCallback::IvySynchronousApplicationCallback( IvyApplicationCallback *cb ) { target = cb; @@ -150,13 +148,28 @@ void IvySynchronousApplicationCallback::OnApplicationConnected( IvyApplication * { // duplicate on the Message Queue IvySynchronousApplicationCallback *param = new IvySynchronousApplicationCallback(target); + param->type = CONNECTED_CB; param->app = app; - assert(PostMessage(m_synchro->m_hWnd, WM_APPCONNECTED_CB, 0, (LPARAM)param )); + m_synchro->PostIvyCB( param ); } + void IvySynchronousApplicationCallback::OnApplicationDisconnected( IvyApplication *app) { // duplicate on the Message Queue IvySynchronousApplicationCallback *param = new IvySynchronousApplicationCallback(target); + param->type = DISCONNECTED_CB; param->app = app; - assert(PostMessage(m_synchro->m_hWnd, WM_APPDISCONNECTED_CB, 0, (LPARAM)param )); + m_synchro->PostIvyCB( param ); } +void IvySynchronousApplicationCallback::CallCallback() +{ + switch ( type ) + { + case CONNECTED_CB: + target->OnApplicationConnected( app ); + break; + case DISCONNECTED_CB: + target->OnApplicationDisconnected( app ); + break; + } +} \ No newline at end of file -- cgit v1.1 From 5aba50d0f42fbe91363d0e06d298ddbccd8df961 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:06 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 4) --- Ivy/IvySynchroWnd.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 80b2622..12a4587 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -86,7 +86,7 @@ LRESULT CALLBACK IvySynchroWnd::WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam LRESULT IvySynchroWnd::OnIvyCB(WPARAM wParam, LPARAM lParam) { - std::list::iterator iter; + IvySynchronousCallbackList::iterator iter; EnterCriticalSection( &m_CritSection ); for ( iter = callbacklist.begin(); iter != callbacklist.end(); ) @@ -103,7 +103,7 @@ void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) { EnterCriticalSection( &m_CritSection ); if ( !m_synchro->callbacklist.size() ) - assert(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); + ASSERT(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); m_synchro->callbacklist.push_back( cb ); LeaveCriticalSection( &m_CritSection ); } -- cgit v1.1 From 897f96895828f2e58459d5a3c7ef57ca652982c5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:08 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 5) --- Ivy/IvySynchroWnd.cxx | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 12a4587..2ed6302 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -3,6 +3,12 @@ #include "stdafx.h" +#ifdef _DEBUG +#define DEBUG_NEW new(__FILE__, __LINE__) +#define new DEBUG_NEW +#endif + + #include "IvySynchroWnd.h" @@ -34,7 +40,7 @@ IvySynchroWnd::IvySynchroWnd() wc.hCursor = NULL; // predefined arrow wc.hbrBackground = 0; // white background brush wc.lpszMenuName = NULL; // no menu - wc.lpszClassName = "IvySynchroClass"; // name of window class + wc.lpszClassName = TEXT("IvySynchroClass"); // name of window class // Register the window class. @@ -45,7 +51,7 @@ IvySynchroWnd::IvySynchroWnd() } // Create the syncrho window. - m_hWnd = CreateWindowEx(0, "IvySynchroClass","Ivy Synchro Notification Sink", + m_hWnd = CreateWindowEx(0, TEXT("IvySynchroClass"), TEXT("Ivy Synchro Notification Sink"), WS_OVERLAPPED, 0, 0, 0, 0, NULL , NULL, NULL, NULL); if (!m_hWnd) { @@ -102,7 +108,7 @@ LRESULT IvySynchroWnd::OnIvyCB(WPARAM wParam, LPARAM lParam) void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) { EnterCriticalSection( &m_CritSection ); - if ( !m_synchro->callbacklist.size() ) + if ( !m_synchro->callbacklist.empty() ) ASSERT(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); m_synchro->callbacklist.push_back( cb ); LeaveCriticalSection( &m_CritSection ); @@ -126,7 +132,10 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con param->argc = argc; param->argv = new char*[argc]; for( int i = 0; i < argc ; i++ ) - param->argv[i] = strdup( argv[i]); + { + param->argv[i] = new char[ strlen( argv[i]) +1 ]; + strcpy( param->argv[i], argv[i]); + } // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); m_synchro->PostIvyCB( param ); @@ -135,8 +144,8 @@ void IvySynchronousMessageCallback::CallCallback() { target->OnMessage( app, argc, (const char **) argv ); for( int i = 0; i < argc ; i++ ) - free( argv[i] ); // allocated with strdup - delete argv; // allocated with new + delete argv[i]; + delete argv; } -- cgit v1.1 From fbb3f93fb72791aae6c9346d55a42e97b8a605f1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:10 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 6) --- Ivy/IvySynchroWnd.cxx | 5 ----- 1 file changed, 5 deletions(-) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 2ed6302..33059d8 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -3,11 +3,6 @@ #include "stdafx.h" -#ifdef _DEBUG -#define DEBUG_NEW new(__FILE__, __LINE__) -#define new DEBUG_NEW -#endif - #include "IvySynchroWnd.h" -- cgit v1.1 From d3034a30db643cefc90b690a422b98dd7b2a0713 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:12 +0000 Subject: Utilisateur : Fcolin Date : 9/10/01 Heure : 12:12 Archivé dans $/Ivy Commentaire: on poste un message synchro si la file est vide (vss 7) --- Ivy/IvySynchroWnd.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 33059d8..e2b2338 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -103,7 +103,7 @@ LRESULT IvySynchroWnd::OnIvyCB(WPARAM wParam, LPARAM lParam) void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) { EnterCriticalSection( &m_CritSection ); - if ( !m_synchro->callbacklist.empty() ) + if ( m_synchro->callbacklist.empty() ) ASSERT(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); m_synchro->callbacklist.push_back( cb ); LeaveCriticalSection( &m_CritSection ); -- cgit v1.1 From 828345b232bd03acc670731a8a1e8b04e93fa528 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:14 +0000 Subject: Utilisateur : Fcolin Date : 5/11/02 Heure : 9:57 Archivé dans $/Bus/Ivy Commentaire: (vss 8) --- Ivy/IvySynchroWnd.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index e2b2338..cabe92c 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -117,6 +117,11 @@ IvySynchronousMessageCallback::IvySynchronousMessageCallback( IvyMessageCallback IvySynchronousMessageCallback::~IvySynchronousMessageCallback() { //delete target; + for( int i = 0; i < argc ; i++ ) + { + delete argv[i]; + } + if ( argv ) delete argv; } void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, const char **argv ) { @@ -128,8 +133,7 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con param->argv = new char*[argc]; for( int i = 0; i < argc ; i++ ) { - param->argv[i] = new char[ strlen( argv[i]) +1 ]; - strcpy( param->argv[i], argv[i]); + param->argv[i] = strdup( argv[i]); } // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); m_synchro->PostIvyCB( param ); -- cgit v1.1 From 02b8ce0b1e1c0193245917f92f2e1cdb600b3330 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:16 +0000 Subject: Utilisateur : Fcolin Date : 14/11/02 Heure : 15:45 Archivé dans $/Bus/Ivy Commentaire: (vss 9) --- Ivy/IvySynchroWnd.cxx | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index cabe92c..d21a008 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -113,6 +113,9 @@ void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) IvySynchronousMessageCallback::IvySynchronousMessageCallback( IvyMessageCallback *cb ) { target = cb; + app = 0; + argc = 0; + argv = 0; } IvySynchronousMessageCallback::~IvySynchronousMessageCallback() { -- cgit v1.1 From fea1bcb86df19daf2f08d11ad219ea0dac7be125 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:18 +0000 Subject: Utilisateur : Fcolin Date : 4/02/03 Heure : 8:59 Archivé dans $/Bus/Ivy Commentaire: (vss 10) --- Ivy/IvySynchroWnd.cxx | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index d21a008..67c02d4 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -136,7 +136,11 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con param->argv = new char*[argc]; for( int i = 0; i < argc ; i++ ) { +#ifdef UNDER_CE + param->argv[i] = _strdup( argv[i]); +#else param->argv[i] = strdup( argv[i]); +#endif } // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); m_synchro->PostIvyCB( param ); -- cgit v1.1 From bc28a2d4c3bda6f37ad0c056ac7122254a1cb066 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:20 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 11) --- Ivy/IvySynchroWnd.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 67c02d4..18c4c43 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -1,7 +1,7 @@ // SynchroWnd.cpp : implementation file // -#include "stdafx.h" +#include "IvyStdAfx.h" #include "IvySynchroWnd.h" -- cgit v1.1 From 71558f893472566b7035f7d7de8df1a9f876374c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:22 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 12) --- Ivy/IvySynchroWnd.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 18c4c43..9df473a 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -139,7 +139,7 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con #ifdef UNDER_CE param->argv[i] = _strdup( argv[i]); #else - param->argv[i] = strdup( argv[i]); + param->argv[i] = _strdup( argv[i]); #endif } // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); -- cgit v1.1 From 62aca5b9f103f6b8a12e2c1925abb02caa946907 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:24 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 13) --- Ivy/IvySynchroWnd.cxx | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'Ivy/IvySynchroWnd.cxx') diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 9df473a..2109a61 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -187,4 +187,57 @@ void IvySynchronousApplicationCallback::CallCallback() target->OnApplicationDisconnected( app ); break; } +} + + +IvySynchronousBindingCallback::IvySynchronousBindingCallback( IvyBindingCallback *cb ) +{ + target = cb; +} +void IvySynchronousBindingCallback::OnAddBind( IvyApplication *app, int id, const char *regexp) +{ + // duplicate on the Message Queue + IvySynchronousBindingCallback *param = new IvySynchronousBindingCallback(target); + param->type = ADD_CB; + param->app = app; + param->id = id; + param->regexp = _strdup(regexp); + m_synchro->PostIvyCB( param ); +} + +void IvySynchronousBindingCallback::OnRemoveBind( IvyApplication *app, int id, const char *regexp) +{ + // duplicate on the Message Queue + IvySynchronousBindingCallback *param = new IvySynchronousBindingCallback(target); + param->type = REMOVE_CB; + param->app = app; + param->id = id; + param->regexp = _strdup(regexp); + m_synchro->PostIvyCB( param ); +} +void IvySynchronousBindingCallback::OnFilterBind( IvyApplication *app, int id, const char *regexp) +{ + // duplicate on the Message Queue + IvySynchronousBindingCallback *param = new IvySynchronousBindingCallback(target); + param->type = FILTER_CB; + param->app = app; + param->id = id; + param->regexp = _strdup(regexp); + m_synchro->PostIvyCB( param ); +} +void IvySynchronousBindingCallback::CallCallback() +{ + switch ( type ) + { + case ADD_CB: + target->OnAddBind( app, id, regexp ); + break; + case REMOVE_CB: + target->OnRemoveBind( app, id, regexp ); + break; + case FILTER_CB: + target->OnFilterBind( app, id, regexp ); + break; + } + delete regexp; } \ No newline at end of file -- cgit v1.1