Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  utils.g   Sprache: unbekannt

 
Spracherkennung für: .g vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

###########################################################################
##
#W utils.g                  The SCSCP package            Olexandr Konovalov
#W                                                             Steve Linton
##
###########################################################################

###########################################################################
##
##  DateISO8601
##
##  <#GAPDoc Label="DateISO8601">
##  <ManSection>
##  <Func Name="DateISO8601" Arg=""/>
##  <Returns>
##    string
##  </Returns>  
##  <Description>
##  Returns the current date in the ISO-8601 YYYY-MM-DD format. 
##  This is an internal function of the package which is used 
##  by the &SCSCP; server to generate the transient content 
##  dictionary, accordingly to the definition of the &OpenMath; 
##  symbol <C>meta.CDDate</C>.
##  <Log>
##  <![CDATA[
##  gap> DateISO8601();
##  "2017-02-05"
##  ]]>
##  </Log>
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal( "DateISO8601", function()
local s, date;
s := IO_Popen("date", [ "+%y-%m-%d" ],"r");
date := IO_ReadLine(s);
IO_Close(s);
return Concatenation( "20", date{[ 1 .. Length(date)-1 ]} );
end);


###########################################################################
##
##  CurrentTimestamp
##
##  <#GAPDoc Label="CurrentTimestamp">
##  <ManSection>
##  <Func Name="CurrentTimestamp" Arg="" />
##  <Returns>
##    string
##  </Returns>  
##  <Description>
##  Returns the result of the call to <File>date</File>. 
##  This is an internal function of the package which is 
##  used to add the timestamp to the &SCSCP; service description.
##  <Log>
##  <![CDATA[
##  gap> CurrentTimestamp();
##  "Tue 30 Jan 2017 11:19:38 BST"
##  ]]>
##  </Log>
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal( "CurrentTimestamp", function() 
local s, date;
s := IO_Popen("date", [ ], "r");
date := IO_ReadLine(s);
IO_Close(s);
return date{[ 1 .. Length(date)-1 ]};
end);


###########################################################################
##
##  Hostname
##
##  <#GAPDoc Label="Hostname">
##  <ManSection>
##  <Func Name="Hostname" Arg=""/>
##  <Returns>
##    string    
##  </Returns>  
##  <Description>
##  Returns the result of the call to <File>hostname</File>. This function 
##  may be used in the configuration file <File>scscp/config.g</File>
##  to specify that the default hostname which will be used by the &SCSCP; 
##  server will be detected automatically using <File>hostname</File>.
##  <Log>
##  <![CDATA[
##  gap> Hostname();
##  "scscp.gap-system.org"
##  ]]>
##  </Log>     
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal( "Hostname", function()
local s, hostname;
s := IO_Popen("hostname",[],"r");
hostname := IO_ReadLine(s);
IO_Close(s);
return hostname{[ 1 .. Length(hostname)-1 ]};;
end);


###########################################################################
##
##  MemoryUsageByGAPinKbytes
##
##  <#GAPDoc Label="MemoryUsageByGAPinKbytes">
##  <ManSection>
##  <Func Name="MemoryUsageByGAPinKbytes" Arg=""/>
##  <Returns>
##    integer
##  </Returns>  
##  <Description>
##  Returns the current volume of the memory used by &GAP; in kylobytes. 
##  This is equivalent to calling <File>ps -p <PID> -o vsz</File>, where
##  <C><PID></C> is the process ID of the &GAP; process. This is an 
##  internal function of the package which is used by the &SCSCP; server to 
##  report its memory usage in the <C>info_memory</C> attribute when being 
##  called with the option <C>debuglevel=2</C> (see options in 
##  <Ref Func="EvaluateBySCSCP" /> and <Ref Func="NewProcess" />).
##  <Log>
##  <![CDATA[
##  gap> MemoryUsageByGAPinKbytes();
##  649848
##  ]]>
##  </Log>     
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal( "MemoryUsageByGAPinKbytes", function()
local s, mem;
s := IO_Popen( "ps", [ "-p", String( IO_getpid() ), "-o", "vsz" ], "r");
IO_ReadLine(s);
mem := IO_ReadLine(s);
IO_Close(s);
RemoveCharacters( mem, " \n" );
return Int(mem);
end);


###########################################################################
##
##  LastReceivedCallID
##
##  <#GAPDoc Label="LastReceivedCallID">
##  <ManSection>
##  <Func Name="LastReceivedCallID" Arg=""/>
##  <Returns>
##    string
##  </Returns>  
##  <Description>
##  Returns the call ID contained in the most recently received message. 
##  It may contain some useful debugging information; in particular, the 
##  call ID for the &GAP; &SCSCP; client and server contains colon-separated 
##  server name, port number, process ID and a random string.
##  <Log>
##  <![CDATA[
##  gap> LastReceivedCallID();
##  "scscp.gap-system.org:26133:77372:choDZBgA"
##  ]]>
##  </Log> 
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal( "LastReceivedCallID", function()
return OMTempVars.OMATTR.content[2].content[1].content; 
end);


###########################################################################
##
##  IO_PickleToString
##
##  <#GAPDoc Label="IO_PickleToString">
##  <ManSection>
##  <Func Name="IO_PickleToString" Arg="obj"/>
##  <Returns>
##    string containing "pickled" object
##  </Returns>  
##  <Description>
##  This function "pickles" or "serialises" the object <A>obj</A> using the
##  operation <Ref BookName="IO" Oper="IO_Pickle" /> from the &IO; package, 
##  and writes it to a string, from which it could be later restored using 
##  <Ref Func="IO_UnpickleFromString" />. This provides a way to design 
##  &SCSCP; procedures which transmit &GAP; objects in the "pickled" format 
##  as &OpenMath; strings, which may be useful for objects which may be 
##  "pickled" by the &IO; package but can not be converted to &OpenMath; 
##  or for which the "pickled" representation is more compact or can be 
##  encoded/decoded much faster.
##  <P/> 
##  See <Ref BookName="IO" Oper="IO_Pickle" /> and <Ref
##  BookName="IO" Oper="IO_Unpickle" /> for more details.
##  <Example>
##  <![CDATA[
##  gap> f := IO_PickleToString( GF( 125 ) );
##  "FFIEINTG\>15INTG\>13FAIL"
##  ]]>
##  </Example>        
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal( "IO_PickleToString", function( obj )
local rb, wb, s;
rb:="";
wb:="";
s:=IO_WrapFD(-1,rb,wb);
IO_Pickle( s, obj );
IO_Close( s );
return wb;
end);


###########################################################################
##
##  IO_UnpickleFromString
##
##  <#GAPDoc Label="IO_UnpickleFromString">
##  <ManSection>
##  <Func Name="IO_UnpickleFromString" Arg="s"/>
##  <Returns>
##    "unpickled" GAP object
##  </Returns>  
##  <Description>
##  This function "unpickles" the string <A>s</A> which was
##  created using the function <Ref Func="IO_PickleToString" />,
##  using the operation <Ref BookName="IO" Oper="IO_Unpickle" /> 
##  from the &IO; package. See <Ref Func="IO_PickleToString" />
##  for more details and suggestions about its usage.
##  <Example>
##  <![CDATA[
##  gap> IO_UnpickleFromString( f );                    
##  GF(5^3)
##  gap> f = IO_UnpickleFromString( IO_PickleToString( f ) ); 
##  true
##  ]]>
##  </Example>   
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal( "IO_UnpickleFromString", function( str )
local rb, wb, s, r;
rb:=str;
wb:="";
s:=IO_WrapFD(-1,rb,wb);
r:=IO_Unpickle( s );
IO_Close( s );
return r;
end);


##########################################################################
##
##  SwitchSCSCPmodeToBinary
##
##  <#GAPDoc Label="SwitchSCSCPmodeToBinary">
##  <ManSection>
##  <Func Name="SwitchSCSCPmodeToBinary" Arg=""/>
##  <Func Name="SwitchSCSCPmodeToXML" Arg=""/>
##  <Returns>
##    nothing
##  </Returns>  
##  <Description>
##  The &OpenMath; package supports both binary and XML encodings for 
##  &OpenMath;. To switch between them, use 
##  <Ref Func="SwitchSCSCPmodeToBinary"/> and
##  <Ref Func="SwitchSCSCPmodeToXML"/>.
##  When the package is loaded, the mode is initially set to XML.
##  On the clients's side, you can change the mode back and forth as 
##  many times as you wish during the same &SCSCP; session. The server
##  will autodetect the mode and will response in the same format, so
##  one does not need to set the mode on the server's side.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal( "SwitchSCSCPmodeToBinary", function( )
IN_SCSCP_BINARY_MODE := true;
end);

BindGlobal( "SwitchSCSCPmodeToXML", function( )
IN_SCSCP_BINARY_MODE := false;
end);


###########################################################################
##
#E 
##

[ Dauer der Verarbeitung: 0.45 Sekunden  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge