コード例 #1
0
ファイル: FunctionXMLNavigator.cs プロジェクト: uvbs/Holodeck
        ///*************************************************************************
        /// Method:		ParseReturnValue
        /// Description: parses the xml document and extracts an ReturnValue
        ///
        /// Parameters:
        ///	childNaviator - the path navigator that represents the ReturnValue node
        ///		            to extract
        ///	
        /// Return Value: the extracted ReturnValue
        ///*************************************************************************
        protected ReturnValue ParseReturnValue(XPathNavigator childNavigator)
        {
            XPathNavigator ecNavigator = childNavigator.Clone();

            ReturnValue returnValue = new ReturnValue();
            returnValue.NodeValue = ecNavigator.Value;

            returnValue.Type = null;
            returnValue.ValueOperator = null;

            // get the attributes of the ReturnValue tag
            bool hasMoreAttributes = ecNavigator.MoveToFirstAttribute();
            while (hasMoreAttributes)
            {
                if (ecNavigator.Name.CompareTo("Type") == 0)
                {
                    returnValue.Type = ecNavigator.Value;

                }
                if (ecNavigator.Name.CompareTo("ValueOperator") == 0)
                {
                    returnValue.ValueOperator = ecNavigator.Value;
                }

                hasMoreAttributes = ecNavigator.MoveToNextAttribute();
            }

            // get back to the ReturnValue tag
            ecNavigator.MoveToParent();

            return returnValue;
        }
コード例 #2
0
ファイル: EntryPoint.cs プロジェクト: uvbs/Holodeck
        static void Main(string[] args)
        {
            Console.WriteLine("This is Test Appliacation to test Functions.xml");
            try
            {
                FunctionXMLNavigator FuncXMLNav = new FunctionXMLNavigator();

                //enter the "Function.xml" path
                string FunctionXMLFilePath = @"E:\Fall2003\Holodeck xml files\holo 2.5\functions.xml";
                FuncXMLNav.ValidateXmlDocument(FunctionXMLFilePath);
                FuncXMLNav.parseXmlDocument(FunctionXMLFilePath);

                //modifying function here
                Function modifyThis = FuncXMLNav.GetFunctionByName( "bind" );

                //if function not found in original finctions.xml file then it we cannot modify it
                // nor we can add new function to the file
                if(modifyThis != null)
                {
                    modifyThis.OriginalDll = "TESTws2_32.dll";
                    modifyThis.InterceptedDll = "TESTws2_32replacementlibrary.dll";
                    modifyThis.ReplacementFunctionName = "TESTbindReplacement";
                    modifyThis.ReturnType = "TESTint";
                    modifyThis.Modifiers[0] = "TESTWINSOCK_API_LINKAGE";
                    modifyThis.Modifiers[1] = "TESTWSAAPI";
                    modifyThis.Category = "TESTNETWORK";

                    ReturnValue modifiedReturnValue_0 = new ReturnValue();
                    modifiedReturnValue_0.NodeValue = "TEST_0";
                    modifiedReturnValue_0.Type = "TEST_Success";
                    modifyThis.ReturnValue[0] = modifiedReturnValue_0;

                    ReturnValue modifiedReturnValue_1 = new ReturnValue();
                    modifiedReturnValue_1.NodeValue = "TEST_-1(SOCKET_ERROR)";
                    modifiedReturnValue_0.Type= "TEST_Error";
                    modifyThis.ReturnValue[1] = modifiedReturnValue_1;

                    modifyThis.HelpLink = @"TEST_http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/bind_2.asp";

                    Parameter modifiedParam = new Parameter();
                    modifiedParam.Name ="TESTs" ;
                    modifiedParam.Index = 01;
                    modifiedParam.Type ="TESTSOCKET" ;
                    modifiedParam.CompareAs ="TESTPointerType" ;
                    modifiedParam.Access ="TESTIN" ;
                    modifyThis.Parameter[0] = modifiedParam;

                    Parameter modifiedParam1 = new Parameter();
                    modifiedParam1.Name ="TESTname" ;
                    modifiedParam1.Index = 11;
                    modifiedParam1.Type ="TESTconst struct sockaddr FAR *" ;
                    modifiedParam1.CompareAs ="TESTPointerType" ;
                    modifiedParam1.Access ="TESTIN" ;
                    modifyThis.Parameter[1] = modifiedParam1;

                    Parameter modifiedParam2 = new Parameter();
                    modifiedParam2.Name = "TESTnamelen" ;
                    modifiedParam2.Index = 22;
                    modifiedParam2.Type ="TESTint" ;
                    modifiedParam2.CompareAs ="TESTIntegerType" ;
                    modifiedParam2.Access ="TESTIN" ;
                    modifyThis.Parameter[2] = modifiedParam2;

                    FuncXMLNav.UpdateFunctionByName("bind",modifyThis);
                }

                //saving the functions.xml
                FuncXMLNav.saveFunctionXmlDocument(FuncXMLNav,"functions.xml","",true);

                ///cannot use DotNetFunctions.xml as new version 2.5 file is not available.
                //			// DotNetFunctions.xml
                //			Console.WriteLine("This is Test Appliacation to test DotNetFunctions.xml");
                //			FunctionXMLNavigator DotNetFuncXMLNav = new FunctionXMLNavigator();
                //			string DotNetFunctionXMLFilePath = @"E:\Fall2003\Holodeck xml files\DotNetFunctions.xml";
                //			DotNetFuncXMLNav.parseXmlDocument(DotNetFunctionXMLFilePath);
                //			DotNetFuncXMLNav.saveFunctionXmlDocument(DotNetFuncXMLNav,"DotNetFunctions.xml");

            }

            catch(FileNotFoundException f)
            {
                Console.WriteLine(" File Not Found Exception caught.... : " + f.Message);
                Console.WriteLine("Details: " + f.StackTrace);
            }
            catch(SystemException e)
            {
                Console.WriteLine("Caught  System Exception .... : " + e.Message);
                Console.WriteLine("Details: " + e.StackTrace);
            }

            EditValues test = new EditValues();
            //string vp = "abc?ejj1@3%";
            string vp = "abc__ejj1@3%";
            Console.WriteLine(vp);
            Console.WriteLine(test.ToLower(vp));
            Console.WriteLine(test.ToUpper(vp));
            Console.WriteLine(test.InsertAtStart(vp,"pppp"));
            Console.WriteLine(test.InsetAtEnd(vp,"PPPP"));
            Console.WriteLine("SplitString:" +test.SplitString(vp));
            Console.WriteLine(test.SubstituteToNull(vp));
            foreach(string sp in test.SpecialCharacters)
            {
                Console.WriteLine(sp);

            }

            Console.WriteLine(test.changeEncodingToASCII(vp));
            Console.WriteLine(test.changeEncodingToUnicode(vp));
            Console.WriteLine(test.changeEncodingToUTF7(vp));
            Console.WriteLine(test.changeEncodingToUTF8(vp));
        }