drm_hwcomposer: polish for old DRM wrapper code
- deleted private copy constructors
- replace delete with unique_ptr
- use in-class assignment
- remove default constructors/destructors when no longer needed
- remove most iterators used in for loops
- move UniqueFd to its own header so drmresources can use it
Change-Id: Ib20cc0949cf4d381a58548b8156c5cb368ca3efe
diff --git a/drmresources.h b/drmresources.h
index 3ec7d2c..6716807 100644
--- a/drmresources.h
+++ b/drmresources.h
@@ -29,20 +29,21 @@
class DrmResources {
public:
- typedef std::vector<DrmConnector *>::const_iterator ConnectorIter;
- typedef std::vector<DrmPlane *>::const_iterator PlaneIter;
-
DrmResources();
- ~DrmResources();
int Init();
- int fd() const;
+ int fd() const {
+ return fd_.get();
+ }
- ConnectorIter begin_connectors() const;
- ConnectorIter end_connectors() const;
- PlaneIter begin_planes() const;
- PlaneIter end_planes() const;
+ const std::vector<std::unique_ptr<DrmConnector>> &connectors() const {
+ return connectors_;
+ }
+
+ const std::vector<std::unique_ptr<DrmPlane>> &planes() const {
+ return planes_;
+ }
DrmConnector *GetConnectorForDisplay(int display) const;
DrmCrtc *GetCrtcForDisplay(int display) const;
@@ -70,13 +71,13 @@
int CreateDisplayPipe(DrmConnector *connector);
- int fd_;
- uint32_t mode_id_;
+ UniqueFd fd_;
+ uint32_t mode_id_ = 0;
- std::vector<DrmConnector *> connectors_;
- std::vector<DrmEncoder *> encoders_;
- std::vector<DrmCrtc *> crtcs_;
- std::vector<DrmPlane *> planes_;
+ std::vector<std::unique_ptr<DrmConnector>> connectors_;
+ std::vector<std::unique_ptr<DrmEncoder>> encoders_;
+ std::vector<std::unique_ptr<DrmCrtc>> crtcs_;
+ std::vector<std::unique_ptr<DrmPlane>> planes_;
DrmCompositor compositor_;
};
}