10 #ifndef _HNetMessageRegistrar_H
11 #define _HNetMessageRegistrar_H
13 #ifndef _HNET_MESSAGE_REGISTRAR
14 #define _HNET_MESSAGE_REGISTRAR
22 #include "HOpObjectAnnotate.h"
24 #include "HMarkupManager.h"
47 const char * message_type,
49 unsigned int data_length) {;};
71 const char * message_type,
73 unsigned int data_length) {
93 const char * message_type,
95 unsigned int data_length) {
116 const char * message_type,
118 unsigned int data_length) {
140 const char * message_type,
142 unsigned int data_length) {
160 const char * message_type,
162 unsigned int data_length) {
186 const char * message_type,
188 unsigned int data_length) {
190 if (strcmp(message_type,
"H_DESELECT_ALL") == 0)
192 else if (strcmp(message_type,
"H_DELETE_SELECTION_LIST") == 0)
216 const char * message_type,
218 unsigned int data_length) {
240 const char * message_type,
242 unsigned int data_length) {
263 const char * message_type,
265 unsigned int data_length) {
290 const char * message_type,
292 unsigned int data_length) {
294 if (strcmp(message_type,
"H_INSERT_MARKUP_LAYER_HSF_DATA") == 0)
296 else if (strcmp(message_type,
"H_SET_MARKUP_LAYER") == 0)
298 else if (strcmp(message_type,
"H_DISABLE_CURRENT_MARKUP_LAYER") == 0)
319 const char * message_type,
321 unsigned int data_length) {
346 const char * message_type,
348 unsigned int data_length) {
350 if (strcmp(message_type,
"H_INSERT_NURBS") == 0)
352 else if(strcmp(message_type,
"H_FINISH_NURBS_EDITING") == 0)
354 else if(strcmp(message_type,
"H_MODIFY_CONTROL_POINT") == 0)
374 const char * message_type,
376 unsigned int data_length) {
396 const char * message_type,
398 unsigned int data_length) {
421 HNetClient * new_hnetclient=0) {
427 message_handler_hash = new_vhash(1, malloc, free);
429 message_handler_hash = 0;
431 default_message_handler=0;
443 if(message_handler_hash) {
444 delete_vhash(message_handler_hash);
445 message_handler_hash=0;
493 net_unset_message_handler_helper,
hnetclient);
496 if(message_handler_hash){
497 vhash_string_key_map_function(
498 message_handler_hash,
499 non_net_unset_message_handler_helper,
530 HNetMessageHandler * handler,
531 const char * message_type)
533 HNetMessageHandler * old_handler=0;
535 old_handler =
hnetclient->SetMessageHandler(handler,message_type);
538 old_handler = (HNetMessageHandler *)vhash_remove_string_key(message_handler_hash, message_type);
540 vhash_insert_string_key(message_handler_hash, message_type, (
void*) handler);
542 if(default_message_handler) old_handler = default_message_handler;
543 default_message_handler = handler;
559 FILE * file = fopen(file_name,
"rb");
561 if(file==NULL)
return false;
564 unsigned long line_number = 0;
565 unsigned long line_buffer_size = 1024;
568 unsigned long expected_n;
572 line_buffer = (
char*) malloc(line_buffer_size);
573 fseek(file,0,SEEK_SET);
582 if(n == line_buffer_size) {
583 char * new_line_buffer;
584 new_line_buffer = (
char*) malloc(line_buffer_size*2);
585 memcpy(new_line_buffer, line_buffer, line_buffer_size);
587 line_buffer = new_line_buffer;
588 line_buffer_size = line_buffer_size*2;
590 a_char = fgetc(file);
596 line_buffer[n] = (char) a_char;
604 if(a_char == 0x0D || a_char == 0x0A) {
611 line_buffer[n] =
'\0';
612 sscanf(line_buffer,
"%ld", &expected_n);
615 line_buffer[n] = (char) a_char;
637 const char * message,
638 unsigned long message_length) {
642 char * message_type = (
char*) malloc(message_length);
645 while(n < message_length && message[n] !=
' ') {
646 message_type[n] = message[n];
649 message_type[n] =
'\0';
651 HNetMessageHandler * message_handler =
652 (HNetMessageHandler *) vhash_lookup_string_key(message_handler_hash, message_type);
655 message_handler = default_message_handler;
657 message_handler->ProcessMessage(message_type, &message[n], message_length-n);
667 struct vhash_s * message_handler_hash;
668 HNetMessageHandler * default_message_handler;
670 static void net_unset_message_handler_helper(
672 const char * message,
675 ((HNetClient*)user_data)->SetMessageHandler(0,message);
676 delete (HNetMessageHandler*)handler;
679 static void non_net_unset_message_handler_helper(
681 const char * message,
686 delete (HNetMessageHandler*)handler;
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:239
HInsertHSFDataMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:109
HBaseView * m_pHBaseView
A pointer to an HBaseView object.
Definition: HNetMessageRegistrar.h:49
virtual void SetHandlers()
Definition: HNetMessageRegistrar.h:458
Definition: HNetMessageRegistrar.h:152
HAnnotateObjectMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:311
virtual void FlushFromMessage(const char *in_data, unsigned int data_length)
HSetHandednessMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:367
Definition: HNetMessageRegistrar.h:228
HNetClient * hnetclient
This is the HNetClient for this registrar.
Definition: HNetMessageRegistrar.h:664
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:92
HSetRenderModeMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:86
static void FinishNurbsEditingFromMessage(const char *in_data, unsigned int data_length, HBaseView *pView)
The HNetMessageRegistrar class maps messages from HNetClients or .snap files to MVO calls...
Definition: HNetMessageRegistrar.h:409
HMarkupManager * GetMarkupManager()
HSetWindowColorMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:233
virtual void SetFontSizeFromMessage(const char *in_data, unsigned int data_length)
virtual void DisableCurrentMarkupLayerFromMessage(const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:81
HSetCameraMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:64
Definition: HNetMessageRegistrar.h:362
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:139
HSelectMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:176
Definition: HNetMessageRegistrar.h:203
Definition: HNetMessageRegistrar.h:331
bool ReadSnapFile(const char *file_name)
Definition: HNetMessageRegistrar.h:557
HSetFontSizeMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:389
HNetMessageRegistrar(HBaseView *new_hbaseview, HNetClient *new_hnetclient=0)
Definition: HNetMessageRegistrar.h:419
HBaseView * hbaseview
This is the HBaseView for this registrar.
Definition: HNetMessageRegistrar.h:662
Definition: HNetMessageRegistrar.h:59
HFlushBaseViewMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:132
virtual HNetMessageHandler * SetMessageHandler(HNetMessageHandler *handler, const char *message_type)
Definition: HNetMessageRegistrar.h:529
Definition: HNetMessageRegistrar.h:104
virtual void DeleteSelectionList(bool emit_message=false)
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:185
HDeleteByKeyMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:208
Definition: HNetMessageRegistrar.h:171
virtual void SetRenderModeFromMessage(const char *in_data, unsigned int data_length)
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:215
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332
MVOMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:38
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:289
virtual void SetWindowColorFromMessage(const char *in_data, unsigned int data_length)
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:345
Definition: HNetMessageRegistrar.h:384
virtual void DeSelectAllFromMessage()
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:115
HSetModellingMatrixMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:256
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:373
Definition: HNetMessageRegistrar.h:32
virtual void DeleteByKeyFromMessage(const char *in_data, unsigned int data_length)
virtual ~HNetMessageRegistrar()
Definition: HNetMessageRegistrar.h:439
Definition: HNetMessageRegistrar.h:251
static void AnnotateObjectFromMessage(HBaseView *pView, const char *in_data, unsigned int data_length)
static void InsertNurbsFromMessage(const char *in_data, unsigned int data_length, HBaseView *m_pView)
Definition: HNetMessageRegistrar.h:306
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:395
Definition: HNetMessageRegistrar.h:127
virtual void SetModellingMatrixFromMessage(const char *in_data, unsigned int data_length)
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:318
virtual void SetMarkupLayerFromMessage(const char *data, unsigned int data_length)
virtual void UnSetHandlers()
Definition: HNetMessageRegistrar.h:488
Definition: HNetMessageRegistrar.h:275
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:262
virtual void InsertHSFDataFromMessage(const char *in_data, unsigned int data_length)
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:159
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:46
virtual void SelectFromMessage(const char *in_data, unsigned int data_length)
HNurbsMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:336
HMarkupMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:280
virtual void ProcessMessage(const char *message, unsigned long message_length)
Definition: HNetMessageRegistrar.h:636
static void ModifyControlPointFromMessage(const char *in_data, unsigned int data_length, HBaseView *pView)
virtual void InsertMarkupSegmentFromMessage(const char *in_data, unsigned int data_length)
virtual void SetHandednessFromMessage(const char *in_data, unsigned int data_length)
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:70
virtual void SetCameraFromMessage(const char *data, unsigned int data_length)