Google APIs Client Library for C++ A C++ library for client applications to access Google APIs.

This document provides an overview of the primary components and classes defined and used within the client library runtime. This may help understanding how the the library is organized and where to find the implementation of different concepts and activities. This Developer's Guide introduces and uses many of these components to illustrate how to perform key activities. Complete technical reference documentation for all the APIs is available in the Doxygen-generated API documentation.

See Understanding the Scope for an abstract overview of the scope and types of activities typically covered by the libraries.

Client Service Layer
Role
Using Cloud Services.
C++ Location
googleapis/client/service
C++ Module
Client Service Layer
Components and Libraries

googleapis_http
The current runtime packaging is coarser than the implementation architecture. These components are grouped together with the Transport Layer.

The components in the Client Service Layer generally fall into two sub-categories:

HTTP Transport Layer
Role
Sending HTTP Requests.
C++ Location
C++ SubModules
Components and Libraries

The C++ module breakdown of this layer is for dependency management. For an introductory overview, components in this layer usually fall into one of these functional groups:

Authorization Module
Role
Using Credentials.
C++ Location
googleapis/client/auth
C++ SubModules
Components and Libraries
  • googleapis_http
    The Generic Components added by the Authorization Module are lumped together in the same library as the HTTP Transport Layer.
  • googleapis_oauth2
    Contains the components supporting OAuth 2.0.

The Authorization Module components fall into two groups:

Data Layer
Role
Working with Data.
C++ Location
googleapis/client/data
C++ SubModules
Components and Libraries
  • googleapis_utils
    Raw data management and simple codecs are lumped in here.
  • googleapis_openssl_codec
    An encryption/decryption codec implemented using OpenSSL ciphers.
  • googleapis_json
    Abstract JSON support
  • googleapis_jsoncpp
    Concrete JSON support using JsonCpp

The C++ module breakdown of this layer is for dependency management. For an introductory overview, components of this layer fall into one of these functional groups:

Data Access and Management
JSON Support
Platform Layer
Role
Working with C++.
C++ Location
  • googleapis/client/util
    Components specific to the Google APIs Client Library for C++
  • googleapis/base
    googleapis/util
    This is not currently well defined. They are typically components that are in other Google open source projects but do not have an authoritative project of their own. Note that googleapis/util is not the same as googleapis/client/utils which is a well-defined module introduced by Google APIs Client for C++.
C++ SubModules
Components and Libraries
  • googleapis_utils
    Provides most of the Platform Layer in addition to the basic data and codec implementations for the Data Layer.
  • googleapis_mongoose
    Contains the implementation of MongooseWebServer.
  • googleapis_gtest_main
    Implements main() for gtest but adds a temporary directory which is cleared out after running the tests.
  • googleapis_internal
    Contains implementation details not yet officially exported. This includes a few classes that are part of the public API that do not yet been moved elsewhere.

The Platform Layer contains a lot of miscellaneous components. They can be roughly categorized as follows:

Foundation Types
See Foundation Types.
Other Modules
  • File
  • StrCat() and other string operations