module functions {
	import from types all;
	import from configuration all;
    group mtcFunctions {
        /*
           @desc Given the security cababilities of an UE (e.g. from an ATTACH
           * REQUEST/UE network capabilities IE) this function creates a new value for
           * the security capabilities which is invalid for the current UE. To achieve
           * this, the original capabilities are inverted.
           * @param p_SecurityCaps Security capabilities as reported by the UE.
           @return Security capabilities which are invalid for the current UE.
         */

        function f1 ()
        runs on sampleComponent1 {
            p1.send ( integer:1 );
            p2.receive ( charstring:"a" );
        }
         //@desc description
         //@param par1, par2
        function f2 ( 
            integer par1, 
            charstring par2
        )
        runs on sampleComponent1 {
            p1.receive ( integer:par1 );
            p2.send ( charstring:par2 );
        }
    } 

    group ptcFunctions {
        //*@desc description
        function f3 ()
        runs on sampleComponent2 {
            p1.send ( integer:1 );
            p2.receive ( charstring:"a" );
        }
        
		/*
         //@desc description
         //@param par1, par2
		*/

        function f4 ( 
            sampleType1 par1, 
            sampleType2 par2
        )
        runs on sampleComponent2 {
            p1.receive ( integer:par1 );
            p2.send ( charstring:par2 );
        }
    } 

}
