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/drmcompositor.cpp b/drmcompositor.cpp
index 6b3c294..09da6bf 100644
--- a/drmcompositor.cpp
+++ b/drmcompositor.cpp
@@ -34,9 +34,8 @@
 }
 
 int DrmCompositor::Init() {
-  for (DrmResources::ConnectorIter iter = drm_->begin_connectors();
-       iter != drm_->end_connectors(); ++iter) {
-    int display = (*iter)->display();
+  for (auto &conn : drm_->connectors()) {
+    int display = conn->display();
     int ret = compositor_map_[display].Init(drm_, display);
     if (ret) {
       ALOGE("Failed to initialize display compositor for %d", display);
@@ -47,17 +46,14 @@
   return 0;
 }
 
-DrmComposition *DrmCompositor::CreateComposition(Importer *importer) {
-  DrmComposition *composition = new DrmComposition(drm_, importer);
-  if (!composition) {
-    ALOGE("Failed to allocate drm composition");
-    return NULL;
-  }
+std::unique_ptr<DrmComposition> DrmCompositor::CreateComposition(
+    Importer *importer) {
+  std::unique_ptr<DrmComposition> composition(
+      new DrmComposition(drm_, importer));
   int ret = composition->Init(++frame_no_);
   if (ret) {
     ALOGE("Failed to initialize drm composition %d", ret);
-    delete composition;
-    return NULL;
+    return nullptr;
   }
   return composition;
 }
@@ -74,9 +70,8 @@
   if (ret)
     return ret;
 
-  for (DrmResources::ConnectorIter iter = drm_->begin_connectors();
-       iter != drm_->end_connectors(); ++iter) {
-    int display = (*iter)->display();
+  for (auto &conn : drm_->connectors()) {
+    int display = conn->display();
     int ret = compositor_map_[display].QueueComposition(
         composition->TakeDisplayComposition(display));
     if (ret) {
@@ -99,8 +94,7 @@
 
 void DrmCompositor::Dump(std::ostringstream *out) const {
   *out << "DrmCompositor stats:\n";
-  for (DrmResources::ConnectorIter iter = drm_->begin_connectors();
-       iter != drm_->end_connectors(); ++iter)
-    compositor_map_[(*iter)->display()].Dump(out);
+  for (auto &conn : drm_->connectors())
+    compositor_map_[conn->display()].Dump(out);
 }
 }