Example #1
0
        public void UpdateNameList()
        {
            LinkMgrClass link_list_mgr = this.fabricRootObject.LinkMgrObject();

            int max_index = link_list_mgr.ListMgr().MaxIndex();

            PhwangUtils.ListEntryClass[] list_entry_array = link_list_mgr.ListMgr().EntryTableArray();

            this.nameListTag++;
            if (this.nameListTag > NAME_LIST_CLASS_MAX_NAME_LIST_TAG)
            {
                this.nameListTag = 1;
            }
            this.nameListTagStr = PhwangUtils.EncodeNumberClass.EncodeNumber(this.nameListTag, NAME_LIST_CLASS_NAME_LIST_TAG_SIZE);

            this.nameList = "";
            for (int i = max_index; i >= 0; i--)
            {
                if (list_entry_array[i] != null)
                {
                    if (this.nameList.Length == 0)
                    {
                        this.nameList = PhwangUtils.EncodeNumberClass.EncodeNumber(this.nameListTag, NAME_LIST_CLASS_NAME_LIST_TAG_SIZE);
                    }
                    else
                    {
                        this.nameList = this.nameList + ",";
                    }
                    LinkClass link = (LinkClass)list_entry_array[i].Data();
                    this.nameList = this.nameList + '"' + link.MyName() + '"';
                }
            }

            this.debugIt(true, "updateNameList", this.nameList);
        }
Example #2
0
        private string processGetSessionDataRequest(string input_data_val)
        {
            this.debugIt(true, "processGetSessionDataRequest", "input_data_val = " + input_data_val);
            GetSessionDataRequestFormat format_data;

            using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(input_data_val)))
            {
                DataContractJsonSerializer deseralizer = new DataContractJsonSerializer(typeof(GetSessionDataRequestFormat));
                format_data = (GetSessionDataRequestFormat)deseralizer.ReadObject(ms);// //反序列化ReadObject
                this.debugIt(true, "processGetSessionDataRequest", "link_id = " + format_data.link_id);
                this.debugIt(true, "processGetSessionDataRequest", "session_id = " + format_data.session_id);
            }

            LinkClass link = this.LinkMgrObject().GetLinkByIdStr(format_data.link_id);

            if (link == null)
            {
                return(errorProcessGetSessionData(format_data.link_id, "null link"));
            }

            SessionClass session = link.SessionMgrObject().GetSessionByIdStr(format_data.session_id);

            if (session == null)
            {
                return(errorProcessGetSessionData(format_data.session_id, "null session"));
            }

            string data = session.GetPendingDownLinkData();

            /* send the response down */
            string response_data = this.dFabricResponseObject.GenerateGetSessionDataResponse(link.LinkIdStr(), session.SessionIdStr(), data);

            return(response_data);
        }
Example #3
0
        private string processSetupSession3Request(string input_data_val)
        {
            this.debugIt(true, "processSetupSession3Request", "input_data_val = " + input_data_val);
            SetupSession3RequestFormat format_data;

            using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(input_data_val)))
            {
                DataContractJsonSerializer deseralizer = new DataContractJsonSerializer(typeof(SetupSession3RequestFormat));
                format_data = (SetupSession3RequestFormat)deseralizer.ReadObject(ms);// //反序列化ReadObject
                this.debugIt(true, "processSetupSession3Request", "link_id = " + format_data.link_id);
                this.debugIt(true, "processSetupSession3Request", "session_id = " + format_data.session_id);
            }

            LinkClass    link    = this.LinkMgrObject().GetLinkById(format_data.link_id);
            SessionClass session = link.SessionMgrObject().GetSessionBySessionId(format_data.session_id);

            if (session == null)
            {
                return(errorProcessSetupSession3(format_data.link_id, "null session"));
            }

            string response_data = this.dFabricResponseObject.GenerateSetupSession3Response(link.LinkIdStr(), session.SessionIdStr(), session.BrowserThemeIdStr());

            return(response_data);
        }
Example #4
0
        public LinkClass MallocLink(string my_name_val)
        {
            LinkClass link = new LinkClass(my_name_val);

            PhwangUtils.ListEntryClass list_entry = this.listMgr.MallocEntry(link);
            link.BindListEntry(list_entry);
            this.nameListObject().UpdateNameList();
            return(link);
        }
Example #5
0
        public LinkClass GetLinkById(int id_val)
        {
            PhwangUtils.ListEntryClass list_entry = this.listMgr.GetEntryById(id_val);
            if (list_entry == null)
            {
                return(null);
            }
            LinkClass link = (LinkClass)list_entry.Data();

            return(link);
        }
Example #6
0
        public LinkClass GetLinkByMyName(string my_name_val)
        {
            PhwangUtils.ListEntryClass list_entry = this.listMgr.GetEntryByCompare(CompareMyNameFunc, my_name_val);
            if (list_entry == null)
            {
                return(null);
            }
            LinkClass link = (LinkClass)list_entry.Data();

            return(link);
        }
Example #7
0
        private string processSetupLinkRequest(string input_data_val)
        {
            this.debugIt(true, "processSetupLinkRequest", "input_data_val = " + input_data_val);
            SetupLinkRequestFormatClass format_data;

            using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(input_data_val)))
            {
                DataContractJsonSerializer deseralizer = new DataContractJsonSerializer(typeof(SetupLinkRequestFormatClass));
                format_data = (SetupLinkRequestFormatClass)deseralizer.ReadObject(ms);// //反序列化ReadObject
                this.debugIt(true, "processSetupLinkRequest", "my_name = " + format_data.my_name);
                this.debugIt(true, "processSetupLinkRequest", "password = " + format_data.password);
            }

            LinkClass link          = this.LinkMgrObject().MallocLink(format_data.my_name);
            string    response_data = this.dFabricResponseObject.GenerateSetupLinkResponse(link.LinkIdStr(), link.MyName());

            return(response_data);
        }
Example #8
0
        private string processGetNameListRequest(string input_data_val)
        {
            this.debugIt(true, "processGetNameListRequest", "input_data_val = " + input_data_val);
            GetNameListRequestFormat format_data;

            using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(input_data_val)))
            {
                DataContractJsonSerializer deseralizer = new DataContractJsonSerializer(typeof(GetNameListRequestFormat));
                format_data = (GetNameListRequestFormat)deseralizer.ReadObject(ms);// //反序列化ReadObject
                this.debugIt(true, "processGetNameListRequest", "link_id = " + format_data.link_id);
            }

            LinkClass link = this.LinkMgrObject().GetLinkById(format_data.link_id);

            string name_list = this.FabricRootObject().NameListObject().GetNameList(format_data.name_list_tag);

            string response_data = this.dFabricResponseObject.GenerateGetNameListResponse(link.LinkIdStr(), name_list);

            return(response_data);
        }
Example #9
0
        private string processPutSessionDataRequest(string input_data_val)
        {
            this.debugIt(true, "processPutSessionDataRequest", "input_data_val = " + input_data_val);
            PutSessionDataRequestFormat format_data;

            using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(input_data_val)))
            {
                DataContractJsonSerializer deseralizer = new DataContractJsonSerializer(typeof(PutSessionDataRequestFormat));
                format_data = (PutSessionDataRequestFormat)deseralizer.ReadObject(ms);// //反序列化ReadObject
                this.debugIt(true, "processPutSessionDataRequest", "link_id = " + format_data.link_id);
                this.debugIt(true, "processPutSessionDataRequest", "session_id = " + format_data.session_id);
                this.debugIt(true, "processPutSessionDataRequest", "xmt_seq = " + format_data.xmt_seq);
                this.debugIt(true, "processPutSessionDataRequest", "data = " + format_data.data);
            }

            LinkClass    link    = this.LinkMgrObject().GetLinkById(format_data.link_id);
            SessionClass session = link.SessionMgrObject().GetSessionBySessionId(format_data.session_id);

            if (session == null)
            {
                return(errorProcessPutSessionData(format_data.link_id, "null session"));
            }
            string room_id_str = session.GroupObject().RoomIdStr();

            if (room_id_str == null)
            {
                return(this.errorProcessPutSessionData(format_data.link_id, "null room"));
            }

            /* transfer data up */
            string uplink_data = Protocols.FabricThemeProtocolClass.FABRIC_THEME_PROTOCOL_COMMAND_IS_PUT_ROOM_DATA;

            //uplink_data = uplink_data + room_id_str + link.LinkIdStr() + session.SessionIdStr();
            uplink_data = uplink_data + room_id_str + format_data.data;
            this.UFabricObject().TransmitData(uplink_data);

            /* send the response down */
            string response_data = this.dFabricResponseObject.GeneratePutSessionDataResponse(link.LinkIdStr(), session.SessionIdStr(), "job is done");

            return(response_data);
        }
Example #10
0
        public LinkClass GetLinkByMyName(string my_name_val)
        {
            LinkClass link = null;

            return(link);
        }
Example #11
0
 public void FreeLink(LinkClass link_val)
 {
 }
Example #12
0
        private bool CompareMyNameFunc(object object_val, string my_name_val)
        {
            LinkClass link = (LinkClass)object_val;

            return(link.MyName() == my_name_val);
        }
Example #13
0
 public SessionClass(LinkClass link_object_val)
 {
     this.linkObject = link_object_val;
     this.pendingDownLinkDataQueue = new PhwangUtils.ListQueueClass(false, 0);
 }
Example #14
0
        private string processSetupSessionRequest(string input_data_val)
        {
            this.debugIt(true, "processSetupSessionRequest", "input_data_val = " + input_data_val);
            SetupSessionRequestFormat format_data;

            using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(input_data_val)))
            {
                DataContractJsonSerializer deseralizer = new DataContractJsonSerializer(typeof(SetupSessionRequestFormat));
                format_data = (SetupSessionRequestFormat)deseralizer.ReadObject(ms);// //反序列化ReadObject
                this.debugIt(true, "processSetupSessionRequest", "link_id = " + format_data.link_id);
                this.debugIt(true, "processSetupSessionRequest", "his_name = " + format_data.his_name);
                this.debugIt(true, "processSetupSessionRequest", "theme_data = " + format_data.theme_data);
            }

            string theme_id_str = format_data.theme_data.Substring(0, Protocols.FabricFrontEndProtocolClass.BROWSER_THEME_ID_SIZE);
            string theme_data   = format_data.theme_data.Substring(Protocols.FabricFrontEndProtocolClass.BROWSER_THEME_ID_SIZE);

            LinkClass    link    = this.LinkMgrObject().GetLinkByIdStr(format_data.link_id);
            SessionClass session = link.MallocSession();

            session.SetBrowserThemeIdStr(theme_id_str);
            GroupClass group = this.GroupMgrObject().MallocGroup(theme_data);

            if (group == null)
            {
                return(this.errorProcessSetupSession(format_data.link_id, "null group"));
            }
            group.InsertSession(session);
            session.BindGroup(group);

            if (format_data.his_name == link.MyName())
            {
                this.mallocRoom(group, theme_data);
            }
            else
            {
                LinkClass his_link = this.LinkMgrObject().GetLinkByMyName(format_data.his_name);
                if (his_link == null)
                {
                    return(this.errorProcessSetupSession(format_data.link_id, "his_link does not exist"));
                }
                SessionClass his_session = his_link.MallocSession();
                if (his_session == null)
                {
                    return(this.errorProcessSetupSession(format_data.link_id, "null his_session"));
                }

                group.InsertSession(his_session);
                his_session.BindGroup(group);

                his_link.SetPendingSessionSetup(his_link.LinkIdStr() + his_session.SessionIdStr(), theme_data);
            }
            //char* data_ptr;
            //char* downlink_data = data_ptr = (char*)phwangMalloc(LINK_MGR_DATA_BUFFER_SIZE + 4, "DFS1");
            //*data_ptr++ = WEB_FABRIC_PROTOCOL_RESPOND_IS_SETUP_SESSION;
            //memcpy(data_ptr, ajax_id, WEB_FABRIC_PROTOCOL_AJAX_ID_SIZE);
            //data_ptr += WEB_FABRIC_PROTOCOL_AJAX_ID_SIZE;
            //strcpy(data_ptr, session->sessionIdIndex());
            //this->transmitFunction(tp_transfer_object_val, downlink_data);

            string response_data = this.dFabricResponseObject.GenerateSetupSessionResponse(link.LinkIdStr(), session.SessionIdStr());

            return(response_data);
        }
Example #15
0
        private string processGetLinkDataRequest(string input_data_val)
        {
            this.debugIt(true, "processGetLinkDataRequest", "input_data_val = " + input_data_val);
            GetLinkDataRequestFormat format_data;

            using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(input_data_val)))
            {
                DataContractJsonSerializer deseralizer = new DataContractJsonSerializer(typeof(GetLinkDataRequestFormat));
                format_data = (GetLinkDataRequestFormat)deseralizer.ReadObject(ms);// //反序列化ReadObject
                this.debugIt(true, "processGetLinkDataRequest", "link_id = " + format_data.link_id);
            }

            LinkClass link = this.LinkMgrObject().GetLinkById(format_data.link_id);

            string downlink_data = RESPONSE_IS_GET_LINK_DATA_NAME_LIST + this.FabricRootObject().NameListObject().NameListTagStr();

            int max_session_table_array_index = link.GetSessionArrayMaxIndex();

            PhwangUtils.ListEntryClass[] session_table_array = link.GetSessionArrayEntryTable();
            string pending_session_data = "";

            for (int i = 0; i <= max_session_table_array_index; i++)
            {
                PhwangUtils.ListEntryClass list_entry = session_table_array[i];
                SessionClass session = (SessionClass)list_entry.Data();
                if (session != null)
                {
                    if (session.GetPendingDownLinkDataCount() > 0)
                    {
                        downlink_data = downlink_data + Protocols.FabricFrontEndProtocolClass.WEB_FABRIC_PROTOCOL_RESPOND_IS_GET_LINK_DATA_PENDING_DATA + link.LinkIdStr() + session.SessionIdStr();
                    }
                }
            }

            /*
             *
             * int max_session_table_array_index = phwnagListMgrGetMaxIndex(link->sessionListMgrObject(), "DFabricClass::processGetLinkDataRequest()");
             * SessionClass** session_table_array = (SessionClass**)phwangListMgrGetEntryTableArray(link->sessionListMgrObject());
             * for (int i = 0; i <= max_session_table_array_index; i++)
             * {
             *  SessionClass* session = session_table_array[i];
             *  if (session)
             *  {
             *      char* pending_downlink_data = session->getPendingDownLinkData();
             *      if (pending_downlink_data)
             *      {
             * data_ptr++ = WEB_FABRIC_PROTOCOL_RESPOND_IS_GET_LINK_DATA_PENDING_DATA;
             *          session->enqueuePendingDownLinkData(pending_downlink_data);
             *          strcpy(data_ptr, link->linkIdIndex());
             *          data_ptr += LINK_MGR_PROTOCOL_LINK_ID_INDEX_SIZE;
             *          strcpy(data_ptr, session->sessionIdIndex());
             *          data_ptr += LINK_MGR_PROTOCOL_SESSION_ID_INDEX_SIZE;
             *          this->debug(true, "==================processGetLinkData getPendingDownLinkData", downlink_data);
             *      }
             *  }
             * }
             */



            string pending_session_setup = "";
            string pending_session_str   = link.getPendingSessionSetup();

            if (pending_session_str != null)
            {
                pending_session_setup = pending_session_setup + Protocols.FabricFrontEndProtocolClass.WEB_FABRIC_PROTOCOL_RESPOND_IS_GET_LINK_DATA_PENDING_SESSION;
                pending_session_setup = pending_session_setup + pending_session_str;
            }

            string pending_session_str3 = link.getPendingSessionSetup3();

            if (pending_session_str3 != null)
            {
                pending_session_setup = pending_session_setup + Protocols.FabricFrontEndProtocolClass.WEB_FABRIC_PROTOCOL_RESPOND_IS_GET_LINK_DATA_PENDING_SESSION3;
                pending_session_setup = pending_session_setup + pending_session_str3;
            }

            downlink_data = downlink_data + pending_session_setup;

            string response_data = this.dFabricResponseObject.GenerateGetLinkDataResponse(link.LinkIdStr(), downlink_data, pending_session_setup);

            return(response_data);
        }
Example #16
0
 public SessionMgrClass(LinkClass link_object_val)
 {
     this.linkObject = link_object_val;
     this.listMgr    = new PhwangUtils.ListMgrClass(this.objectName, FIRST_SESSION_ID);
 }