summaryrefslogtreecommitdiff
path: root/tests/FlReactor_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/FlReactor_Test.cpp')
-rw-r--r--tests/FlReactor_Test.cpp294
1 files changed, 0 insertions, 294 deletions
diff --git a/tests/FlReactor_Test.cpp b/tests/FlReactor_Test.cpp
deleted file mode 100644
index 0c20c5a81b9..00000000000
--- a/tests/FlReactor_Test.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// FlReactor_Test.cpp
-//
-// = DESCRIPTION
-// A simple test that ilustrates the integration of the fast-light
-// toolkit (http://fltk.easysw.org/) with ACE, it uses FL to create
-// an OpenGL window and display a polygon, it uses ACE to open an
-// acceptor. Every time there is a connection the number of polygons
-// is increased, a little widget can be used to change the number of
-// polygons too.
-//
-// ============================================================================
-
-#include "test_config.h"
-
-ACE_RCSID(tests, FlReactor_Test, "$Id$")
-
-#if defined(__BORLANDC__) && __BORLANDC__ >= 0x0530
-USELIB("..\ace\aced.lib");
-//---------------------------------------------------------------------------
-#endif /* defined(__BORLANDC__) && __BORLANDC__ >= 0x0530 */
-
-#if !defined (ACE_HAS_FL)
-
-int main (int, char*[])
-{
- ACE_START_TEST (ASYS_TEXT ("FlReactor_Test"));
-
- ACE_ERROR ((LM_INFO,
- "FL not supported on this platform\n"));
- ACE_END_TEST;
-
- return 0;
-}
-
-#else
-
-#include "ace/FlReactor.h"
-#include "ace/Event_Handler.h"
-#include "ace/Acceptor.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Service_Config.h"
-#include "ace/Thread_Manager.h"
-
-#include <FL/Fl.h>
-#include <FL/Fl_Window.h>
-#include <FL/Fl_Hor_Slider.h>
-#include <FL/Fl_Box.h>
-#include <FL/math.h>
-#include <FL/gl.h>
-#include <FL/Fl_Gl_Window.h>
-
-class Test_Window : public Fl_Gl_Window
-{
-public:
- Test_Window (int x, int y, int w, int h,
- const char * l = 0);
- // Constructor
-
- int sides (void) const;
- void sides (int s);
- void incr_sides (void);
-
-private:
- virtual void draw (void);
- // from the Fl_Gl_Window...
-
- int sides_;
-};
-
-Test_Window::Test_Window (int x, int y,
- int w, int h,
- const char* l)
- : Fl_Gl_Window (x, y, w, h, l),
- sides_ (3)
-{
-}
-
-int
-Test_Window::sides (void) const
-{
- return this->sides_;
-}
-
-void
-Test_Window::sides (int s)
-{
- this->sides_ = s;
- this->redraw ();
-}
-
-void
-Test_Window::incr_sides (void)
-{
- this->sides_++;
- if (this->sides_ > 10)
- this->sides_ = 3;
- this->redraw ();
-}
-
-void
-Test_Window::draw (void)
-{
- // the valid() property may be used to avoid reinitializing your
- // GL transformation for each redraw:
- if (!this->valid())
- {
- this->valid(1);
- glLoadIdentity();
- glViewport(0, 0, this->w(), this->h());
- }
- // draw an amazing but slow graphic:
- glClear(GL_COLOR_BUFFER_BIT);
-
- glBegin(GL_POLYGON);
- int s = this->sides_;
- for (int i=0; i != s; ++i)
- {
- double ang = i * 2 * M_PI / s;
- glColor3f (float(i) / s,
- float(i) / s,
- float(i) / s);
- glVertex3f(cos(ang), sin(ang), 0);
- }
- glEnd();
-}
-
-// when you change the data, as in this callback, you must call redraw():
-void sides_cb (Fl_Widget *o, void *p)
-{
- Test_Window *tw = ACE_reinterpret_cast(Test_Window *,p);
- Fl_Slider *slider = ACE_dynamic_cast (Fl_Slider*,o);
- tw->sides (ACE_static_cast (int, slider->value ()));
-}
-
-class Connection_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- Connection_Handler (Test_Window *w = 0,
- Fl_Box* box = 0);
-
- virtual int open (void *);
- virtual int handle_input (ACE_HANDLE);
-
-private:
- Test_Window* w_;
- Fl_Box *box_;
-};
-
-class Acceptor : public ACE_Acceptor<Connection_Handler,ACE_SOCK_ACCEPTOR>
-{
-public:
- Acceptor (Test_Window *w = 0,
- Fl_Box *box = 0);
-
- virtual int make_svc_handler (Connection_Handler *&sh);
-
-private:
- Test_Window* w_;
- Fl_Box *box_;
-};
-
-Connection_Handler::Connection_Handler (Test_Window *w,
- Fl_Box *box)
- : w_ (w),
- box_ (box)
-{
-}
-
-int
-Connection_Handler::open (void*)
-{
- if (this->box_ != 0)
- {
- ACE_INET_Addr from;
-
- this->peer ().get_remote_addr (from);
- const int bufsiz = 128;
- char buf[bufsiz];
-
- from.addr_to_string (buf, bufsiz, 0);
-
- static char msg[256];
- ACE_OS::sprintf (msg, "connection from <%s>\n", buf);
-
- this->box_->label (msg);
- this->box_->redraw ();
- }
-
- if (this->w_ != 0)
- {
- this->w_->incr_sides ();
- }
-
- return this->peer ().enable (ACE_NONBLOCK);
-}
-
-int
-Connection_Handler::handle_input (ACE_HANDLE)
-{
- char buf[BUFSIZ];
- if (this->peer ().recv (buf, BUFSIZ) <= 0)
- return -1;
- return 0;
-}
-
-Acceptor::Acceptor (Test_Window *w, Fl_Box *box)
- : w_ (w),
- box_ (box)
-{
-}
-
-int
-Acceptor::make_svc_handler (Connection_Handler *&sh)
-{
- if (sh == 0)
- ACE_NEW_RETURN (sh, Connection_Handler (this->w_, this->box_), -1);
- return 0;
-}
-
-int main (int argc, char *argv[])
-{
- ACE_START_TEST (ASYS_TEXT ("FlReactor_Test"));
-
- Fl_Window window(300, 370);
-
- Test_Window tw(10, 75, window.w() - 20, window.h()-90);
- window.resizable(&tw);
-
- Fl_Hor_Slider slider(60, 5, window.w() - 70, 30, "Sides:");
- slider.align(FL_ALIGN_LEFT);
- slider.callback(sides_cb, &tw);
- slider.value(tw.sides ());
- slider.step(1);
- slider.bounds(3, 10);
-
- ACE_FlReactor reactor;
- ACE_Reactor r (&reactor);
-
- Fl_Box *box = new Fl_Box (FL_UP_BOX, 10, 40,
- window.w () - 20, 30,
- "Setting up");
- box->labelfont (FL_BOLD);
-
- Acceptor acceptor (&tw, box);
-
- ACE_INET_Addr address;
- if (acceptor.open (address, &r) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open acceptor"), -1);
-
- acceptor.acceptor ().get_local_addr (address);
-
- const int bufsiz = 128;
- char buf[bufsiz];
-
- address.addr_to_string (buf, bufsiz, 0);
-
- char msg[2*bufsiz];
- ACE_OS::sprintf (msg, "Listening on <%s>\n", buf);
-
- box->label (msg);
- box->redraw ();
-
- window.end();
- window.show(argc,argv);
- tw.show();
-
- return Fl::run();
-
- ACE_END_TEST;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_FL */