📄 pco_view_core.h
字号:
/*
+--------------------------------------------------------------------+
| PROJECT: PCO2 () $Workfile:: pco_view_core.h $|
| Author:: RK CONDAT GmbH $Revision: 1.1.1.1 $|
| CREATED: 17.08.00 $Modtime:: 6.09.99 12:07 $|
| STATE : code |
+--------------------------------------------------------------------+
MODULE : PCO_VIEW_CORE
PURPOSE : This Modul contains the core viewer class
with basic functions and handlers for several PCO control
messages.
It is intended to be specialized and extended, e.g. in
GUI-server-applications.
Some member functions are totally virtual without any
standard body and have to be provided by the child class !
EXPORT : class PCOView_core
*/
#ifndef _PCO_VIEW_CORE_H_
#define _PCO_VIEW_CORE_H_
/*==== INCLUDES ===================================================*/
#ifndef PCO_VIEW_CORE_CPP
#include "pco_view_templ.h"
#else
#include "view/pco_view_templ.h"
#endif
/*==== DEFINES =====================================================*/
/*==== PROTOTYPES ==================================================*/
class IniFile;
/*==== CLASSES =====================================================*/
class PCOView_core : public PCOView_templ
{
public:
PCOView_core(const char* ini_file, int& err,
const char* primq_name="", const char* ctrlq_name="");
virtual ~PCOView_core();
/*
+-------------------------------------------------------------------------------+
| PROJECT : PCO2 MODULE : PCO_CTRL_CORE |
| STATE : code ROUTINE : PCOView_core::dispatch_message |
+-------------------------------------------------------------------------------+
PURPOSE : parses a PCO control message
PARAMS: buf ... the data
size .. size of buf
id ... id of the message
sender .. queue name of sender
RETURNS: 0 .. if message has been handled
-1 .. otherwise
*/
virtual int dispatch_message(void* buf, U16 size, U16 id, const char* sender);
/*
+-------------------------------------------------------------------------------+
| PROJECT : PCO2 MODULE : PCO_CTRL_CORE |
| STATE : code ROUTINE : PCOView_core::interpret_message|
+-------------------------------------------------------------------------------+
PURPOSE : here interpretation of received raw data takes place
(has to be implemented by derived classes !)
PARAMS: buffer .. raw data to be interpretated
bufsize .. size of buffer
data .. actual data
size .. size of data
id .. id of data message
time .. time stamp in seconds since 1970 or milliseconds since reset
sender .. name of sender
receiver.. name of original receiver
RETURNS: 0 .. success
-1 .. interpretation was not possible
*/
virtual int interpret_message(void* buffer, U16 bufsize,
void* &data, U16 &size, ULONG &id, U32 &time, char* &sender, char* &receiver) = 0;
/*
+-------------------------------------------------------------------------------+
| PROJECT : PCO2 MODULE : PCO_CTRL_CORE |
| STATE : code ROUTINE : PCOView_core::on_data |
+-------------------------------------------------------------------------------+
PURPOSE : here reaction to received data takes place
(has to be implemented by derived classes !)
PARAMS: data .. the data
size .. size of data
id .. id of data message
time .. time stamp in seconds since 1970 or milliseconds since reset
sender .. name of sender
receiver.. name of original receiver
*/
virtual void on_data(void* data, U16 size, ULONG id,
U32 time, const char* sender, char* receiver) = 0;
/*
+----------------------------------------------------------------------------------+
| PROJECT : PCO2 MODULE : PCO_CTRL_CORE |
| STATE : code ROUTINE : PCOView_core::propagate_inichange |
+----------------------------------------------------------------------------------+
PURPOSE : saves ini-file and sends an information about important ini-file changes
to the server, which will propagate it to all connected viewers
PARAMS:
RETURNS: 0 .. sucess
-1 .. Server not found
-2 .. error while contacting Server
*/
int propagate_inichange();
/*
+-------------------------------------------------------------------------------+
| PROJECT : PCO2 MODULE : PCO_CTRL_CORE |
| STATE : code ROUTINE : PCOView_core::on_inichange |
+-------------------------------------------------------------------------------+
PURPOSE : reloads important changes from ini-file
PARAMS:
*/
virtual void on_inichange();
bool running() const {return m_running;}
int dsize() const { return m_dsize;}
protected:
CMS_HANDLE m_prim_handle,m_ctrl_handle;
bool m_running;
IniFile *m_inifile;
int m_dsize;
static void cms_prim_proc(long view);
static void cms_ctrl_proc(long view);
};
#endif /* _PCO_VIEW_CORE_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -