14 #ifndef _HNetMessageRegistrar_H
15 #define _HNetMessageRegistrar_H
17 #ifndef _HNET_MESSAGE_REGISTRAR
18 #define _HNET_MESSAGE_REGISTRAR
26 #include "HOpObjectAnnotate.h"
28 #include "HMarkupManager.h"
51 const char * message_type,
53 unsigned int data_length) {;};
75 const char * message_type,
77 unsigned int data_length) {
97 const char * message_type,
99 unsigned int data_length) {
120 const char * message_type,
122 unsigned int data_length) {
144 const char * message_type,
146 unsigned int data_length) {
164 const char * message_type,
166 unsigned int data_length) {
190 const char * message_type,
192 unsigned int data_length) {
194 if (strcmp(message_type,
"H_DESELECT_ALL") == 0)
196 else if (strcmp(message_type,
"H_DELETE_SELECTION_LIST") == 0)
220 const char * message_type,
222 unsigned int data_length) {
244 const char * message_type,
246 unsigned int data_length) {
267 const char * message_type,
269 unsigned int data_length) {
294 const char * message_type,
296 unsigned int data_length) {
298 if (strcmp(message_type,
"H_INSERT_MARKUP_LAYER_HSF_DATA") == 0)
300 else if (strcmp(message_type,
"H_SET_MARKUP_LAYER") == 0)
302 else if (strcmp(message_type,
"H_DISABLE_CURRENT_MARKUP_LAYER") == 0)
323 const char * message_type,
325 unsigned int data_length) {
350 const char * message_type,
352 unsigned int data_length) {
354 if (strcmp(message_type,
"H_INSERT_NURBS") == 0)
356 else if(strcmp(message_type,
"H_FINISH_NURBS_EDITING") == 0)
358 else if(strcmp(message_type,
"H_MODIFY_CONTROL_POINT") == 0)
378 const char * message_type,
380 unsigned int data_length) {
400 const char * message_type,
402 unsigned int data_length) {
425 HNetClient * new_hnetclient=0) {
431 message_handler_hash = new_vhash(1, malloc, free);
433 message_handler_hash = 0;
435 default_message_handler=0;
447 if(message_handler_hash) {
448 delete_vhash(message_handler_hash);
449 message_handler_hash=0;
497 net_unset_message_handler_helper,
hnetclient);
500 if(message_handler_hash){
501 vhash_string_key_map_function(
502 message_handler_hash,
503 non_net_unset_message_handler_helper,
534 HNetMessageHandler * handler,
535 const char * message_type)
537 HNetMessageHandler * old_handler=0;
539 old_handler =
hnetclient->SetMessageHandler(handler,message_type);
542 old_handler = (HNetMessageHandler *)vhash_remove_string_key(message_handler_hash, message_type);
544 vhash_insert_string_key(message_handler_hash, message_type, (
void*) handler);
546 if(default_message_handler) old_handler = default_message_handler;
547 default_message_handler = handler;
563 FILE * file = fopen(file_name,
"rb");
565 if(file==NULL)
return false;
568 unsigned long line_number = 0;
569 unsigned long line_buffer_size = 1024;
572 unsigned long expected_n;
576 line_buffer = (
char*) malloc(line_buffer_size);
577 fseek(file,0,SEEK_SET);
586 if(n == line_buffer_size) {
587 char * new_line_buffer;
588 new_line_buffer = (
char*) malloc(line_buffer_size*2);
589 memcpy(new_line_buffer, line_buffer, line_buffer_size);
591 line_buffer = new_line_buffer;
592 line_buffer_size = line_buffer_size*2;
594 a_char = fgetc(file);
600 line_buffer[n] = (char) a_char;
608 if(a_char == 0x0D || a_char == 0x0A) {
615 line_buffer[n] =
'\0';
616 sscanf(line_buffer,
"%ld", &expected_n);
619 line_buffer[n] = (char) a_char;
641 const char * message,
642 unsigned long message_length) {
646 char * message_type = (
char*) malloc(message_length);
649 while(n < message_length && message[n] !=
' ') {
650 message_type[n] = message[n];
653 message_type[n] =
'\0';
655 HNetMessageHandler * message_handler =
656 (HNetMessageHandler *) vhash_lookup_string_key(message_handler_hash, message_type);
659 message_handler = default_message_handler;
661 message_handler->ProcessMessage(message_type, &message[n], message_length-n);
671 struct vhash_s * message_handler_hash;
672 HNetMessageHandler * default_message_handler;
674 static void net_unset_message_handler_helper(
676 const char * message,
679 ((HNetClient*)user_data)->SetMessageHandler(0,message);
680 delete (HNetMessageHandler*)handler;
683 static void non_net_unset_message_handler_helper(
685 const char * message,
690 delete (HNetMessageHandler*)handler;
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:243
HInsertHSFDataMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:113
HBaseView * m_pHBaseView
A pointer to an HBaseView object.
Definition: HNetMessageRegistrar.h:53
virtual void SetHandlers()
Definition: HNetMessageRegistrar.h:462
Definition: HNetMessageRegistrar.h:156
HAnnotateObjectMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:315
virtual void FlushFromMessage(const char *in_data, unsigned int data_length)
HSetHandednessMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:371
Definition: HNetMessageRegistrar.h:232
HNetClient * hnetclient
This is the HNetClient for this registrar.
Definition: HNetMessageRegistrar.h:668
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:96
HSetRenderModeMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:90
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:413
HMarkupManager * GetMarkupManager()
HSetWindowColorMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:237
virtual void SetFontSizeFromMessage(const char *in_data, unsigned int data_length)
virtual void DisableCurrentMarkupLayerFromMessage(const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:85
HSetCameraMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:68
Definition: HNetMessageRegistrar.h:366
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:143
HSelectMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:180
Definition: HNetMessageRegistrar.h:207
Definition: HNetMessageRegistrar.h:335
bool ReadSnapFile(const char *file_name)
Definition: HNetMessageRegistrar.h:561
HSetFontSizeMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:393
HNetMessageRegistrar(HBaseView *new_hbaseview, HNetClient *new_hnetclient=0)
Definition: HNetMessageRegistrar.h:423
HBaseView * hbaseview
This is the HBaseView for this registrar.
Definition: HNetMessageRegistrar.h:666
Definition: HNetMessageRegistrar.h:63
HFlushBaseViewMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:136
virtual HNetMessageHandler * SetMessageHandler(HNetMessageHandler *handler, const char *message_type)
Definition: HNetMessageRegistrar.h:533
Definition: HNetMessageRegistrar.h:108
virtual void DeleteSelectionList(bool emit_message=false)
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:189
HDeleteByKeyMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:212
Definition: HNetMessageRegistrar.h:175
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:219
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:337
MVOMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:42
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:293
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:349
Definition: HNetMessageRegistrar.h:388
virtual void DeSelectAllFromMessage()
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:119
HSetModellingMatrixMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:260
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:377
Definition: HNetMessageRegistrar.h:36
virtual void DeleteByKeyFromMessage(const char *in_data, unsigned int data_length)
virtual ~HNetMessageRegistrar()
Definition: HNetMessageRegistrar.h:443
Definition: HNetMessageRegistrar.h:255
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:310
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:399
Definition: HNetMessageRegistrar.h:131
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:322
virtual void SetMarkupLayerFromMessage(const char *data, unsigned int data_length)
virtual void UnSetHandlers()
Definition: HNetMessageRegistrar.h:492
Definition: HNetMessageRegistrar.h:279
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:266
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:163
void ProcessMessage(const char *message_type, const char *data, unsigned int data_length)
Definition: HNetMessageRegistrar.h:50
virtual void SelectFromMessage(const char *in_data, unsigned int data_length)
HNurbsMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:340
HMarkupMessageHandler(HBaseView *hbaseview)
Definition: HNetMessageRegistrar.h:284
virtual void ProcessMessage(const char *message, unsigned long message_length)
Definition: HNetMessageRegistrar.h:640
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:74
virtual void SetCameraFromMessage(const char *data, unsigned int data_length)