• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

contrib/opal/ZSI/test/wsdl2py/servers/DateService.py

00001 #!/usr/bin/env python
00002 ############################################################################
00003 # Joshua R. Boverhof, LBNL
00004 # See LBNLCopyright for copyright notice!
00005 ###########################################################################
00006 import sys, time
00007 from ZSI.ServiceContainer import AsServer
00008 from DateService_server import simple_Date_Service as _DateService 
00009 
00010 class Service(_DateService):
00011     def soap_getCurrentDate(self, ps):
00012         request,response = _DateService.soap_getCurrentDate(self, ps)
00013         response.Today = today = response.new_today()
00014         request._input
00015         _SetCurrentDate(today)
00016         return request,response
00017 
00018     def soap_getDate(self, ps):
00019         request,response = _DateService.soap_getDate(self, ps)
00020         response.Day = day = response.new_day()
00021         _SetDay(day, offset=request.Offset, 
00022                             date=request.Someday)       
00023         return request,response
00024 
00025 
00026 ## ADDED WORKER CODE
00027 def _SetCurrentDate(today):
00028     dt = time.localtime(time.time())
00029     today.Year = dt[0]
00030     today.Month = dt[1]
00031     today.Day = dt[2]
00032     today.Hour = dt[3]
00033     today.Minute = dt[4]
00034     today.Second = dt[5]
00035     today.Weekday = dt[6]
00036     today.DayOfYear = dt[7]
00037     today.Dst = dt[8]
00038 
00039 def _SetDay(someDay, offset=None, date=None):
00040     sec = 3600 * 24  ## seconds/hour * 24h
00041     providedDate_tuple = (date._year, date._month, date._day,
00042                           date._hour, date._minute, date._second,
00043                           date._weekday, date._dayOfYear, date._dst)
00044     providedDate_sec = time.mktime(providedDate_tuple)
00045     offset_sec = sec * offset
00046     newDate_sec = providedDate_sec + offset_sec
00047     newDate_tuple = time.localtime(newDate_sec)
00048     if not offset:
00049         offset = 0
00050 
00051     if not date:
00052         raise RuntimeError, "Date is required"
00053 
00054     someDay._year = newDate_tuple[0]
00055     someDay._month = newDate_tuple[1]
00056     someDay._day = newDate_tuple[2] 
00057     someDay._hour = newDate_tuple[3]
00058     someDay._minute = newDate_tuple[4]
00059     someDay._second = newDate_tuple[5]
00060     someDay._weekday = newDate_tuple[6]
00061     someDay._dayOfYear = newDate_tuple[7]
00062     someDay._dst = newDate_tuple[8]      
00063     return someDay
00064 
00065 
00066 if __name__ == "__main__" :
00067     port = int(sys.argv[1])
00068     AsServer(port, (Service('test'),))

Generated on Wed Oct 20 2010 11:12:16 for APBS by  doxygen 1.7.2