Sha256: 6b3213adf776e6593401c9f896686915d1d761e5ea49b8d888e3935a99a8814f

Contents?: true

Size: 2 KB

Versions: 6

Compression:

Stored size: 2 KB

Contents

/*****************************************************************************

$Id$

File:     eventmachine_cpp.h
Date:     27Jul07

Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
Gmail: blackhedd

This program is free software; you can redistribute it and/or modify
it under the terms of either: 1) the GNU General Public License
as published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version; or 2) Ruby's License.

See the file COPYING for complete licensing information.

*****************************************************************************/


#ifndef __EVMA_EventmachineCpp__H_
#define __EVMA_EventmachineCpp__H_


// This material is only for directly integrating EM into C++ programs.

namespace EM {

	void Callback (const char *sig, int event, const char *data, int length);
	void Run (void(*)(void));
	void AddTimer (int, void(*)());
	void StopReactor();

	/***************
	class Eventable
	***************/

	class Eventable {
		public:
			Eventable() {}
			virtual ~Eventable() {}

			std::string Signature;

			// Called by the framework
			virtual void ReceiveData (const char *data, int length) {}
			virtual void ConnectionCompleted() {}
			virtual void Accept (const char*) {}
			virtual void Unbind() {}
			virtual void PostInit() {}

			void StopReactor() {EM::StopReactor();}
	};

	/****************
	class Connection
	****************/

	class Connection: public Eventable {
		public:
			Connection() {}
			virtual ~Connection() {}

			virtual void Connect (const char*, int);

			void SendData (const char *data);
			void SendData (const char *data, int length);
			void Close (bool afterWriting);
	};


	/**************
	class Acceptor
	**************/

	class Acceptor: public Eventable {
		public:
			Acceptor() {PostInit();}
			virtual ~Acceptor() {}

			void Start (const char*, int);
			void Accept (const char*);

			virtual Connection *MakeConnection() {return new Connection();}
	};


};





#endif // __EVMA_EventmachineCpp__H_

Version data entries

6 entries across 6 versions & 4 rubygems

Version Path
brianmario-eventmachine-0.12.2 ext/eventmachine_cpp.h
davidsmalley-eventmachine-0.12.3.1 ext/eventmachine_cpp.h
eventmachine-eventmachine-0.12.3 ext/eventmachine_cpp.h
eventmachine-eventmachine-0.12.4 ext/eventmachine_cpp.h
eventmachine-eventmachine-0.12.5 ext/eventmachine_cpp.h
eventmachine-0.12.4 ext/eventmachine_cpp.h