File: DataType.hpp

package info (click to toggle)
xmlrpc-c 1.06.27-1.1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 4,308 kB
  • ctags: 5,111
  • sloc: ansic: 39,324; sh: 8,284; cpp: 6,051; makefile: 1,339; perl: 494; xml: 134
file content (43 lines) | stat: -rw-r--r-- 1,140 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <string>
#include <cassert>

class DataType {
    std::string mTypeName;

    DataType(DataType const&) { assert(false); }
    
    DataType& operator= (DataType const&) {
        assert(false);
        return *this;
    }

public:
    DataType(const std::string& type_name) : mTypeName(type_name) {}

    virtual ~DataType () {}

    // Return the name for this XML-RPC type.
    virtual std::string
    typeName() const { return mTypeName; }

    // Given a parameter position, calculate a unique base name for all
    // parameter-related variables.
    virtual std::string
    defaultParameterBaseName(int position) const;

    // Virtual functions for processing parameters.
    virtual std::string
    parameterFragment(std::string const& base_name) const = 0;

    virtual std::string
    inputConversionFragment(std::string const& base_name) const = 0;

    // Virtual functions for processing return values.
    virtual std::string
    returnTypeFragment () const = 0;

    virtual std::string
    outputConversionFragment(std::string const& var_name) const = 0;
};

const DataType& findDataType(const std::string& name);