<?php
 
 
 

namespace PhpWA\Protocol\Proto;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;




class ClientPayload extends \Google\Protobuf\Internal\Message
{
    


    protected $username = null;
    


    protected $passive = null;
    


    protected $userAgent = null;
    


    protected $webInfo = null;
    


    protected $pushName = null;
    


    protected $sessionId = null;
    


    protected $shortConnect = null;
    


    protected $connectType = null;
    


    protected $connectReason = null;
    


    private $shards;
    


    protected $dnsSource = null;
    


    protected $connectAttemptCount = null;
    


    protected $device = null;
    


    protected $devicePairingData = null;
    


    protected $product = null;
    


    protected $fbCat = null;
    


    protected $fbUserAgent = null;
    


    protected $oc = null;
    


    protected $lc = null;
    


    protected $iosAppExtension = null;
    


    protected $fbAppId = null;
    


    protected $fbDeviceId = null;
    


    protected $pull = null;
    


    protected $paddingBytes = null;
    


    protected $yearClass = null;
    


    protected $memClass = null;
    


    protected $interopData = null;
    


    protected $trafficAnonymization = null;
    


    protected $lidDbMigrated = null;
    


    protected $accountType = null;
    


    protected $connectionSequenceInfo = null;
    


    protected $paaLink = null;
    


    protected $preacksCount = null;
    


    protected $processingQueueSize = null;

    









































    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    



    public function getUsername()
    {
        return isset($this->username) ? $this->username : 0;
    }

    public function hasUsername()
    {
        return isset($this->username);
    }

    public function clearUsername()
    {
        unset($this->username);
    }

    




    public function setUsername($var)
    {
        GPBUtil::checkUint64($var);
        $this->username = $var;

        return $this;
    }

    



    public function getPassive()
    {
        return isset($this->passive) ? $this->passive : false;
    }

    public function hasPassive()
    {
        return isset($this->passive);
    }

    public function clearPassive()
    {
        unset($this->passive);
    }

    




    public function setPassive($var)
    {
        GPBUtil::checkBool($var);
        $this->passive = $var;

        return $this;
    }

    



    public function getUserAgent()
    {
        return $this->userAgent;
    }

    public function hasUserAgent()
    {
        return isset($this->userAgent);
    }

    public function clearUserAgent()
    {
        unset($this->userAgent);
    }

    




    public function setUserAgent($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ClientPayload\UserAgent::class);
        $this->userAgent = $var;

        return $this;
    }

    



    public function getWebInfo()
    {
        return $this->webInfo;
    }

    public function hasWebInfo()
    {
        return isset($this->webInfo);
    }

    public function clearWebInfo()
    {
        unset($this->webInfo);
    }

    




    public function setWebInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ClientPayload\WebInfo::class);
        $this->webInfo = $var;

        return $this;
    }

    



    public function getPushName()
    {
        return isset($this->pushName) ? $this->pushName : '';
    }

    public function hasPushName()
    {
        return isset($this->pushName);
    }

    public function clearPushName()
    {
        unset($this->pushName);
    }

    




    public function setPushName($var)
    {
        GPBUtil::checkString($var, True);
        $this->pushName = $var;

        return $this;
    }

    



    public function getSessionId()
    {
        return isset($this->sessionId) ? $this->sessionId : 0;
    }

    public function hasSessionId()
    {
        return isset($this->sessionId);
    }

    public function clearSessionId()
    {
        unset($this->sessionId);
    }

    




    public function setSessionId($var)
    {
        GPBUtil::checkInt32($var);
        $this->sessionId = $var;

        return $this;
    }

    



    public function getShortConnect()
    {
        return isset($this->shortConnect) ? $this->shortConnect : false;
    }

    public function hasShortConnect()
    {
        return isset($this->shortConnect);
    }

    public function clearShortConnect()
    {
        unset($this->shortConnect);
    }

    




    public function setShortConnect($var)
    {
        GPBUtil::checkBool($var);
        $this->shortConnect = $var;

        return $this;
    }

    



    public function getConnectType()
    {
        return isset($this->connectType) ? $this->connectType : 0;
    }

    public function hasConnectType()
    {
        return isset($this->connectType);
    }

    public function clearConnectType()
    {
        unset($this->connectType);
    }

    




    public function setConnectType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\ConnectType::class);
        $this->connectType = $var;

        return $this;
    }

    



    public function getConnectReason()
    {
        return isset($this->connectReason) ? $this->connectReason : 0;
    }

    public function hasConnectReason()
    {
        return isset($this->connectReason);
    }

    public function clearConnectReason()
    {
        unset($this->connectReason);
    }

    




    public function setConnectReason($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\ConnectReason::class);
        $this->connectReason = $var;

        return $this;
    }

    



    public function getShards()
    {
        return $this->shards;
    }

    




    public function setShards($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
        $this->shards = $arr;

        return $this;
    }

    



    public function getDnsSource()
    {
        return $this->dnsSource;
    }

    public function hasDnsSource()
    {
        return isset($this->dnsSource);
    }

    public function clearDnsSource()
    {
        unset($this->dnsSource);
    }

    




    public function setDnsSource($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ClientPayload\DNSSource::class);
        $this->dnsSource = $var;

        return $this;
    }

    



    public function getConnectAttemptCount()
    {
        return isset($this->connectAttemptCount) ? $this->connectAttemptCount : 0;
    }

    public function hasConnectAttemptCount()
    {
        return isset($this->connectAttemptCount);
    }

    public function clearConnectAttemptCount()
    {
        unset($this->connectAttemptCount);
    }

    




    public function setConnectAttemptCount($var)
    {
        GPBUtil::checkUint32($var);
        $this->connectAttemptCount = $var;

        return $this;
    }

    



    public function getDevice()
    {
        return isset($this->device) ? $this->device : 0;
    }

    public function hasDevice()
    {
        return isset($this->device);
    }

    public function clearDevice()
    {
        unset($this->device);
    }

    




    public function setDevice($var)
    {
        GPBUtil::checkUint32($var);
        $this->device = $var;

        return $this;
    }

    



    public function getDevicePairingData()
    {
        return $this->devicePairingData;
    }

    public function hasDevicePairingData()
    {
        return isset($this->devicePairingData);
    }

    public function clearDevicePairingData()
    {
        unset($this->devicePairingData);
    }

    




    public function setDevicePairingData($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ClientPayload\DevicePairingRegistrationData::class);
        $this->devicePairingData = $var;

        return $this;
    }

    



    public function getProduct()
    {
        return isset($this->product) ? $this->product : 0;
    }

    public function hasProduct()
    {
        return isset($this->product);
    }

    public function clearProduct()
    {
        unset($this->product);
    }

    




    public function setProduct($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\Product::class);
        $this->product = $var;

        return $this;
    }

    



    public function getFbCat()
    {
        return isset($this->fbCat) ? $this->fbCat : '';
    }

    public function hasFbCat()
    {
        return isset($this->fbCat);
    }

    public function clearFbCat()
    {
        unset($this->fbCat);
    }

    




    public function setFbCat($var)
    {
        GPBUtil::checkString($var, False);
        $this->fbCat = $var;

        return $this;
    }

    



    public function getFbUserAgent()
    {
        return isset($this->fbUserAgent) ? $this->fbUserAgent : '';
    }

    public function hasFbUserAgent()
    {
        return isset($this->fbUserAgent);
    }

    public function clearFbUserAgent()
    {
        unset($this->fbUserAgent);
    }

    




    public function setFbUserAgent($var)
    {
        GPBUtil::checkString($var, False);
        $this->fbUserAgent = $var;

        return $this;
    }

    



    public function getOc()
    {
        return isset($this->oc) ? $this->oc : false;
    }

    public function hasOc()
    {
        return isset($this->oc);
    }

    public function clearOc()
    {
        unset($this->oc);
    }

    




    public function setOc($var)
    {
        GPBUtil::checkBool($var);
        $this->oc = $var;

        return $this;
    }

    



    public function getLc()
    {
        return isset($this->lc) ? $this->lc : 0;
    }

    public function hasLc()
    {
        return isset($this->lc);
    }

    public function clearLc()
    {
        unset($this->lc);
    }

    




    public function setLc($var)
    {
        GPBUtil::checkInt32($var);
        $this->lc = $var;

        return $this;
    }

    



    public function getIosAppExtension()
    {
        return isset($this->iosAppExtension) ? $this->iosAppExtension : 0;
    }

    public function hasIosAppExtension()
    {
        return isset($this->iosAppExtension);
    }

    public function clearIosAppExtension()
    {
        unset($this->iosAppExtension);
    }

    




    public function setIosAppExtension($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\IOSAppExtension::class);
        $this->iosAppExtension = $var;

        return $this;
    }

    



    public function getFbAppId()
    {
        return isset($this->fbAppId) ? $this->fbAppId : 0;
    }

    public function hasFbAppId()
    {
        return isset($this->fbAppId);
    }

    public function clearFbAppId()
    {
        unset($this->fbAppId);
    }

    




    public function setFbAppId($var)
    {
        GPBUtil::checkUint64($var);
        $this->fbAppId = $var;

        return $this;
    }

    



    public function getFbDeviceId()
    {
        return isset($this->fbDeviceId) ? $this->fbDeviceId : '';
    }

    public function hasFbDeviceId()
    {
        return isset($this->fbDeviceId);
    }

    public function clearFbDeviceId()
    {
        unset($this->fbDeviceId);
    }

    




    public function setFbDeviceId($var)
    {
        GPBUtil::checkString($var, False);
        $this->fbDeviceId = $var;

        return $this;
    }

    



    public function getPull()
    {
        return isset($this->pull) ? $this->pull : false;
    }

    public function hasPull()
    {
        return isset($this->pull);
    }

    public function clearPull()
    {
        unset($this->pull);
    }

    




    public function setPull($var)
    {
        GPBUtil::checkBool($var);
        $this->pull = $var;

        return $this;
    }

    



    public function getPaddingBytes()
    {
        return isset($this->paddingBytes) ? $this->paddingBytes : '';
    }

    public function hasPaddingBytes()
    {
        return isset($this->paddingBytes);
    }

    public function clearPaddingBytes()
    {
        unset($this->paddingBytes);
    }

    




    public function setPaddingBytes($var)
    {
        GPBUtil::checkString($var, False);
        $this->paddingBytes = $var;

        return $this;
    }

    



    public function getYearClass()
    {
        return isset($this->yearClass) ? $this->yearClass : 0;
    }

    public function hasYearClass()
    {
        return isset($this->yearClass);
    }

    public function clearYearClass()
    {
        unset($this->yearClass);
    }

    




    public function setYearClass($var)
    {
        GPBUtil::checkInt32($var);
        $this->yearClass = $var;

        return $this;
    }

    



    public function getMemClass()
    {
        return isset($this->memClass) ? $this->memClass : 0;
    }

    public function hasMemClass()
    {
        return isset($this->memClass);
    }

    public function clearMemClass()
    {
        unset($this->memClass);
    }

    




    public function setMemClass($var)
    {
        GPBUtil::checkInt32($var);
        $this->memClass = $var;

        return $this;
    }

    



    public function getInteropData()
    {
        return $this->interopData;
    }

    public function hasInteropData()
    {
        return isset($this->interopData);
    }

    public function clearInteropData()
    {
        unset($this->interopData);
    }

    




    public function setInteropData($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ClientPayload\InteropData::class);
        $this->interopData = $var;

        return $this;
    }

    



    public function getTrafficAnonymization()
    {
        return isset($this->trafficAnonymization) ? $this->trafficAnonymization : 0;
    }

    public function hasTrafficAnonymization()
    {
        return isset($this->trafficAnonymization);
    }

    public function clearTrafficAnonymization()
    {
        unset($this->trafficAnonymization);
    }

    




    public function setTrafficAnonymization($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\TrafficAnonymization::class);
        $this->trafficAnonymization = $var;

        return $this;
    }

    



    public function getLidDbMigrated()
    {
        return isset($this->lidDbMigrated) ? $this->lidDbMigrated : false;
    }

    public function hasLidDbMigrated()
    {
        return isset($this->lidDbMigrated);
    }

    public function clearLidDbMigrated()
    {
        unset($this->lidDbMigrated);
    }

    




    public function setLidDbMigrated($var)
    {
        GPBUtil::checkBool($var);
        $this->lidDbMigrated = $var;

        return $this;
    }

    



    public function getAccountType()
    {
        return isset($this->accountType) ? $this->accountType : 0;
    }

    public function hasAccountType()
    {
        return isset($this->accountType);
    }

    public function clearAccountType()
    {
        unset($this->accountType);
    }

    




    public function setAccountType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ClientPayload\AccountType::class);
        $this->accountType = $var;

        return $this;
    }

    



    public function getConnectionSequenceInfo()
    {
        return isset($this->connectionSequenceInfo) ? $this->connectionSequenceInfo : 0;
    }

    public function hasConnectionSequenceInfo()
    {
        return isset($this->connectionSequenceInfo);
    }

    public function clearConnectionSequenceInfo()
    {
        unset($this->connectionSequenceInfo);
    }

    




    public function setConnectionSequenceInfo($var)
    {
        GPBUtil::checkInt32($var);
        $this->connectionSequenceInfo = $var;

        return $this;
    }

    



    public function getPaaLink()
    {
        return isset($this->paaLink) ? $this->paaLink : false;
    }

    public function hasPaaLink()
    {
        return isset($this->paaLink);
    }

    public function clearPaaLink()
    {
        unset($this->paaLink);
    }

    




    public function setPaaLink($var)
    {
        GPBUtil::checkBool($var);
        $this->paaLink = $var;

        return $this;
    }

    



    public function getPreacksCount()
    {
        return isset($this->preacksCount) ? $this->preacksCount : 0;
    }

    public function hasPreacksCount()
    {
        return isset($this->preacksCount);
    }

    public function clearPreacksCount()
    {
        unset($this->preacksCount);
    }

    




    public function setPreacksCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->preacksCount = $var;

        return $this;
    }

    



    public function getProcessingQueueSize()
    {
        return isset($this->processingQueueSize) ? $this->processingQueueSize : 0;
    }

    public function hasProcessingQueueSize()
    {
        return isset($this->processingQueueSize);
    }

    public function clearProcessingQueueSize()
    {
        unset($this->processingQueueSize);
    }

    




    public function setProcessingQueueSize($var)
    {
        GPBUtil::checkInt32($var);
        $this->processingQueueSize = $var;

        return $this;
    }

}

