public function ScheduleSearchFreeTimes($candidate, $member, $search_time, $search_condition) { // $candidate : CbgrnScheduleSearchFreeTimesCandidateType class or that Array // $member : base:memberType == CbgrnMemberType or that Array // $search_time : xsd:time == (interval seconds(s)) // $serch_condition : ScheduleSearchConditionType == String(enum) {'and' or 'or'} $this->CheckAndSetHeader(__FUNCTION__); $reg_args["candidate"] = $this->getRegularArgs($candidate, __FUNCTION__, "CbgrnScheduleSearchFreeTimesCandidateType"); $reg_args["member"] = $this->getRegularArgs($member, __FUNCTION__, "CbgrnMemberType"); $h = $search_time / 3600; $m = $search_time % 3600 / 60; $s = $search_time % 60; $reg_args["search_time"] = sprintf("%02d:%02d:%02d", $h, $m, $s); $reg_args["search_condition"] = $search_condition; $this->encodeString($reg_args); $results = parent::ScheduleSearchFreeTimes($reg_args); $this->methodClose(); $ret_val = array(); if (isset($results->candidate)) { if (is_array($results->candidate)) { foreach ($results->candidate as $candidate) { $ret_val[] = new CbgrnScheduleFreeTimeType($candidate); } } else { $ret_val[] = new CbgrnScheduleFreeTimeType($results->candidate); } } else { // no schedule found } return $this->decodeString($ret_val); }