Package com.orientechnologies.orient.enterprise.channel.binary

Examples of com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryClient


    checkConnection();

    do {
      try {

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_RECORD_DELETE);
        try {
          network.writeRID(iRid);
          network.writeInt(iVersion);
        } finally {
          endRequest(network);
        }

        try {
          beginResponse(network);
          return network.readByte() == 1;
        } finally {
          endResponse(network);
        }

      } catch (Exception e) {
View Full Code Here


    checkConnection();

    do {
      try {

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_DATACLUSTER_DATARANGE);
        try {
          network.writeShort((short) iClusterId);
        } finally {
          endRequest(network);
        }

        try {
          beginResponse(network);
          return new long[] { network.readLong(), network.readLong() };
        } finally {
          endResponse(network);
        }

      } catch (Exception e) {
View Full Code Here

    checkConnection();

    do {
      try {

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_DB_SIZE);
        endRequest(network);

        try {
          beginResponse(network);
          return network.readLong();
        } finally {
          endResponse(network);
        }
      } catch (Exception e) {
        handleException("Error on read database size", e);
View Full Code Here

    checkConnection();

    do {
      try {

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_DB_COUNTRECORDS);
        endRequest(network);

        try {
          beginResponse(network);
          return network.readLong();
        } finally {
          endResponse(network);
        }
      } catch (Exception e) {
        handleException("Error on read database record count", e);
View Full Code Here

    checkConnection();

    do {
      try {

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_DATACLUSTER_COUNT);
        try {
          network.writeShort((short) iClusterIds.length);
          for (int i = 0; i < iClusterIds.length; ++i)
            network.writeShort((short) iClusterIds[i]);
        } finally {
          endRequest(network);
        }

        try {
          beginResponse(network);
          return network.readLong();
        } finally {
          endResponse(network);
        }
      } catch (Exception e) {
        handleException("Error on read record count in clusters: " + iClusterIds, e);
View Full Code Here

    do {

      try {

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_COUNT);
        try {
          network.writeString(iClassName);
        } finally {
          endRequest(network);
        }

        try {
          beginResponse(network);
          return network.readLong();
        } finally {
          endResponse(network);
        }
      } catch (Exception e) {
        handleException("Error on executing count on class: " + iClassName, e);
View Full Code Here

      try {
        final OCommandRequestText aquery = iCommand;

        final boolean asynch = iCommand instanceof OCommandRequestAsynch;

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_COMMAND);
        try {
          network.writeByte((byte) (asynch ? 'a' : 's')); // ASYNC / SYNC
          network.writeBytes(OStreamSerializerAnyStreamable.INSTANCE.toStream(iCommand.getDatabase(), command));
        } finally {
          endRequest(network);
        }

        try {
          beginResponse(network);

          if (asynch) {
            byte status;

            // ASYNCH: READ ONE RECORD AT TIME
            while ((status = network.readByte()) > 0) {
              ORecordSchemaAware<?> record = (ORecordSchemaAware<?>) readRecordFromNetwork(network, iCommand.getDatabase());
              if (record == null)
                break;

              switch (status) {
              case 1:
                // PUT AS PART OF THE RESULT SET. INVOKE THE LISTENER
                try {
                  if (!aquery.getResultListener().result(record)) {
                    // EMPTY THE INPUT CHANNEL
                    while (network.in.available() > 0)
                      network.in.read();

                    break;
                  }
                } catch (Throwable t) {
                  // ABSORBE ALL THE USER EXCEPTIONS
                  t.printStackTrace();
                }
                break;

              case 2:
                // PUT IN THE CLIENT LOCAL CACHE
                level2cache.pushRecord(record);
              }
            }
          } else {
            final byte type = network.readByte();
            switch (type) {
            case 'n':
              result = null;
              break;

            case 'r':
              result = readRecordFromNetwork(network, iCommand.getDatabase());
              break;

            case 'l':
              final int tot = network.readInt();
              final Collection<OIdentifiable> list = new ArrayList<OIdentifiable>();
              for (int i = 0; i < tot; ++i) {
                list.add(readRecordFromNetwork(network, iCommand.getDatabase()));
              }
              result = list;
              break;

            case 'a':
              final String value = new String(network.readBytes());
              result = ORecordSerializerStringAbstract.fieldTypeFromStream(null, ORecordSerializerStringAbstract.getType(value),
                  value);
              break;
            }
          }
View Full Code Here

      try {

        final Set<OTransactionEntry> allEntries = new HashSet<OTransactionEntry>();

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_TX_COMMIT);
        try {
          network.writeInt(((OTransactionRealAbstract) iTx).getId());

          final List<OTransactionEntry> tmpEntries = new ArrayList<OTransactionEntry>();

          while (iTx.getEntries().iterator().hasNext()) {
            for (OTransactionEntry txEntry : iTx.getEntries())
              if (!allEntries.contains(txEntry))
                tmpEntries.add(txEntry);

            iTx.clearEntries();

            if (tmpEntries.size() > 0) {
              for (OTransactionEntry txEntry : tmpEntries)
                commitEntry(network, txEntry);

              allEntries.addAll(tmpEntries);
              tmpEntries.clear();
            }
          }

          network.writeByte((byte) 0);

        } finally {
          endRequest(network);
        }

        try {
          beginResponse(network);
          final int updatedRecords = network.readInt();
          ORecordId rid;
          for (int i = 0; i < updatedRecords; ++i) {
            rid = network.readRID();

            // SEARCH THE RECORD WITH THAT ID TO UPDATE THE VERSION
            for (OTransactionEntry txEntry : allEntries) {
              if (txEntry.getRecord().getIdentity().equals(rid)) {
                txEntry.getRecord().setVersion(network.readInt());
                break;
              }
            }
          }
        } finally {
View Full Code Here

    do {

      try {

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_DATACLUSTER_ADD);
        try {
          network.writeString(iClusterType.toString());
          network.writeString(iClusterName);

          switch (iClusterType) {
          case PHYSICAL:
            // FILE PATH + START SIZE
            network.writeString(iArguments.length > 0 ? (String) iArguments[0] : "").writeInt(
                iArguments.length > 0 ? (Integer) iArguments[1] : -1);
            break;

          case LOGICAL:
            // PHY CLUSTER ID
            network.writeInt(iArguments.length > 0 ? (Integer) iArguments[0] : -1);
            break;
          }
        } finally {
          endRequest(network);
        }

        try {
          beginResponse(network);
          final int clusterId = network.readShort();

          clustersIds.put(iClusterName.toLowerCase(), clusterId);
          clustersTypes.put(iClusterName.toLowerCase(), iClusterType.toString());
          return clusterId;
        } finally {
View Full Code Here

    do {

      try {

        final OChannelBinaryClient network = beginRequest(OChannelBinaryProtocol.REQUEST_DATACLUSTER_REMOVE);
        try {
          network.writeShort((short) iClusterId);
        } finally {
          endRequest(network);
        }

        try {
          beginResponse(network);

          if (network.readByte() == 1) {
            // REMOVE THE CLUSTER LOCALLY
            for (Entry<String, Integer> entry : clustersIds.entrySet())
              if (entry.getValue() != null && entry.getValue().intValue() == iClusterId) {
                clustersIds.remove(entry.getKey());
                clustersTypes.remove(entry.getKey());
View Full Code Here

TOP

Related Classes of com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryClient

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.