Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 2 / lab.03.by mice / claw / server

.h
Скачиваний:
10
Добавлен:
17.04.2013
Размер:
2.9 Кб
Скачать
/*******************************************************************************
* file:         server.h                                                       *
* version:      0.0.3                                                          *
* author:       d-evil [tmd] (mailto:d-evil.tmd@mail.ru)                       *
* description:  not available                                                  *
*******************************************************************************/

#ifndef SERVER_INCLUDED
#define SERVER_INCLUDED

#include <afx.h>
#include <afxwin.h>
#include "resource.h"

#include "fake_socket.h"
#include "win_errors.h"
#include "client.h"


////////////////////////////////////////////////////////////////////////////////
// ccw_server declaration
class ccw_server: public CDialog {
public:
	////////////////////////////////////////////////////////////////////////////
	// ccw_server public constants
	static const int MSG_ADD_RECVER		= WM_USER + 0xCD;
	// WPARAM: (ccw_client **)client_added
	// LPARAM: not used
	static const int MSG_DEL_RECVER		= WM_USER + 0xDD;
	// WPARAM: (int)claw_id
	// LPARAM: not used
	static const int MSG_DEL_SERVER		= WM_USER + 0xDA;
	// WPARAM: (int)claw_id
	// LPARAM: not used

	ccw_server();
	~ccw_server();

	HICON get_icon() const { return _hicon; }
	void set_icon(const HICON hicon) { _hicon = hicon; }
	CWnd * get_parent() const { return _parent; }
	void set_parent(CWnd *const parent) { _parent = parent; }
	int get_claw_id() const { return _claw_id; }
	void set_claw_id(const int claw_id) {_claw_id = claw_id; }
	int set_caption();

	int give_life();
	int take_life();

	virtual BOOL OnInitDialog();
	virtual void OnOK() {}
	virtual void OnCancel() {}
	virtual void OnClose();

	int run();
	int stop();
	int pause();
	int upause();
	int wait(const int timeout = 0);

protected:
	////////////////////////////////////////////////////////////////////////////
	// controls
	CEdit *_edit_host;
	CEdit *_edit_ip;
	CEdit *_edit_port;
	CEdit *_edit_status;
	CEdit *_edit_time;
	CButton *_btn_run;
	CButton *_btn_pause;
	CButton *_btn_exit;

	////////////////////////////////////////////////////////////////////////////
	// protected event handlers
	DECLARE_MESSAGE_MAP();

	void _on_btn_run();
	void _on_btn_pause();
	void _on_btn_exit();

	void _init_controls();
	void _lock_edits();
	void _ulock_edits();
	void _set_rbtn_state(const int st);
	void _set_pbtn_state(const int st);

	// net
	int _serv_proc();
	static int _serv_proc_helper(ccw_server *const serv) {
		return serv->_serv_proc();
	}

private:
	CWnd *_parent;
	HICON _hicon;
	HANDLE _run_mtx;
	HANDLE _pause_mtx;
	HANDLE _thread_h;
	DWORD _thread_id;
	bool _stoped;
	bool _paused;
	int _run_btn_state;
	int _pause_btn_state;

	CSocket _sock;

	int _claw_id;
};



#endif
Соседние файлы в папке claw