##
## Copyright (c) 2006 Jason Dillon
##
## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License.
## You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
##
##
## $Id: //guest/jason_dillon/p4spam/main/pylib/perforce/commands/counter.py#2 $ $Date: 2006/04/12 $
##
from perforce import P4Field, P4Code, P4Exception
from perforce.commands import ResultSupport, SingleResultCommand
COMMAND_NAME = "counter"
##
## CounterCommand
##
class CounterCommand(SingleResultCommand):
def __init__(this, p4):
SingleResultCommand.__init__(this, COMMAND_NAME, p4)
def createResult(this, entry):
return CounterInfo(entry)
##
## CounterInfo
##
class CounterInfo(ResultSupport):
name = None
value = None
def __init__(this, entry):
# STAT is for processing `counters` output
if entry[P4Field.CODE] == P4Code.STAT:
this.value = int(entry['value'])
this.name = entry['counter']
# INFO is for processing `counter` output
elif entry[P4Field.CODE] == P4Code.INFO:
try:
this.value = int(entry[P4Field.DATA])
except ValueError:
# probably was a set
pass
def toString(this):
if this.name == None:
return "%s" % this.value
else:
return "%s = %s" % (this.name, this.value)
##
## perforce.commands factory interface
##
def create(p4):
return CounterCommand(p4)