#!/usr/bin/env python3

import struct
import uuid

class rpcBase:
        packetType = {
                'request':              0,
                'ping':                 1,
                'response':             2,
                'fault':                3,
                'working':              4,
                'nocall':               5,
                'reject':               6,
                'ack':                  7,
                'clCancel':             8,
                'fack':                 9,
                'cancelAck':            10,
                'bindReq':              11,
                'bindAck':              12,
                'bindNak':              13,
                'alterContext':         14,
                'alterContextResp':     15,
                'shutdown':             17,
                'coCancel':             18,
                'orphaned':             19
        }

        packetFlags = {
                'firstFrag':            1,  # 0x01
                'lastFrag':             2,  # 0x02
                'cancelPending':        4,  # 0x04
                'reserved':             8,  # 0x08
                'multiplex':            16, # 0x10
                'didNotExecute':        32, # 0x20
                'maybe':                64, # 0x40
                'objectUuid':           128 # 0x80
        }

        def __init__(self, data, config):
                self.data = data
                self.config = config

        def populate(self):
                self.requestData = self.parseRequest()
                self.responseData = self.generateResponse()
                return self

        def getConfig(self):
                return self.config

        def getOptions(self):
                return self.config

        def getData(self):
                return self.data

        def parseRequest(self):
                return {}

        def getResponse(self):
                return self.responseData